← Home

@kernlang/review-mcp

MCP server security scanner — static analysis for Model Context Protocol implementations

36
Versions
AGPL-3.0
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

cukasn

Keywords

kernllmmcpsecuritystatic-analysisowaspai

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Security scanner spawning subprocesses with merged env is expected; not exfiltration. ai
semgrep semgrep:base64-decode AI (semgrep): Used only for input validation (printable-ASCII check), not payload decoding. Stable pattern for this security-scanner package. ai

Versions (showing 36 of 36)

Version Deps Published
3.5.8 3 / 0
3.5.7 3 / 0
3.5.6 3 / 0
3.5.5 3 / 0
3.5.4 3 / 0
3.5.3 3 / 0
3.5.2 3 / 0
3.5.1 3 / 0
3.5.0 3 / 0
3.4.9 3 / 0
3.4.8 3 / 0
3.4.7 3 / 0
3.4.6 3 / 0
3.4.5 3 / 0
3.4.4 3 / 0
3.4.3 3 / 0
3.4.2 3 / 0
3.4.1 3 / 0
3.4.0 3 / 0
3.3.9 3 / 0
3.3.8 3 / 0
3.3.7 3 / 0
3.3.6 3 / 0
3.3.5 3 / 0
3.3.4 3 / 0
3.2.3 3 / 0
3.1.9 3 / 0
3.1.8 3 / 0
3.1.7 3 / 0
3.1.6 3 / 0
3.1.5 3 / 0
3.1.4 3 / 0
3.1.3 3 / 0
3.1.2 3 / 0
3.1.1 3 / 0
3.1.0 3 / 0

v3.5.8

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.7

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.6

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.5

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.4

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.3

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.2

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.1

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.5.0

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.9

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.8

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.7

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.6

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.5

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.4

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.3

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.2

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.1

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.4.0

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.3.9

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.3.8

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.3.7

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.3.6

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.3.5

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.3.4

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.2.3

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.9

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.8

2 findings
HIGH env-spread: src/server-inspector.ts:313 semgrep

Spreading entire process.env into an object — may capture all secrets 311 | child = spawn(command, args, { 312 | stdio: ['pipe', 'pipe', 'pipe'], > 313 | env: { ...process.env, ...env }, 314 | timeout, 315 | });

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.7

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.6

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.5

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.4

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.3

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.

v3.1.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v3.1.1

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.

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