⚠️ This snapshot is over 30 days old — treat the grade as stale until the next refresh. Re-scan locally to verify.
Trust Card · Static snapshot
mongodb-js__mongodb-mcp-server F
39/100 · 12 findings (7 critical) · scope excessive · Ranked #49 of 53 scanned.
Scanned 2026-09-09 · engine v0.1.0 (8 regex rules, OWASP-mapped) · upstream mongodb-js/mongodb-mcp-server @ 7d32cc4 (2026-09-08)
Score breakdown
Score constrained by 7 critical and 4 high-severity findings.
Fix first (11 critical/high)
| Severity | Rule | Finding | Remediation |
|---|---|---|---|
| CRITICAL | AT-SEC-003 (ASI02) | Unbounded Dynamic Shell Executionpackages/eval-tests/src/scripts/reportCi.ts:82Evidence: const child = spawn(cmd, args, { stdio: ["inherit", "pipe", "inherit"], env }); | Strictly restrict shell execution to an immutable allowlist of binary commands with explicit argument arrays, or execute inside microVM sandboxes. |
| CRITICAL | AT-SEC-004 (ASI05) | eval() / Function Constructor Invocationpackages/eval-tests/src/scripts/reportCi.ts:129Evidence: /** Fetch branch history, then run eval (with optional baseline from history), render markdown, write report. */ | Eliminate eval(). Use safe AST parsers or isolated sandboxes (e.g. E2B Firecracker microVMs). |
| CRITICAL | AT-SEC-003 (ASI02) | Unbounded Dynamic Shell Executionpackages/mongodb-mcp-server/scripts/createMcpb.ts:16Evidence: const child = spawn(cmd, args, { cwd, stdio: "inherit", shell: process.platform === "win32" }); | Strictly restrict shell execution to an immutable allowlist of binary commands with explicit argument arrays, or execute inside microVM sandboxes. |
| CRITICAL | AT-SEC-003 (ASI02) | Unbounded Dynamic Shell Executionpackages/setup/src/aiTool.ts:258Evidence: exec(cmd, (error) => { | Strictly restrict shell execution to an immutable allowlist of binary commands with explicit argument arrays, or execute inside microVM sandboxes. |
| CRITICAL | AT-SEC-003 (ASI02) | Unbounded Dynamic Shell Executionpackages/tools-atlas/src/tools/create/createCluster.test.ts:501Evidence: const result = await exec(args); | Strictly restrict shell execution to an immutable allowlist of binary commands with explicit argument arrays, or execute inside microVM sandboxes. |
| CRITICAL | AT-SEC-003 (ASI02) | Unbounded Dynamic Shell Executionpackages/tools-atlas/src/tools/update/pauseResumeCluster.test.ts:207Evidence: const result = await exec(args); | Strictly restrict shell execution to an immutable allowlist of binary commands with explicit argument arrays, or execute inside microVM sandboxes. |
| CRITICAL | AT-SEC-004 (ASI05) | eval() / Function Constructor Invocationpackages/ui/src/lib/tools/list-databases.ts:7Evidence: export const ListDatabasesHtml = "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\" | Eliminate eval(). Use safe AST parsers or isolated sandboxes (e.g. E2B Firecracker microVMs). |
| HIGH | AT-SEC-005 (ASI02) | Unrestricted Recursive File Deletion / Modificationpackages/accuracy-tests/src/sdk/accuracyResultStorage/diskStorage.ts:57Evidence: await fs.unlink(latestResultFilePath); | Enforce strict jail/root directories and require explicit human-in-the-loop confirmation before file deletions. |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egresspackages/atlas-api-client/src/apiClient.ts:214Evidence: const response = await fetch(url, { | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-006 (LLM06) | Unfiltered SSRF / Arbitrary Network Egresspackages/mongodb-atlas-mcp-remote/src/cli.ts:182Evidence: const res = await baseFetch(url, init); | Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254). |
| HIGH | AT-SEC-005 (ASI02) | Unrestricted Recursive File Deletion / Modificationpackages/tools-mongodb/src/common/exportsManager.ts:348Evidence: await fs.unlink(exportPath); | Enforce strict jail/root directories and require explicit human-in-the-loop confirmation before file deletions. |
| MEDIUM | AT-SEC-007 (LLM02) | Raw Secret Leakage in Debug Loggingpackages/scripts/src/generate-release-notes.ts:120Evidence: console.log("GROVE_API_KEY is not set, skipping AI summary generation"); | Implement PII/secret redaction masks before writing to log streams. |
Permissions
Scope: excessive · Shell: enabled · Network egress: yes · File deletion: enabled · Human approval: none
Provenance
License: Apache-2.0 · Lockfile: yes · Security policy: no · Signals: unverified origin
Independently scanned by the AgentTrust registry (not self-reported by the project). Static analysis only — no code executed, findings need human triage, counts may include test/example code. Static snapshot; re-scan before relying on it: npx @eulogik/agenttrust scan https://github.com/mongodb-js/mongodb-mcp-server. Scores move with every upstream commit; pages refresh weekly. How scoring works.