node-ninja
Node.js native addon build tool
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 |
|---|---|---|---|---|
| dependencies | unvetted-dep:request | AI (dependencies): request is used for downloading Node.js headers/binaries during build — standard behavior for a native addon build tool. Not a security concern for this package. | ai | |
| provenance | publisher-changed | AI (provenance): Publisher change from hintjens to ralphtheninja occurred in 2016; ralphtheninja has 779 approved packages and a long track record — clearly a legitimate historical transition. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): Maintainer addition of ralphtheninja/rgbkrk is a legitimate 2016 transition; ralphtheninja has an excellent track record with 779 approved packages. | ai | |
| semgrep | semgrep:child-process-spawn | AI (semgrep): Spawning build system processes is the fundamental purpose of this native addon build tool. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require is used for command dispatch within the package's own directory — a standard CLI subcommand pattern, not arbitrary module loading. | ai | |
| semgrep | semgrep:env-bulk-read | AI (semgrep): Reading npm_config_* env vars is a documented pattern for inheriting npm configuration, used by node-gyp and similar build tools. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): node-ninja is a native addon build tool; spawning child processes to invoke build systems (ninja, cmake, make) is its core function. | ai |
Versions (showing 4 of 4)
| Version | Deps | Published |
|---|---|---|
| 1.0.2 | 14 / 1 | |
| 1.0.1 | 14 / 1 | |
| 1.0.0 | 14 / 1 | |
| 0.4.0 | 14 / 1 |
v1.0.2
2 findingsThis version was published by a different npm account than previous versions on 2016-07-21. 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.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.4.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.