@vscode/vsce-sign
Visual Studio Code extension package signing and verification module
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
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| install-scripts | install-script:postinstall | AI (install-scripts): Postinstall installs platform-specific native binaries from same-org optional deps; documented pattern for this package. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): env-spread is used to strip npm_config_global before spawning npm install; not credential exfiltration. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): child_process used to invoke platform binary for signing; core functionality of this native-binding package. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require reads own package.json to resolve optional dep version; not arbitrary module loading. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-linux-arm | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-linux-x64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-win32-x64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-alpine-x64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-darwin-x64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-linux-arm64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-win32-arm64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-alpine-arm64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai | |
| phantom-deps | phantom-dep:@vscode/vsce-sign-darwin-arm64 | AI (phantom-deps): Platform-specific optional dep loaded dynamically at runtime; phantom-dep false positive for this package. | ai |
v2.0.9
3 findingsScript: node ./src/postinstall.js
Spreading entire process.env into an object — may capture all secrets 94 | */ 95 | function installUsingNPM(pkgName, subpath, binPath, version) { > 96 | const env = { ...process.env, npm_config_global: void 0 }; 97 | const vsceSignLibDir = path.dirname(require.resolve('@vscode/vsce-sign')); 98 | const installDir = path.join(vsceSignLibDir, "npm-install");
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.0.6
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.