← Home

@vscode/vsce-sign

Visual Studio Code extension package signing and verification module

2
Versions
SEE LICENSE IN LICENSE.txt
License
Yes
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures No source commit

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

vscode-botmicrosoft1es

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
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

Versions (showing 2 of 2)

Version Deps Published
2.0.9 9 / 1
2.0.6 9 / 1

v2.0.9

3 findings
HIGH Package has 'postinstall' script install-scripts

Script: node ./src/postinstall.js

HIGH env-spread: src/postinstall.js:96 semgrep

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");

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v2.0.6

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.