← Home

@blackbelt-technology/pi-dashboard-shared

12
Versions
License
No
Install Scripts
Verified
Provenance

Supply chain provenance

Status for the latest visible version.

SLSA provenance attestation npm registry signatures gitHead linked

Maintainers

mbotondmrbencerobertcsakanynorbert.herczeg

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Fires only in test files passing env to execFileSync subprocess; not a secret-leaking pattern in this context. ai
semgrep semgrep:shady-links-raw-ip AI (semgrep): Raw IP is a hardcoded local network test fixture (192.168.1.10), not a real exfiltration endpoint. ai

Versions (showing 12 of 12)

Version Deps Published
0.5.4 1 / 1
0.5.3 1 / 1
0.5.2 1 / 1
0.5.1 1 / 1
0.5.0 1 / 1
0.4.6 1 / 1
0.4.5 1 / 1
0.4.4 1 / 1
0.4.3 1 / 1
0.4.2 1 / 1
0.4.1 1 / 1
0.3.0 0 / 1

v0.5.4

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

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

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/99d8a74e59a33393fb4830b659c65badad3375fc/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/99d8a74e59a33393fb4830b659c65badad3375fc/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:186 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/99d8a74e59a33393fb4830b659c65badad3375fc/src/bootstrap-install.ts#L186 184 | 185 | const argvBase = resolveNpmArgv(opts); > 186 | const env = { ...process.env, ...(opts.env ?? {}) }; 187 | 188 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/99d8a74e59a33393fb4830b659c65badad3375fc/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/99d8a74e59a33393fb4830b659c65badad3375fc/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/cca7c539436760ebb3beec3e319c75d87fc827db/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/cca7c539436760ebb3beec3e319c75d87fc827db/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:186 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/cca7c539436760ebb3beec3e319c75d87fc827db/src/bootstrap-install.ts#L186 184 | 185 | const argvBase = resolveNpmArgv(opts); > 186 | const env = { ...process.env, ...(opts.env ?? {}) }; 187 | 188 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/cca7c539436760ebb3beec3e319c75d87fc827db/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/cca7c539436760ebb3beec3e319c75d87fc827db/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/0dd9bba1feb5482240c74e8a1a26471dda831109/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/0dd9bba1feb5482240c74e8a1a26471dda831109/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/0dd9bba1feb5482240c74e8a1a26471dda831109/src/bootstrap-install.ts#L179 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/0dd9bba1feb5482240c74e8a1a26471dda831109/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/0dd9bba1feb5482240c74e8a1a26471dda831109/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/c048dc6fa6a452b1003e30266533b50afed08382/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/c048dc6fa6a452b1003e30266533b50afed08382/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/c048dc6fa6a452b1003e30266533b50afed08382/src/bootstrap-install.ts#L179 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/c048dc6fa6a452b1003e30266533b50afed08382/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/c048dc6fa6a452b1003e30266533b50afed08382/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/fe98777dc15a361527ccbd8affd384f083f52dc7/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/fe98777dc15a361527ccbd8affd384f083f52dc7/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/fe98777dc15a361527ccbd8affd384f083f52dc7/src/bootstrap-install.ts#L179 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/fe98777dc15a361527ccbd8affd384f083f52dc7/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/fe98777dc15a361527ccbd8affd384f083f52dc7/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/52a4c85b74ec62f0af2635593cb4c0049d2b6308/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/52a4c85b74ec62f0af2635593cb4c0049d2b6308/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/52a4c85b74ec62f0af2635593cb4c0049d2b6308/src/bootstrap-install.ts#L179 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/52a4c85b74ec62f0af2635593cb4c0049d2b6308/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/52a4c85b74ec62f0af2635593cb4c0049d2b6308/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/22c4d977dd23ef0759b187087c548454d1349573/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/22c4d977dd23ef0759b187087c548454d1349573/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/22c4d977dd23ef0759b187087c548454d1349573/src/bootstrap-install.ts#L179 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/22c4d977dd23ef0759b187087c548454d1349573/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/22c4d977dd23ef0759b187087c548454d1349573/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

6 findings
HIGH env-spread: src/__tests__/openspec-effective-status-script.test.ts:51 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/2728c316a2bf0710680cfb94faac5af7132ae7a1/src/__tests__/openspec-effective-status-script.test.ts#L51 49 | const out = execFileSync("bash", [SCRIPT_PATH, changeName], { 50 | cwd: root, > 51 | env: { ...process.env, PATH: `${binDir}:${process.env.PATH ?? ""}` }, 52 | encoding: "utf8", 53 | });

HIGH env-spread: src/__tests__/resolve-tool-cli.test.ts:31 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/2728c316a2bf0710680cfb94faac5af7132ae7a1/src/__tests__/resolve-tool-cli.test.ts#L31 29 | encoding: "utf8", 30 | // Isolate from any user override file so tests are deterministic. > 31 | env: { 32 | ...process.env, 33 | // Point HOME at /tmp so ~/.pi/dashboard/tool-overrides.json is

HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/2728c316a2bf0710680cfb94faac5af7132ae7a1/src/bootstrap-install.ts#L179 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/2728c316a2bf0710680cfb94faac5af7132ae7a1/src/platform/runner.ts#L223 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/BlackBeltTechnology/pi-agent-dashboard/blob/2728c316a2bf0710680cfb94faac5af7132ae7a1/src/platform/runner.ts#L318 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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

4 findings
HIGH env-spread: src/bootstrap-install.ts:179 semgrep

Spreading entire process.env into an object — may capture all secrets 177 | 178 | const argvBase = resolveNpmArgv(opts); > 179 | const env = { ...process.env, ...(opts.env ?? {}) }; 180 | 181 | const installed: string[] = [];

HIGH env-spread: src/platform/runner.ts:223 semgrep

Spreading entire process.env into an object — may capture all secrets 221 | const result = spawnSync(safeArgv[0], safeArgv.slice(1), { 222 | cwd: ctx.cwd, > 223 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 224 | encoding: "utf-8", 225 | timeout,

HIGH env-spread: src/platform/runner.ts:318 semgrep

Spreading entire process.env into an object — may capture all secrets 316 | child = spawn(safeArgv[0], safeArgv.slice(1), { 317 | cwd: ctx.cwd, > 318 | env: ctx.env ? { ...process.env, ...ctx.env } : undefined, 319 | stdio: ["ignore", "pipe", "pipe"], 320 | ...spawnOptions, // shell: false, windowsHide: true

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.