@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 |
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.