← Home

@progress/roadkill

> WebDriver for the Masses

3
Versions
MIT
License
No
Install Scripts
Verified
Provenance

Supply chain provenance

Status for the latest visible version.

SLSA provenance attestation npm registry signatures gitHead linked

Maintainers

progress

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Spreading process.env to pass environment to a child process with a modified PATH is standard practice for a chromedriver launcher. ai
phantom-deps phantom-dep:@types/decompress AI (phantom-deps): @types/decompress is a type declaration package; not directly imported at runtime, stable false positive for this package. ai

Versions (showing 3 of 3)

Version Deps Published
0.3.1 6 / 5
0.3.0 6 / 5
0.2.4 4 / 7

v0.3.1

3 findings
HIGH env-spread: chromedriver.js:19 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/telerik/roadkill/blob/e89cbefb87614f28467bc811cf89c37b3482c5e4/chromedriver.js#L19 17 | const options = { shell }; 18 | if (this.options?.path) { > 19 | options.env = { ...process.env, PATH: this.options.path + delimiter + process.env.PATH }; 20 | } 21 | return spawn(executable, args, options);

HIGH env-spread: express.js:11 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/telerik/roadkill/blob/e89cbefb87614f28467bc811cf89c37b3482c5e4/express.js#L11 9 | spawn() { 10 | const { cwd = process.cwd(), env, pathPrepend = [], port = 3000, command, args, } = this.options; > 11 | const childEnv = { 12 | ...process.env, 13 | ...env,

INFO Has SLSA provenance attestation provenance

Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.

v0.3.0

3 findings
HIGH env-spread: chromedriver.js:19 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/telerik/roadkill/blob/90dd7ff51138237b2fe83cfa9b6f746a08d35896/chromedriver.js#L19 17 | const options = { shell }; 18 | if (this.options?.path) { > 19 | options.env = { ...process.env, PATH: this.options.path + delimiter + process.env.PATH }; 20 | } 21 | return spawn(executable, args, options);

HIGH env-spread: express.js:11 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/telerik/roadkill/blob/90dd7ff51138237b2fe83cfa9b6f746a08d35896/express.js#L11 9 | spawn() { 10 | const { cwd = process.cwd(), env, pathPrepend = [], port = 3000, command, args, } = this.options; > 11 | const childEnv = { 12 | ...process.env, 13 | ...env,

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.

v0.2.4

3 findings
HIGH env-spread: chromedriver.js:19 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/telerik/roadkill/blob/c96697954fc5e712ceaed1d9bd06020c4207fee5/chromedriver.js#L19 17 | const options = { shell }; 18 | if (this.options?.path) { > 19 | options.env = { ...process.env, PATH: this.options.path + delimiter + process.env.PATH }; 20 | } 21 | return spawn(executable, args, options);

HIGH env-spread: chromedriver.ts:67 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/telerik/roadkill/blob/c96697954fc5e712ceaed1d9bd06020c4207fee5/chromedriver.ts#L67 65 | 66 | if (this.options?.path) { > 67 | options.env = { ...process.env, PATH: this.options.path + delimiter + process.env.PATH }; 68 | } 69 |

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.