! Security: Review · 75 75/100 · grade B scanned 4d ago
✓ no compromise signals 9 risk-surface · 4/20 OWASP controls flagged
Compromise signals — malicious or tampered code (leaked secrets, backdoors, a dropped executable) — reduce the score, and known dependency CVEs carry a bounded penalty (they warrant review but never QUARANTINE — update the dependency to clear). Other dangerous-by-capability traits are risk surface , expected for some capabilities. Every finding is mapped to its OWASP control below.
What this capability can do · high confidence (static)
Tools (9)
agent_run company_research_exa deep_researcher_check deep_researcher_start deep_search_exa get_code_context_exa linkedin_search_exa people_search_exa web_search_advanced_exa
⚑ filesystem ⚑ network ⚑ secrets
egress → docs.exa.ai, mcp.exa.ai, registry.npmjs.org, cursor.com, custom-icon-badges.demolab.com, vscode.dev, claude.com, img.shields.io +27
Findings mapped to the OWASP Top 10 for LLM Applications (2025) and the OWASP Machine Learning Security Top 10 . Expand any flagged control for the exact findings — compromise reduces the score; expected /risk-surface do not, except a known CVE , which carries a small bounded penalty (high/critical → Review).
OWASP Top 10 for LLM Applications
⚠ LLM03 Supply Chain critical Vulnerable/compromised dependencies, models or archives in the artifact.
• Dependency manifest — 16 npm dependencies declared · exa-labs-exa-mcp-server-e64c11f/package.json risk surface
• Vulnerable dependencies — 86 known vulnerabilities in: @hono/node-server@1.19.14, @tootallnate/once@2.0.0, ajv@8.6.3, axios@1.15.2, body-parser@2.2.2, brace-expansion@1.1.14, debug@4.1.1, esbuild@0.14.47 (CWE-1395)known CVE · -25 pts
⚠ LLM06 Excessive Agency medium Over-broad tool/permission surface or unrestricted egress.
• External endpoints declared — 3 distinct host(s) · exa-labs-exa-mcp-server-e64c11f/.claude-plugin/marketplace.json risk surface
• External endpoints declared — 2 distinct host(s) · exa-labs-exa-mcp-server-e64c11f/.claude-plugin/plugin.json risk surface
• External endpoints declared — 1 distinct host(s) · exa-labs-exa-mcp-server-e64c11f/.github/workflows/publish.yml risk surface
• External endpoints declared — 15 distinct host(s) · exa-labs-exa-mcp-server-e64c11f/README.md risk surface
• Broad capability surface — 3 high-impact capability categories referenced — verify least-privilege · exa-labs-exa-mcp-server-e64c11f/package-lock.json (CWE-272)risk surface
• External endpoints declared — 7 distinct host(s) · exa-labs-exa-mcp-server-e64c11f/package-lock.json risk surface
• External endpoints declared — 4 distinct host(s) · exa-labs-exa-mcp-server-e64c11f/tests/unit/api/mcp.test.ts risk surface
⚠ LLM10 Unbounded Consumption medium Unbounded loops/recursion causing DoS or runaway cost.
Enforced at runtime by the gateway (rate limits + spend caps + size caps); static check flags unbounded loops.
• Potentially unbounded loop — an infinite loop (while True / while(1) / for(;;)) may cause runaway consumption · exa-labs-exa-mcp-server-e64c11f/src/tools/agentRun.ts (CWE-835)risk surface
§ LLM09 Misinformation Governance Artifacts designed to produce false/deceptive output.
Detectable only by runtime behavioral evaluation; addressed via responsible-use attestation.
✓ LLM01 Prompt Injection Passed
✓ LLM02 Sensitive Information Disclosure Passed
✓ LLM04 Data and Model Poisoning Passed Backdoors/poisoning in training data or serialized models.
Behavioral poisoning needs model execution; static check covers unsafe serialization + dataset skew only.
✓ LLM05 Improper Output Handling Passed
✓ LLM07 System Prompt Leakage Passed
✓ LLM08 Vector and Embedding Weaknesses Passed PII or plaintext source leakage in embedding/vector exports.
Embedding inversion/poisoning is largely runtime; static check covers PII in vector exports.
OWASP Machine Learning Security Top 10
⚠ ML06 AI Supply Chain critical Compromised PyPI/npm packages, typosquats, unsafe serialized models.
• Dependency manifest — 16 npm dependencies declared · exa-labs-exa-mcp-server-e64c11f/package.json risk surface
• Vulnerable dependencies — 86 known vulnerabilities in: @hono/node-server@1.19.14, @tootallnate/once@2.0.0, ajv@8.6.3, axios@1.15.2, body-parser@2.2.2, brace-expansion@1.1.14, debug@4.1.1, esbuild@0.14.47 (CWE-1395)known CVE · -25 pts
§ ML01 Input Manipulation (Adversarial) Governance Models vulnerable to adversarial perturbations.
Requires runtime robustness evaluation; addressed via publisher robustness attestation.
§ ML03 Model Inversion Governance Training data reconstructable from a model's outputs.
Runtime/evaluation property; addressed via model-card data-provenance + DP attestation.
§ ML04 Membership Inference Governance Determining whether a record was in the training set.
Runtime/evaluation property; addressed via overfitting disclosure + DP attestation.
§ ML08 Model Skewing Governance Models trained on skewed data producing biased output.
Requires fairness evaluation; addressed via model-card bias/limitations disclosure.
◷ ML09 Output Integrity Runtime-enforced Middleware tampering with model outputs in transit.
Gateway enforces TLS + response integrity; static check flags output-rewriting code.
✓ ML02 Data Poisoning Passed Poisoned training datasets with triggers or anomalous distributions.
Static check covers trigger phrasing, PII and label skew; full poisoning detection is runtime.
✓ ML05 Model Theft Passed Unlicensed re-distribution / license-incompatible derivatives.
Static check verifies license declaration; extraction throttling is runtime.
✓ ML07 Transfer Learning Attack Passed Backdoored base models / LoRA adapters propagating to derivatives.
Backdoor detection needs behavioral probing; static check covers unsafe serialization + provenance.
✓ ML10 Model Poisoning (Weights) Passed Tampered model weight files; integrity must be verifiable.
Static check enforces safe formats + records a content hash for downstream verification.
Other findings (6) · hygiene / uncategorized • Unrecognized file type — '.gitignore' is not on the allowlist · exa-labs-exa-mcp-server-e64c11f/.gitignore risk surface
• Unrecognized file type — '.npmignore' is not on the allowlist · exa-labs-exa-mcp-server-e64c11f/.npmignore risk surface
• Unrecognized file type — '.prettierignore' is not on the allowlist · exa-labs-exa-mcp-server-e64c11f/.prettierignore risk surface
• Unrecognized file type — '.vercelignore' is not on the allowlist · exa-labs-exa-mcp-server-e64c11f/.vercelignore risk surface
• Unrecognized file type — '.?' is not on the allowlist · exa-labs-exa-mcp-server-e64c11f/LICENSE risk surface
• Unrecognized file type — '.example' is not on the allowlist · exa-labs-exa-mcp-server-e64c11f/env.example risk surface
✔ verified source · pinned exa-labs-exa-mcp-server-e64c11f
Check against a policy
The same gate an agent runs before installing (POST /api/v1/trust/exa-mcp-server/check). Click a policy:
No shell/exec No unknown egress Grade B or better No secrets access No install hooks Strict (B+ · no shell · no egress)