⚠️ 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
examples/vulnerable-mcp-server F
33/100 · 5 findings (3 critical) · scope excessive · Ranked #53 of 53 scanned.
Scanned 2026-09-09 · engine v0.1.0 (8 regex rules, OWASP-mapped) · upstream eulogik/AgentTrust @ ca597b8 (2026-09-09)
Score breakdown
Score constrained by 3 critical and 1 high-severity findings.
Fix first (4 critical/high)
| Severity | Rule | Finding | Remediation |
|---|---|---|---|
| CRITICAL | AT-SEC-001 (LLM01) | Direct Prompt Concatenation (Injection Vulnerability)server.ts:24Evidence: const systemPrompt = "You are an assistant. " + args.userInput; | Use parameterized messages, structured schema validation (Zod), and clear boundary delimiters. |
| CRITICAL | AT-SEC-002 (LLM02) | Hardcoded Credential or API Secretserver.ts:11Evidence: const API_SECRET_TOKEN = "sk-proj-abc123456789012345678901234567890"; | Move credentials to secure environment variables or a key vault. Never commit API keys. |
| CRITICAL | AT-SEC-003 (ASI02) | Unbounded Dynamic Shell Executionserver.ts:16Evidence: exec(args.cmd, (err, stdout) => { | Strictly restrict shell execution to an immutable allowlist of binary commands with explicit argument arrays, or execute inside microVM sandboxes. |
| HIGH | AT-SEC-005 (ASI02) | Unrestricted Recursive File Deletion / Modificationserver.ts:31Evidence: fs.unlinkSync("/data/users/" + args.userId); | 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 Loggingserver.ts:25Evidence: console.log("Debug logging token: " + API_SECRET_TOKEN); // VULNERABILITY 4: Secret leakage (AT-SEC-007) | Implement PII/secret redaction masks before writing to log streams. |
Permissions
Scope: excessive · Shell: enabled · Network egress: no · File deletion: enabled · Human approval: none
Provenance
License: none detected · Lockfile: no · 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/eulogik/AgentTrust. Scores move with every upstream commit; pages refresh weekly. How scoring works.