https://github.com/5dive-ai/5dive-mcp
5dive-mcp
Hostile
Score 17 / 100 · 15 files read · 1 critical, 0 high, 6 medium, 5 low findings
Report 9921b1768826e573 · first scanned 2026-10-28 · scanned 4× · keyed to the exact package contents, so this link always shows this version
Listed in the Agent Census directory data
Subscores
100 is clean. Deductions come only from the cited findings below.
Findings
criticalDownloads a remote file and pipes it straight into a shell interpreter
README.md · line 32 · rule C1
led and on `PATH` (`curl https://install.5dive.ai | sudo bash`). ## Install & run ```bash npx @5dive/mcp # run directly #
mediumCode contacts static.modelcontextprotocol.io, which the documentation never mentions
(package) · line 1 · rule M3
static.modelcontextprotocol.io
mediumInstructions involve running commands with sudo
README.md · line 32 · rule M6
/install.5dive.ai | sudo bash`). ## Install & run ```bash npx @5dive/mcp # run directly # or npm i -g @5dive/mcp && 5dive
mediumWrites files under the user home directory
src/tokens.js · line 52 · rule M5
rocess.pid}.tmp`; fs.writeFileSync(tmp, JSON.stringify({ tokens }, null, 2) + "\n", { mode: 0o600 }); fs.renameSync(tmp, file)
mediumCan run shell commands from code
src/tools.js · line 14 · rule M1
t: 30000) import { execFile } from "node:child_process"; const BIN = process.env.FIVEDIVE_BIN || "5dive"; const SUDO = /^(1|true
mediumCan run shell commands from code
tests/http.test.mjs · line 8 · rule M1
leSync } from "node:child_process"; import { createServer, rateLimiter } from "../src/http.js"; import { createToken, revokeToken,
mediumCan run shell commands from code
tests/smoke.mjs · line 4 · rule M1
spawn } from "node:child_process"; // Any task id that exists on the box you smoke against. const TASK = process.env.SMOKE_TASK
low1 binary file(s) were not parsed (static text analysis only)
(package) · line 1 · rule L3
1 binary files
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/tokens.js · line 24 · rule L1
n homeDir() { if (process.env.FIVEDIVE_MCP_HOME) return process.env.FIVEDIVE_MCP_HOME; const config = process.env.XDG_CONFIG_H
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/tools.js · line 16 · rule L1
cess"; const BIN = process.env.FIVEDIVE_BIN || "5dive"; const SUDO = /^(1|true|yes)$/i.test(process.env.FIVEDIVE_SUDO || ""); con
lowReads named environment variables (normal for API keys; listed in the permission summary)
tests/http.test.mjs · line 229 · rule L1
const env = { ...process.env, FIVEDIVE_MCP_HOME: home, FIVEDIVE_BIN: bin, FIVEDIVE_SUDO: "" }; const out = execFileSync(proce
lowReads named environment variables (normal for API keys; listed in the permission summary)
tests/smoke.mjs · line 7 · rule L1
ainst. const TASK = process.env.SMOKE_TASK || "DIVE-923"; const child = spawn(process.execPath, [new URL("../src/index.js", impor
Permission surface
- Network endpoints
- 5dive.aiagents.example.comapi.5dive.comdevelopers.openai.comgithub.comglama.aiimg.shields.ioinstall.5dive.aimodelcontextprotocol.ioopencollective.comregistry.npmjs.orgstatic.modelcontextprotocol.iowww.npmjs.com
- Environment read
- FIVEDIVE_BINFIVEDIVE_MCP_HOMEFIVEDIVE_SUDOFIVEDIVE_TIMEOUT_MSSMOKE_TASKXDG_CONFIG_HOME
- Shell execution
- yes — code or scripts can run shell commands
- Install hooks
- none
- Credential material
- Reads named environment variables (normal for API keys; listed in the permission summary)
Provenance
- Source
- GitHub
- Repository
- 5dive-ai/5dive-mcp
- Owner
- 5dive-ai
- Stars
- 0
- Forks
- 0
- Repo created
- 2026-07-03
- Last push
- 2026-10-02
- License
- MIT
Watch this package
Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.
Share this report: https://preflight.orbitaldeskllc.com/r/9921b1768826e573