@idlebox/native-executer
A simple script to execute typescript file during development.
Supply chain provenance
Status for the latest visible version.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| provenance | publisher-changed | AI (provenance): Transition from personal account to GitHub Actions CI with SLSA attestation; legitimate automation handoff. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): Package is a process executor; spreading process.env into child process options is intentional and documented behavior. | ai |
Versions (showing 7 of 7)
| Version | Deps | Published |
|---|---|---|
| 0.0.23 | 3 / 6 | |
| 0.0.22 | 3 / 5 | |
| 0.0.21 | 3 / 5 | |
| 0.0.20 | 3 / 5 | |
| 0.0.19 | 3 / 4 | |
| 0.0.18 | 4 / 5 | |
| 0.0.1 | 0 / 0 |
v0.0.23
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.22
7 findingsSpreading entire process.env into an object — may capture all secrets 95 | encoding: "utf8", 96 | shell: false, > 97 | env: { 98 | ...process.env, 99 | PROTOCOL_MAGIC: protocolMagic,
Spreading entire process.env into an object — may capture all secrets 15 | if (process.execve) { 16 | console.error("replacing process with NODE_OPTIONS: %s", NODE_OPTIONS); > 17 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 18 | ...process.env, 19 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 25 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 26 | stdio: "inherit", > 27 | env: { 28 | ...process.env, 29 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 18 | if (process.execve) { 19 | console.error('replacing process with NODE_OPTIONS: %s', NODE_OPTIONS); > 20 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 21 | ...process.env, 22 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 28 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 29 | stdio: 'inherit', > 30 | env: { 31 | ...process.env, 32 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 27 | encoding: 'utf8', 28 | shell: false, > 29 | env: { 30 | ...process.env, 31 | PROTOCOL_MAGIC: protocolMagic,
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.21
8 findingsThis version was published by a different npm account than previous versions on 2026-04-03. This could indicate a legitimate maintainer transition or an account compromise.
Spreading entire process.env into an object — may capture all secrets 95 | encoding: "utf8", 96 | shell: false, > 97 | env: { 98 | ...process.env, 99 | PROTOCOL_MAGIC: protocolMagic,
Spreading entire process.env into an object — may capture all secrets 15 | if (process.execve) { 16 | console.error("replacing process with NODE_OPTIONS: %s", NODE_OPTIONS); > 17 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 18 | ...process.env, 19 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 25 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 26 | stdio: "inherit", > 27 | env: { 28 | ...process.env, 29 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 18 | if (process.execve) { 19 | console.error('replacing process with NODE_OPTIONS: %s', NODE_OPTIONS); > 20 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 21 | ...process.env, 22 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 28 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 29 | stdio: 'inherit', > 30 | env: { 31 | ...process.env, 32 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 27 | encoding: 'utf8', 28 | shell: false, > 29 | env: { 30 | ...process.env, 31 | PROTOCOL_MAGIC: protocolMagic,
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.20
8 findingsThis version was published by a different npm account than previous versions on 2026-04-02. This could indicate a legitimate maintainer transition or an account compromise.
Spreading entire process.env into an object — may capture all secrets 95 | encoding: "utf8", 96 | shell: false, > 97 | env: { 98 | ...process.env, 99 | PROTOCOL_MAGIC: protocolMagic,
Spreading entire process.env into an object — may capture all secrets 15 | if (process.execve) { 16 | console.error("replacing process with NODE_OPTIONS: %s", NODE_OPTIONS); > 17 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 18 | ...process.env, 19 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 25 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 26 | stdio: "inherit", > 27 | env: { 28 | ...process.env, 29 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 18 | if (process.execve) { 19 | console.error('replacing process with NODE_OPTIONS: %s', NODE_OPTIONS); > 20 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 21 | ...process.env, 22 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 28 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 29 | stdio: 'inherit', > 30 | env: { 31 | ...process.env, 32 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 27 | encoding: 'utf8', 28 | shell: false, > 29 | env: { 30 | ...process.env, 31 | PROTOCOL_MAGIC: protocolMagic,
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.19
8 findingsThis version was published by a different npm account than previous versions on 2026-04-01. This could indicate a legitimate maintainer transition or an account compromise.
Spreading entire process.env into an object — may capture all secrets 105 | encoding: "utf8", 106 | shell: false, > 107 | env: { 108 | ...process.env, 109 | PROTOCOL_MAGIC: protocolMagic,
Spreading entire process.env into an object — may capture all secrets 15 | if (process.execve) { 16 | console.error("replacing process with NODE_OPTIONS: %s", NODE_OPTIONS); > 17 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 18 | ...process.env, 19 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 25 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 26 | stdio: "inherit", > 27 | env: { 28 | ...process.env, 29 | _PREVENT_LOOP_: "1",
Spreading entire process.env into an object — may capture all secrets 18 | if (process.execve) { 19 | console.error('replacing process with NODE_OPTIONS: %s', NODE_OPTIONS); > 20 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 21 | ...process.env, 22 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 28 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 29 | stdio: 'inherit', > 30 | env: { 31 | ...process.env, 32 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 21 | encoding: 'utf8', 22 | shell: false, > 23 | env: { 24 | ...process.env, 25 | PROTOCOL_MAGIC: protocolMagic,
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.18
4 findingsSpreading entire process.env into an object — may capture all secrets 18 | if (process.execve) { 19 | console.error('replacing process with NODE_OPTIONS: %s', NODE_OPTIONS); > 20 | process.execve(process.execPath, [process.argv[0], ...process.execArgv, ...process.argv.slice(1)], { 21 | ...process.env, 22 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 28 | const r = await execa(process.execPath, [...process.execArgv, ...process.argv.slice(1)], { 29 | stdio: 'inherit', > 30 | env: { 31 | ...process.env, 32 | _PREVENT_LOOP_: '1',
Spreading entire process.env into an object — may capture all secrets 21 | encoding: 'utf8', 22 | shell: false, > 23 | env: { 24 | ...process.env, 25 | PROTOCOL_MAGIC: protocolMagic,
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.