Skip to main content

LightRAG CVE-2026-85709

| EUVDEUVD-2026-84545 MEDIUM
Error Message Information Leak (CWE-209)
2026-09-22 GitHub_M GHSA-hrmj-7rvj-4hg8
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach unauthenticated LightRAG API endpoint
  2. Delivery
    Send malformed request to force exception
  3. Exploit
    Server returns raw Python exception text
  4. Execution
    Harvest filesystem paths, DB host/user, connection strings
  5. Impact
    Use recon/credentials for follow-on attacks

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error message sanitization
MITRE ATT&CK

1 technique across 1 tactic: Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires only that the LightRAG API server be network-reachable in its default unauthenticated configuration and that the attacker can trigger a server-side exception in one of the affected routers (document, graph, query, ollama, or the server status endpoint) - no credentials or user interaction needed. The scope and value of disclosed data is amplified when backends are URI-configured with drivers whose error messages embed connection strings (then credentials leak); it is limited to reconnaissance-grade data (paths, DB host/port/user/database names, library internals) on deployments that place LightRAG behind authentication or an upstream gateway, or that use backends whose driver errors do not include credentials. Affected versions are prior to 1.5.5.

Impact

This is a genuine but modest-severity information-disclosure issue, correctly scored: the CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N = 5.3 MEDIUM) is internally consistent with a CWE-209 verbose-error-message flaw - remote, low-complexity, unauthenticated because the LightRAG API server ships an unauthenticated default configuration, with confidentiality-only impact (C:L) and no integrity or availability effect. No EPSS score, KEV entry, or public POC was provided in the input, so exploitation status is: no public exploit identified at time of analysis. This is not a high-CVSS-but-low-real-risk trap nor a top priority - the base rating (5.3) already reflects reality: the payoff is reconnaissance data (filesystem paths, DB host/port/user/database names, LLM-provider diagnostics, Python library internals), not direct code execution or data theft. The one signal worth weighing above the numeric score is the description's note that URI-configured backends can leak connection strings containing credentials depending on the underlying driver's error text; in that specific deployment the practical confidentiality impact edges toward credential exposure (arguably C:H), which is why this bug is best treated as a valuable stepping-stone for chaining (e.g., toward the sibling brute-force ATO and SSRF issues fixed in the same 1.5.5 release) rather than a standalone crisis. The source-code diff (PR #3422) confirms the mechanism and the fix, raising confidence in the root cause.

Exploit ScenarioDerived

An unauthenticated network client sends malformed or edge-case requests to LightRAG API endpoints (document, graph, query, or ollama routes) to force an unhandled server-side exception, then reads the raw Python exception text returned in the JSON detail field. From the leaked filesystem paths, database host/port/user/database names and driver diagnostics - and, for URI-configured backends, connection strings with embedded credentials - the attacker maps the internal environment for follow-on attacks. No public exploit code was identified, but the low attack complexity and unauthenticated default make triggering errors trivial.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 22, 2026

LightRAG API server versions prior to 1.5.5 return raw Python exception text to network clients through error handlers in document_routes.py, graph_routes.py, query_routes.py, ollama_api.py, and lightrag_server.py, leaking server filesystem paths, database host/port/user/name, LLM provider diagnostics, and library internals. Exploitation is unauthenticated (CVSS PR:N) because the server ships with an open default configuration, and it requires only that the API be network-reachable plus a request that triggers a server-side exception; deployments using URI-configured backends whose drivers embed connection strings can also leak credentials. Scored CVSS 3.1 5.3 MEDIUM with confidentiality-only impact, and no public exploit code was identified at time of analysis.

RemediationAI

Upgrade to LightRAG 1.5.5, which is the vendor-released fix; the change set is visible in pull request https://github.com/HKUDS/LightRAG/pull/3422 and commits https://github.com/HKUDS/LightRAG/commit/4d90a0eb35d40b45f3a9045e308ec126897a3364 and https://github.com/HKUDS/LightRAG/commit/dcab315d7dc1eea682e9b2c4fcb1b06474484c47, with full details in the advisory https://github.com/HKUDS/LightRAG/security/advisories/GHSA-hrmj-7rvj-4hg8. If immediate upgrade is not possible, place the API server behind a reverse proxy or gateway that requires authentication and strips or replaces 5xx response bodies, and disable any default anonymous access - the trade-off is that legitimate API consumers lose direct access to error details, so correlate failures through server-side logs instead. Additionally, avoid passing backend connection data through inline URI strings where the driver may echo credentials on failure, preferring discrete host/user/password settings, and restrict network reachability of the API to trusted clients, accepting that internal callers must be re-homed or added to an allowlist. Patching is strongly preferred since error-path sanitization cannot be reliably retrofitted without code changes across all five affected modules.

Affected VersionsENISA

LightRAG < 1.5.5

Affected Packages

pypi lightrag-hku fix: 1.5.5
euvd lightrag fix: 1.5.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a textbook CWE-209 (Generation of Error Message Containing Sensitive Information) in a Python/FastAPI application. Route handlers wrapped internal logic in try/except blocks and re-raised failures as HTTPException(status_code=500, detail=str(e)) or detail=str(exc), which FastAPI serializes verbatim into the JSON response body. Because the affected routers (document, graph, query, ollama, and the server status endpoint) sit on top of pluggable storage and LLM backends, the forwarded exception strings reflect whatever the underlying driver or client raised: filesystem paths from local storage, host/port/user/database identifiers from relational or vector database drivers, provider diagnostics from language-model APIs, and Python traceback fragments. When those backends are configured via connection URIs, some drivers include the full connection string - including credentials - in the exception text, escalating reconnaissance data into credential disclosure. The upstream fix introduces an internal_server_error() helper that logs the full exception and traceback server-side under a 12-character correlation id and returns only a generic message plus that id, adds a last-resort @app.exception_handler(Exception) so unhandled exceptions cannot bypass sanitization, and converts the chunking-configuration 422 responses into a controlled, numeric-only message.

Know when Lightrag gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

Unauthenticated default (PR:N) network endpoint, trivially triggerable errors (AC:L), confidentiality-only leak of internal metadata (C:L); credential-in-connection-string edge case could justify C:H but base default is C:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Sep 22, 2026 - 17:17 EUVD

DescriptionCVE.org

LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, the LightRAG API server returns raw Python exception text from error handlers in document_routes.py, graph_routes.py, query_routes.py, ollama_api.py, and lightrag_server.py. The detail=str(e), detail=str(exc), and equivalent formatted-message paths expose server filesystem paths, database host, port, user, and database names, language-model provider diagnostics, configuration details, and Python library internals to a network client that can trigger an error. The default unauthenticated configuration makes those responses reachable without credentials, and URI-configured backends can disclose connection strings containing credentials depending on the underlying driver error. This issue is fixed in version 1.5.5.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Low
HKUDS open-source RAG framework; GitHub-popular but modest real production footprint
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy