Detonation LabsBehavioral security for the AI agent supply chain

Verdict

Could not run: not tested

We could not start this server, so none of its behavior was tested. It said: TypeError: fetch failed

2 findings. Scanned 25 Oct 2026 by detonator 0.5.1.

Target
prepublish-mcp
Source
npm 1.0.3
SHA-256
bd5a18204a491022
Files
6
RecommendationReview

We could not start it, so nothing was tested. Treat it as unverified.

What this package does

observed across 3 runs
  1. Package prepublish-mcp version 1.0.3 · 6 files · MCP server
  2. Install No install scripts of its ownOnly the package manager ran.
  3. Runs as node dist/bridge.js
  4. What it reached
    Network
    • mcp.prepublish.ai 2 connections, 3.1 KB sent
    Credentials

    None of the planted fake keys were touched.

    ~/.npmrc read by its own tool (normal)

    Files written

    Nothing outside its own folder.

We planted fake AWS, SSH, npm and GitHub keys and a .env file before every run. Red means something left or was planted to run later.

Findings

F01 Low

Network destinations contacted

Confidence
Info The package connected to these hosts.
Observed in
mcp:baseline

Description

Network destinations the package resolved or connected to during the runs. All traffic was captured by the sandbox; nothing reached the internet.

Impact

Context only. Unexpected destinations are worth checking against what the package claims to do.

Evidence

mcp.prepublish.ai

Remediation

Confirm each host is expected (the package's API, its registry). Allowlist expected egress in production.

F02 Low

A tool read its own credentials (e.g. gh, aws, ssh)

Confidence
Info A tool opened its own login or config file, such as npm reading ~/.npmrc.
Observed in
mcp:baseline

Description

A tool opened its own configuration or login file, such as npm reading ~/.npmrc or gh reading its hosts file.

Impact

None in itself: this is how those tools work. Listed so the report shows every credential access.

Evidence

~/.npmrc (by npm)

Remediation

No action needed.

Process tree

run mcp:baseline

Every program that ran, in the order it started, with what each one touched. Red marks the path to a leak or a planted file.

Show process tree
  • runbash -c export npm_config_update_notifier=false npm_config_audit=...
    • runnpm rebuild --offline --foreground-scripts --no-audit --no-fund
      • runnode /usr/bin/npm rebuild --offline --foreground-scripts --no-audit
        • secretread ~/.npmrc (its own config)
  • runbash -c node skill/node_modules/prepublish-mcp/dist/bridge.js
    • runnode skill/node_modules/prepublish-mcp/dist/bridge.js
      • netmcp.prepublish.ai:443 sent 1609 B
      • netDNS lookups for prepublish.ai 2 queries

Exploration log

3 runs
  1. mcp:baseline ok · 4.7s

    new behavior: dns:mcp.prepublish.ai, ownread:~/.npmrc, write:<skill>/node_modules/.bin/node-which, write:<skill>/node_modules/.bin/prepublish-mcp · server did not complete the handshake: no response; server crashed: TypeError: fetch failed; 0 tool calls

  2. mcp:time-travel ok · 2.5s

    no new behavior · server did not complete the handshake: no response; server crashed: McpError: MCP error -32001: Request timed out; 0 tool calls

  3. mcp:ci-github ok · 4.6s

    no new behavior · server did not complete the handshake: no response; server crashed: TypeError: fetch failed; 0 tool calls

mcp: coverage plateau (2 runs with no new behavior)

Note

Observed behavior only. A clean result does not prove a package is safe. Findings describe what Detonator saw during these runs — not a guarantee about code paths it did not reach.