vm-browserify
vm module for the browser
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 |
|---|---|---|---|---|
| npm-metadata | suspicious-initial-version | AI (npm-metadata): vm-browserify was intentionally published at 0.0.0 as its sole release in the early npm era (~2012). It is a well-known, high-download polyfill by substack — not a throwaway malicious package. | ai | |
| provenance | publisher-changed | AI (provenance): Legitimate maintainer transition from substack to goto-bus-stop within the browserify org; goto-bus-stop is a trusted, long-standing publisher. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): Bulk addition of browserify org members is standard practice for this ecosystem; all are known community members. | ai | |
| provenance | no-provenance | AI (provenance): Published in 2018, before Sigstore provenance existed. Stable for this package. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): new Function() is used to implement vm.Script execution semantics in the browser — expected and intentional for this package's stated purpose. | ai | |
| license | uncommon-license:MIT/X11 | AI (license): MIT/X11 is a well-known permissive license variant; cosmetically different from 'MIT' but legally equivalent and unambiguous. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): vm-browserify's core purpose is emulating Node's vm module in browsers; eval() is the intentional implementation mechanism, not a supply-chain risk. | ai |
Versions (showing 10 of 10)
| Version | Deps | Published |
|---|---|---|
| 1.1.2 | 0 / 3 | |
| 1.1.1 | 0 / 3 | |
| 1.1.0 | 0 / 3 | |
| 1.0.1 | 0 / 3 | |
| 1.0.0 | 1 / 3 | |
| 0.0.4 | 1 / 1 | |
| 0.0.3 | 1 / 1 | |
| 0.0.2 | 1 / 1 | |
| 0.0.1 | 0 / 2 | |
| 0.0.0 | 0 / 2 |
v1.1.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.1.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.0.1
2 findingsThis version was published by a different npm account than previous versions on 2018-04-13. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.0.0
2 findingsThis version was published by a different npm account than previous versions on 2018-03-23. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.