@vscode/vsce
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:child-process-import | AI (semgrep): vsce legitimately invokes yarn/npm via child_process for dependency resolution; stable pattern for this tool. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): env spread passes DISABLE_V* vars to yarn; expected behavior for this build tool. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): eval('import(...)') is a documented CJS-to-ESM interop workaround for @secretlint/node; not arbitrary code execution. | ai | |
| typosquat | typosquat.levenshtein:vite | AI (typosquat): @vscode/vsce is the official Microsoft VS Code extension manager; not a typosquat of vite. | ai | |
| phantom-deps | phantom-dep:secretlint | AI (phantom-deps): secretlint is used as a CLI tool via child_process, not directly imported; stable false positive. | ai | |
| phantom-deps | phantom-dep:@secretlint/secretlint-rule-no-dotenv | AI (phantom-deps): Used as a secretlint plugin loaded dynamically, not directly imported; stable false positive. | ai | |
| phantom-deps | phantom-dep:@secretlint/secretlint-formatter-sarif | AI (phantom-deps): Used as a secretlint formatter loaded dynamically, not directly imported; stable false positive. | ai | |
| phantom-deps | phantom-dep:@secretlint/secretlint-rule-preset-recommend | AI (phantom-deps): Used as a secretlint plugin loaded dynamically, not directly imported; stable false positive. | ai |
v3.9.1
2 findingsSpreading entire process.env into an object — may capture all secrets 137 | } 138 | async function getYarnProductionDependencies(cwd, packagedDependencies) { > 139 | const raw = await new Promise((c, e) => cp.exec('yarn list --prod --json', { cwd, encoding: 'utf8', env: { DISABLE_V 140 | const match = /^{"type":"tree".*$/m.exec(raw); 141 | if (!match || match.length !== 1) {
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.8.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.8.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.