← Home

@celilo/e2e

E2E test infrastructure for Celilo-deployed applications. Provides a simulated internet with DNS hierarchy, ACME server, firewalls, and target machines in Docker.

12
Versions
MIT
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures No source commit

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

peba2

Keywords

celiloe2etestingdockerinfrastructure

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Passing process.env to a child process in a test runner is standard and expected for this package. ai
semgrep semgrep:shady-links-raw-ip AI (semgrep): RFC 6598 CGNAT address used as internal Docker network endpoint in E2E test infrastructure; not a malicious exfiltration target. ai

Versions (showing 12 of 12)

Version Deps Published
0.7.11 4 / 1
0.7.8 4 / 1
0.6.2 2 / 1
0.6.1 2 / 1
0.6.0 1 / 1
0.5.1 1 / 1
0.5.0 1 / 1
0.4.0 1 / 1
0.3.0 1 / 1
0.2.1 1 / 1
0.2.0 1 / 1
0.1.0 1 / 1

v0.7.11

3 findings
HIGH env-spread: src/cli/index.ts:61 semgrep

Spreading entire process.env into an object — may capture all secrets 59 | const result = spawnSync(join(BIN_DIR, script), args, { 60 | stdio: 'inherit', > 61 | env: { ...process.env, ...env }, 62 | }); 63 | process.exit(result.status ?? 1);

HIGH env-spread: src/runner.ts:188 semgrep

Spreading entire process.env into an object — may capture all secrets 186 | return new Promise<TestResult>((resolveTest) => { 187 | // Env vars let the test detect --keep / --reuse / --live / --published modes > 188 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 189 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 190 | if (flagLive) {

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

3 findings
HIGH env-spread: src/cli/index.ts:61 semgrep

Spreading entire process.env into an object — may capture all secrets 59 | const result = spawnSync(join(BIN_DIR, script), args, { 60 | stdio: 'inherit', > 61 | env: { ...process.env, ...env }, 62 | }); 63 | process.exit(result.status ?? 1);

HIGH env-spread: src/runner.ts:188 semgrep

Spreading entire process.env into an object — may capture all secrets 186 | return new Promise<TestResult>((resolveTest) => { 187 | // Env vars let the test detect --keep / --reuse / --live / --published modes > 188 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 189 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 190 | if (flagLive) {

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

3 findings
HIGH env-spread: src/cli/index.ts:61 semgrep

Spreading entire process.env into an object — may capture all secrets 59 | const result = spawnSync(join(BIN_DIR, script), args, { 60 | stdio: 'inherit', > 61 | env: { ...process.env, ...env }, 62 | }); 63 | process.exit(result.status ?? 1);

HIGH env-spread: src/runner.ts:181 semgrep

Spreading entire process.env into an object — may capture all secrets 179 | return new Promise<TestResult>((resolveTest) => { 180 | // Env vars let the test detect --keep / --reuse / --live / --published modes > 181 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 182 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 183 | if (flagLive) {

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

3 findings
HIGH env-spread: src/cli/index.ts:61 semgrep

Spreading entire process.env into an object — may capture all secrets 59 | const result = spawnSync(join(BIN_DIR, script), args, { 60 | stdio: 'inherit', > 61 | env: { ...process.env, ...env }, 62 | }); 63 | process.exit(result.status ?? 1);

HIGH env-spread: src/runner.ts:181 semgrep

Spreading entire process.env into an object — may capture all secrets 179 | return new Promise<TestResult>((resolveTest) => { 180 | // Env vars let the test detect --keep / --reuse / --live / --published modes > 181 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 182 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 183 | if (flagLive) {

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

3 findings
HIGH env-spread: src/cli/index.ts:40 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/psbanka/infra/blob/41d11ae0df9efd048957f065b0a32f2f7f690c8e/src/cli/index.ts#L40 38 | const result = spawnSync(join(BIN_DIR, script), args, { 39 | stdio: 'inherit', > 40 | env: { ...process.env, ...env }, 41 | }); 42 | process.exit(result.status ?? 1);

HIGH env-spread: src/runner.ts:297 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/psbanka/infra/blob/41d11ae0df9efd048957f065b0a32f2f7f690c8e/src/runner.ts#L297 295 | return new Promise<TestResult>((resolveTest) => { 296 | // Env vars let the test detect --keep / --reuse / --live / --published modes > 297 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 298 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 299 | if (flagLive) {

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

2 findings
HIGH env-spread: src/runner.ts:337 semgrep

Spreading entire process.env into an object — may capture all secrets 335 | return new Promise<TestResult>((resolveTest) => { 336 | // Env vars let the test detect --keep / --reuse modes > 337 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 338 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 339 | if (flagReuse) {

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

2 findings
HIGH env-spread: src/runner.ts:337 semgrep

Spreading entire process.env into an object — may capture all secrets 335 | return new Promise<TestResult>((resolveTest) => { 336 | // Env vars let the test detect --keep / --reuse modes > 337 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 338 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 339 | if (flagReuse) {

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

2 findings
HIGH env-spread: src/runner.ts:337 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/psbanka/infra/blob/ba237fd3b0bc5052622fe4b4b21cc384199f8497/src/runner.ts#L337 335 | return new Promise<TestResult>((resolveTest) => { 336 | // Env vars let the test detect --keep / --reuse modes > 337 | const testEnv: NodeJS.ProcessEnv = { ...process.env }; 338 | if (flagKeep) testEnv.CELILO_E2E_KEEP = '1'; 339 | if (flagReuse) {

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

2 findings
HIGH env-spread: src/runner.ts:332 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/psbanka/infra/blob/ba237fd3b0bc5052622fe4b4b21cc384199f8497/src/runner.ts#L332 330 | cwd: PKG_DIR, 331 | stdio: ['pipe', 'pipe', 'pipe'], > 332 | env: { ...process.env }, 333 | }); 334 |

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

2 findings
HIGH env-spread: src/runner.ts:332 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/psbanka/infra/blob/8dd48d933ef44c32589e64381bd31a37a21f05ce/src/runner.ts#L332 330 | cwd: PKG_DIR, 331 | stdio: ['pipe', 'pipe', 'pipe'], > 332 | env: { ...process.env }, 333 | }); 334 |

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

2 findings
HIGH env-spread: src/runner.ts:332 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/psbanka/infra/blob/8dd48d933ef44c32589e64381bd31a37a21f05ce/src/runner.ts#L332 330 | cwd: PKG_DIR, 331 | stdio: ['pipe', 'pipe', 'pipe'], > 332 | env: { ...process.env }, 333 | }); 334 |

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

1 finding
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.