CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-85740

CVE-2026-85740: Server-Side Request Forgery (SSRF) Guard Bypass via IPv6 Transition Wrappers in LightRAG

Alon Barad
Alon Barad
Software Engineer

Sep 23, 2026·5 min read·5 visits

Executive Summary (TL;DR)

LightRAG before v1.5.5 is vulnerable to SSRF because its image-download validator fails to inspect IPv4 addresses wrapped in IPv6 transition formats, permitting access to local networks and cloud metadata services.

A security vulnerability in HKUDS/LightRAG prior to v1.5.5 allows authenticated attackers to bypass the native markdown image downloader guard. The system fails to normalize IPv6 transition wrappers (such as NAT64, IPv4-compatible, and 6to4 blocks) encapsulating internal IPv4 addresses. Python's ipaddress library evaluates these wrappers as globally routable, but hosting environments running NAT64/DNS64 routing decapsulate and route the requests to internal resources.

Vulnerability Overview

The HKUDS/LightRAG framework is designed to provide fast and simple retrieval-augmented generation (RAG) processes. To support markdown ingestion, the framework parses uploaded files and retrieves external assets, such as images, to integrate them into the knowledge base. This operation exposes a significant attack surface if input URLs are not strictly validated before network resolution.

To defend against Server-Side Request Forgery (SSRF), the framework employs an IP-level validation mechanism. It resolves the hostnames specified in the image tags and validates the resulting IP addresses. This validation relies on checking whether the destination address is globally routable.

A critical security flaw exists in the validation logic within lightrag/parser/markdown/parser.py. The validation routine fails to detect and normalize IPv6 transition wrappers that encapsulate internal or private IPv4 addresses. This allows authenticated users with document upload privileges to circumvent the safety boundary.

Root Cause Analysis

The root cause of the vulnerability lies in the reliance on the standard library's ipaddress package for identifying globally routable IP addresses. When validating a resolved IP, the parser inspects the ip.is_global attribute. The parser permits the request if this attribute evaluates to True or if the address matches an explicitly allowed network subnet.

IPv6 transition technologies, designed to facilitate communication between IPv4 and IPv6 networks, encapsulate 32-bit IPv4 addresses within a 128-bit IPv6 container. Common transition formats include NAT64 well-known prefixes (RFC 6052), IPv4-compatible addresses (RFC 4291), 6to4 tunneling (RFC 3056), and local-use NAT64 prefixes (RFC 8215). These formats represent internal IPv4 destinations, such as 127.0.0.1 or 169.254.169.254, using valid global IPv6 prefixes.

Python's interpreter processes these encapsulated literals as globally routable because the outer prefix block is classified as global. For instance, the library evaluates 64:ff9b::7f00:1 (which embeds the localhost address 127.0.0.1) as globally routable. When the application issues the outbound HTTP request, the hosting environment's dual-stack socket layer decapsulates the prefix and routes the packet to the internal IPv4 target.

Code Analysis

In vulnerable versions of LightRAG, the parser checks destination validity by directly querying the is_global property of the resolved IP object. The relevant code path is located in the _validated_addresses() function within lightrag/parser/markdown/parser.py.

# Vulnerable validation logic
if not (ip.is_global or any(ip in net for net in allow)):
    return []

The patch introduces a normalization wrapper to extract the underlying IPv4 address from known IPv6 transition formats. It also establishes a strict default-deny policy for specific blocks.

# Remediation implementation
_FORCE_NON_GLOBAL_V6 = (ip_network("64:ff9b:1::/48"), ip_network("2002::/16"))
 
def _unwrap_embedded_ipv4(ip):
    if ip.version != 6:
        return ip
    if ip.ipv4_mapped is not None:
        return ip.ipv4_mapped
    b = ip.packed
    if b[:12] == b"\\x00" * 12 and b[12:] not in (
        b"\\x00\\x00\\x00\\x00",
        b"\\x00\\x00\\x00\\x01",
    ):
        return ip_address(b[12:])
    if b[:12] == b"\\x00\\x64\\xff\\x9b" + b"\\x00" * 8:
        return ip_address(b[12:])
    return ip

This extraction process ensures that the RAG pipeline applies security checks to the actual destination address. By unwrapping these formats, the validation engine correctly recognizes local loops and private subnets hidden inside IPv6 structures.

Exploitation and Proof-of-Concept Analysis

An attack requires document upload privileges within the LightRAG instance. The attacker crafts a malicious markdown document containing image tags referencing wrapped IPv6 transition addresses. When the server processes this document, the image download module is triggered.

The target infrastructure must run a dual-stack configuration or be deployed within an IPv6-only cloud subnet that utilizes NAT64 or DNS64 resolution services. Standard deployments in environments like AWS or Google Cloud commonly incorporate these configurations. The attacker converts the target local or private IPv4 address to its hexadecimal equivalent to structure the payload.

# Document ingestion test
![exfiltrate](http://[64:ff9b::a9fe:a9fe]/latest/meta-data/iam/security-credentials/)

Upon ingestion, the resolved host is verified as safe by the RAG application. The outbound request is dispatched, and the platform network layer strips the prefix. The underlying host routes the request directly to the instance metadata service, returning sensitive IAM credentials or local services.

Impact Assessment

The security impact of CVE-2026-85740 is rated as High, with a CVSS base score of 7.1. This rating reflects the capacity of an attacker to breach logical trust boundaries. The attack allows access to internal systems that are otherwise shielded from public network interaction.

Successful exploitation enables arbitrary request routing to localhost loopbacks, internal development subnets, and cloud management interfaces. Attackers can leverage this access to perform service enumeration, exploit internal endpoints lacking authentication, or harvest cloud metadata credentials. Exposure of credentials from instance metadata services often leads to further cloud infrastructure compromise.

The vulnerability does not directly permit remote code execution on the host without downstream exploitation of target services. Integrity impact is constrained to the state of internal APIs that accept modification commands. The scope is changed because the execution environment can query external trust boundaries.

Remediation and Mitigation

The primary remediation for CVE-2026-85740 is upgrading HKUDS/LightRAG to version 1.5.5 or higher. The fixed version incorporates target normalization of IPv6 transition wrappers before evaluating routability. It also enforces block-level denials for deprecated or ambiguous blocks.

If immediate package upgrades are unfeasible, organizations should implement host-level mitigations. For instance, disabling instance metadata service access or requiring IMDSv2 with a hop limit of one prevents credentials harvesting. Restricting outbound HTTP communication from the container to verified remote domains also reduces the risk.

Additionally, organizations can deploy an explicit outbound proxy. Forcing all outbound RAG connections through a secure forward proxy that strictly filters destinations ensures that any bypassed requests are blocked at the network perimeter.

Technical Appendix

CVSS Score
7.1/ 10
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:N

Affected Systems

HKUDS/LightRAG

Affected Versions Detail

Product
Affected Versions
Fixed Version
LightRAG
HKUDS
< 1.5.51.5.5
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork (AV:N)
Attack ComplexityHigh (AC:H)
Privileges RequiredLow (PR:L)
ScopeChanged (S:C)
ImpactConfidentiality: High, Integrity: Low, Availability: None
Exploit StatusPoC / Non-weaponized
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
CWE-918
Server-Side Request Forgery (SSRF)

References & Sources

  • [1]GitHub Security Advisory GHSA-vv3m-f8x4-7377
  • [2]Fix Commit 9207e7fd
  • [3]Fix Commit a2586217
  • [4]Fix Commit c598545a
  • [5]LightRAG Release v1.5.5

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-85734
9.1

CVE-2026-85734: Brute-Force and CPU-Exhaustion DoS in LightRAG API /login Endpoint

LightRAG prior to version 1.5.5 does not implement rate limiting, lockout mechanisms, or throttling on its `/login` authentication endpoint. This allows unauthenticated remote attackers to perform rapid brute-force attacks to crack passwords and hijack active sessions. Furthermore, because the endpoint processed synchronous bcrypt verifications inside an asynchronous event loop, concurrent brute-force requests can easily exhaust server CPU resources, triggering an unauthenticated Denial of Service (DoS).

Alon Barad
Alon Barad
3 views•5 min read
•about 3 hours ago•CVE-2026-86062
6.1

CVE-2026-86062: Stored Cross-Site Scripting (XSS) in HKUDS LightRAG WebUI Chat Renderer

HKUDS LightRAG, an open-source retrieval-augmented generation (RAG) framework, is vulnerable to Stored Cross-Site Scripting (XSS) in its WebUI chat rendering component prior to version 1.5.5. Unsanitized document content ingested into the vector database can propagate through the LLM response pipeline and execute malicious HTML or active JavaScript payloads inside the administrator's WebUI session. Because the application stores sensitive access keys in browser storage, successful exploitation allows complete API token extraction and administrative session hijacking.

Alon Barad
Alon Barad
7 views•7 min read
•about 4 hours ago•CVE-2026-94462
7.1

CVE-2026-94462: Broken Access Control in Spree Store API v3 Cart Association

An Insecure Direct Object Reference (IDOR) vulnerability exists in Spree open-source e-commerce solution versions 5.4.0 through 5.4.3 and 5.5.0 through 5.5.3. An authenticated attacker can predict or enumerate guest cart identifiers generated via Sqids and associate them with their own account. This unauthorized association leaks sensitive customer personally identifiable information (PII) and disrupts the checkout flow of active guest sessions.

Alon Barad
Alon Barad
8 views•6 min read
•about 5 hours ago•CVE-2026-77633
7.1

CVE-2026-77633: Storage-quota Time-of-Check to Time-of-Use (TOCTOU) Race Condition in Cloudreve

Cloudreve before version 4.18.0 contains a Time-of-Check to Time-of-Use (TOCTOU) race condition in its storage-quota verification logic. Authenticated attackers with basic write access can trigger multiple parallel upload sessions to bypass their storage limits, leading to host disk space exhaustion and Denial of Service.

Alon Barad
Alon Barad
5 views•7 min read
•about 6 hours ago•CVE-2026-77637
3.8

CVE-2026-77637: Privilege Scope Bypass in Cloudreve Administrative Tools

CVE-2026-77637 is a privilege scope bypass vulnerability in Cloudreve. It allows authenticated clients possessing read-only administrative credentials to access sensitive administrative tool endpoints that should require write-level permissions.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 7 hours ago•CVE-2026-79767
5.5

CVE-2026-79767: Authorization Bypass in Gardener API Server admission plugin

An incorrect authorization vulnerability (CWE-863) in Gardener's customverbauthorizer admission plugin allows project administrators lacking the manage-members permission to inject arbitrary Group or ServiceAccount subjects, granting unauthorized access to project resources.

Alon Barad
Alon Barad
5 views•7 min read