@bobfrankston/rust-builder
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:env-spread | AI (semgrep): Passing process.env to execSync for cargo build is expected behavior for a Rust build tool. | ai |
Versions (showing 5 of 5)
| Version | Deps | Published |
|---|---|---|
| 0.1.5 | 0 / 1 | |
| 0.1.4 | 0 / 1 | |
| 0.1.3 | 0 / 1 | |
| 0.1.2 | 0 / 1 | |
| 0.1.1 | 0 / 1 |
v0.1.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.4
2 findingsSpreading entire process.env into an object — may capture all secrets 81 | const cleanPath = getCleanPathForWindows(); 82 | try { > 83 | execSync("cargo build --release", { cwd: cargoDir, stdio: verbose ? "inherit" : "pipe", env: { ...process.env, P 84 | fs.mkdirSync(binDir, { recursive: true }); 85 | replaceLockedFileWindows(path.join(cargoDir, "target", "release", `${binaryName}.exe`), binaryPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.3
2 findingsSpreading entire process.env into an object — may capture all secrets 81 | const cleanPath = getCleanPathForWindows(); 82 | try { > 83 | execSync("cargo build --release", { cwd: cargoDir, stdio: verbose ? "inherit" : "pipe", env: { ...process.env, P 84 | fs.mkdirSync(binDir, { recursive: true }); 85 | fs.copyFileSync(path.join(cargoDir, "target", "release", `${binaryName}.exe`), binaryPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.2
2 findingsSpreading entire process.env into an object — may capture all secrets 81 | const cleanPath = getCleanPathForWindows(); 82 | try { > 83 | execSync("cargo build --release", { cwd: cargoDir, stdio: verbose ? "inherit" : "pipe", env: { ...process.env, P 84 | fs.mkdirSync(binDir, { recursive: true }); 85 | fs.copyFileSync(path.join(cargoDir, "target", "release", `${binaryName}.exe`), binaryPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.1
2 findingsSpreading entire process.env into an object — may capture all secrets 81 | const cleanPath = getCleanPathForWindows(); 82 | try { > 83 | execSync("cargo build --release", { cwd: cargoDir, stdio: verbose ? "inherit" : "pipe", env: { ...process.env, P 84 | fs.mkdirSync(binDir, { recursive: true }); 85 | fs.copyFileSync(path.join(cargoDir, "target", "release", `${binaryName}.exe`), binaryPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.