CVE-2026-77604
validatedZero produced an exploit or a check.description
code-graph-rag versions before 0.0.345 can allow file reads outside the intended project directory through its MCP file-reading function. An unauthenticated remote caller may read files accessible to the server process when the HTTP MCP service is network-exposed; local users of the stdio transport may also be affected.
mitigation
Upgrade code-graph-rag to version 0.0.345 or later. Until upgraded, do not expose the HTTP MCP service to untrusted networks and restrict access to trusted callers.
outcome
Differential: the exploit fired on the vulnerable build and stayed silent on the patched one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-11-05 20:10Zcve_org: trigger signal, started the run
this entry in the feed
GET /api/v1/feed/CVE-2026-77604
{ "etk_id": "ETK-2026-3668", "cve_id": "CVE-2026-77604", "display_id": "CVE-2026-77604", "ghsa_id": null, "euvd_id": "EUVD-2026-117780", "status": "published", "anchor_state": "anchored", "title": "Path traversal in code-graph-rag MCP file reader", "summary": "code-graph-rag versions before 0.0.345 can allow file reads outside the intended project directory through its MCP file-reading function. An unauthenticated remote caller may read files accessible to the server process when the HTTP MCP service is network-exposed; local users of the stdio transport may also be affected.", "mitigation": "Upgrade code-graph-rag to version 0.0.345 or later. Until upgraded, do not expose the HTTP MCP service to untrusted networks and restrict access to trusted callers.", "vendor": "vitali87", "product": "code-graph-rag", "affected": [ { "affected_notes": [], "affected_ranges": [ "<= 0.0.343" ], "ecosystem": "pip", "fixed_versions": [], "package_name": "code-graph-rag", "purl": "pkg:pypi/code-graph-rag" } ], "cwes": [ 22 ], "cvss_score": 7.5, "cvss_src": "cna_vendor", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "epss_score": null, "epss_percentile": null, "epss_asof": null, "automation": "deterministic", "check": true, "check_confidence_basis": "differential", "exploit": true, "pipeline_minutes": 30.52777335, "t0_at": "2026-11-05T20:10:19.957000+00:00", "signals": { "check": { "at": "2026-11-05T21:51:50.258038+00:00", "days": 0.07048959534722223, "is_lower_bound": false, "measured_at": "2026-11-05T20:10:19.957000+00:00", "url": null }, "exploit": { "at": "2026-11-05T21:51:50.258038+00:00", "days": 0.07048959534722223, "is_lower_bound": false, "measured_at": "2026-11-05T20:10:19.957000+00:00", "url": null }, "trigger_signal": { "at": "2026-11-05T20:10:19.957000+00:00", "days": 0, "is_lower_bound": false, "measured_at": "2026-11-05T20:10:19.957000+00:00", "url": "https://www.cve.org/CVERecord?id=CVE-2026-77604" } } }
published 2026-11-05 21:21Z
last change 2026-11-05 22:47Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.