lightrag-hku
[EMNLP2025] LightRAG: Simple and Fast Retrieval-Augmented Generation
Activity
- Latest release
- 1mo ago
- Total releases
- 94
- Cadence
- ~5 days
- Last 12 months
- 28
Reach
- Stars
- 39.5k
Details
- License
- MIT
- First release
- Oct 10, 2024
| Version | Released | |
|---|---|---|
1.5.7
patch
| ||
1.5.7rc2
pre
| ||
1.5.7rc1
pre
| ||
1.5.6
patch
| ||
1.5.5
patch
| ||
1.5.5rc1
pre
5 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev | ||
1.5.4
patch
5 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev | ||
1.5.3
patch
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.5.2
patch
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.5.1
patch
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.5.0
minor
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.5.0rc3
pre
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.5.0rc2
pre
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.4.16
patch
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.5.0rc1
pre
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.4.15
patch
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.4.14
patch
7 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev | ||
1.4.13
patch
8 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.13rc1
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.12
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.12rc1
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.11
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.11rc2
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.10
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.11
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.10
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.9
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.8
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.7
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.6
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.5
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.4
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.4rc1
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.3
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.2
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9.1
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9rc4
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9rc3
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9rc2
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.9rc1
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8.2
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8.1
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8rc9
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8rc8
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8rc7
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8rc6
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.8rc4
pre
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.7
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev | ||
1.4.6
patch
9 CVEs
CVE-2026-86062
PYSEC-2026-4065
GHSA-xpjq-3w4w-w5wr
Oct 01, 2026
lightrag-hku: Stored Cross-Site Scripting (XSS) in the LightRAG WebUI chat/answer renderer via ingested content
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe LightRAG WebUI renders assistant/answer chat content as raw HTML — DetailsSink —
Source → sink:
react-markdown's built-in defenses do NOT cover this: it sanitizes PoCBenign, local-only. Tested at commit Fastest check (code review, ~10s): in Runnable proof (~2 min) — reproduces the exact renderer config and shows it execute in a browser:
Observed (verified in headless Chromium/Edge): the injected Illustrative end-to-end source path (in a live instance):
Then query the knowledge base from the WebUI (or ImpactStored (persistent) cross-site scripting. Any user in the default no-auth deployment, or any
authenticated low-privilege collaborator when auth is enabled, can plant a document whose content runs
arbitrary JavaScript in the browser of every user who later retrieves it. Because LightRAG keeps the
auth token in Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85740
PYSEC-2026-4064
GHSA-vv3m-f8x4-7377
Oct 01, 2026
lightrag-hku: SSRF via IPv6-transition address bypass (NAT64, IPv4-compatible, 6to4) of the native-markdown image-download guard
7.1
/ 10
High
Network
High
Low
None
Changed
High
Low
None
SummaryLightRAG's native markdown parser downloads external images referenced by an uploaded markdown or textpack document. The only SSRF guard, Affected component and versions
Vulnerable code vs the guarded siblingEvaluated on the exact resolved addresses (CPython | Form | address | is_global | guard verdict |
|---|---|---|---|
| plain internal 127.0.0.1 | The guard already blocks the plain and IPv4-mapped internal forms (the forms the author tested), proving the intent is to reject internal destinations; it never canonicalizes the other transition wrappers, so they pass.
SeverityHigh. CWE-918 (Server-Side Request Forgery). CVSS 3.1 vector Proof of concept (deployed, both directions, verbatim)Environment: three Docker containers on an IPv6-enabled network - an internal victim ( RUN 1, released v1.5.4 guard (VULNERABLE):
RUN 2, one-line-class decode fix applied (same inputs, same network):
Fix-correctness matrix (isolated): genuine global IPv6 ImpactA caller who can upload a markdown or textpack document (textpack uploads route to the native engine with zero config; markdown reaches it when the native engine is selected) can make the LightRAG server issue HTTP requests to internal-only addresses that the SSRF guard is meant to forbid, and the fetched body is ingested. On a deployment with NAT64/DNS64 routing this reaches cloud instance metadata ( Suggested fixDecode the embedded IPv4 of any IPv6 transition wrapper and classify by the embedded IPv4 before the
Then in
Verified: this blocks the NAT64/IPv4-compat/6to4 internal forms while genuine public IPs and public NAT64-wrapped IPs still pass. ResolutionAddressed by #3426 (pending merge), targeted for release in
Genuine global IPv6 and a NAT64 wrapper of a public IPv4 still pass; regression tests cover every wrapped form of loopback / RFC1918 / metadata, the RFC 6052 Credittonghuaroot (tonghuaroot@gmail.com). Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85734
PYSEC-2026-4062
GHSA-frch-4w6v-q5xx
Oct 01, 2026
lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
SummaryThe POST /login endpoint has no rate limiting, account lockout, or delay on failed attempts. An attacker can submit unlimited password guesses at full network speed. Details
A search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results. PoC
ImpactImproper restriction of authentication attempts. Any network-reachable attacker can brute-force user passwords without restriction. Once credentials are recovered, the attacker gains full authenticated access to all documents, knowledge graph, and administrative operations. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85725
PYSEC-2026-4061
GHSA-c759-cx9p-mrwq
Oct 01, 2026
lightrag-hku: Plaintext Passwords Compared Without Constant-Time Function
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
SummaryWhen plaintext passwords are stored in AUTH_ACCOUNTS, the comparison uses Python's == operator which is not constant-time. An attacker with low-latency access can exploit timing differences to recover the password character by character. Details
PoC
ImpactObservable timing discrepancy. Attackers with low-latency access can recover plaintext passwords character by character without triggering brute-force limits. Only affects deployments using unhashed passwords in AUTH_ACCOUNTS. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-85709
PYSEC-2026-4063
GHSA-hrmj-7rvj-4hg8
Oct 01, 2026
lightrag-hku: Sensitive Information Exposure Through Raw Exception Messages in API Error Responses
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
Low
None
None
SummaryThe LightRAG API server passes raw Python exception messages directly into HTTP error responses across 30+ error handlers in every router. When combined with the default unauthenticated configuration (see companion report on CWE-306), any network-reachable client can trigger exceptions whose raw text discloses internal infrastructure — server filesystem paths, database host/port/user, LLM provider error details, and Python library internals. No global exception handler sanitizes error messages before they reach the client. DetailsThroughout the API route handlers, exceptions are caught and their string
representation is returned verbatim via HTTP 500 — raw exception passthrough (
HTTP 422 — raw exception passthrough (
Total: ~33 raw-exception-to-HTTP-response locations. The only pre-existing
custom exception handler in Example pattern (
Categories of sensitive information that can leak through these responses:
The risk is amplified by the default unauthenticated configuration (CWE-306, companion report), which lets any network client trigger and read these errors without credentials. PoCTested on a clean checkout with the Step 1 — Filesystem path disclosure (default JSON storage)With the default storage backend, a file-permission error is returned verbatim:
Vulnerable response — the full server-side path is disclosed:
Step 2 — Database infrastructure disclosure (PostgreSQL backend)Configure a PostgreSQL KV backend pointed at an unreachable / misconfigured host:
A request that touches storage returns the raw connection error, disclosing the host / port / user the server is configured to reach (the asyncpg password is not echoed — see the credentials note above):
For a URI-configured backend such as MongoDB ( ImpactError-message information exposure. A client able to reach the LightRAG server can extract:
When combined with the default unauthenticated configuration, any
network client can trigger and read these responses without authentication,
which is why this is scored Suggested remediation
Fix status: implemented in HKUDS/LightRAG#3422 — a shared
Credits
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 77 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5rc1
Fixed in
1.5.5
References
Updated Oct 01, 2026 · Source: OSV.dev
CVE-2026-61740
PYSEC-2026-3475
GHSA-f4vv-55c2-5789
Jul 23, 2026
LightRAG is Vulnerable to Authentication Bypass: hardcoded DEFAULT_TOKEN_SECRET and public /auth-status defeat LIGHTRAG_API_KEY protection
Critical
Network
Low
None
None
SummaryWhen LightRAG is deployed with This is distinct from the previously-fixed GHSA-mcww-4hxq-hfr3 / CVE-2026-30762, which only covered the Root causeThree independent issues combine:
Proof of concept (offline-minted token, zero server contact)Tested against a clean install of commit
The guest JWT also does not need to be minted offline — ImpactAny LightRAG instance that is reachable on the network and configured with:
is fully accessible to any anonymous caller. This configuration is documented as the "simple API-Key authentication" mode in
Because the server may be exposed behind corporate reverse proxies that trust Suggested CVSS7.5 — Suggested fixAny one of the following individually closes the primary vector; all three are recommended for defense in depth:
Affected versions
Prior art checked
DiscoveryFound during an external security review of LightRAG's API authentication flow. Reporter can be credited publicly as "patchmyday (Jason Zhang)" upon disclosure. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-61736
PYSEC-2026-3474
GHSA-6x6h-qqr7-855w
Jul 23, 2026
LightRAG: CORS Wildcard + Credentials Enables Any-Origin Credentialed Requests
9.3
/ 10
Critical
Network
Low
None
Required
Changed
High
High
None
SummaryThe server defaults to CORS_ORIGINS=* combined with allow_credentials=True. Starlette's CORSMiddleware echoes the requesting origin in preflight responses when credentials are enabled, meaning every origin is effectively whitelisted for credentialed cross-origin requests. Any malicious website can perform authenticated API calls on behalf of a logged-in user. Details
PoCHost on any origin. Open in browser where user is logged in to LightRAG:
ImpactPermissive cross-domain policy (CWE-942). Any website visited by an authenticated LightRAG user can silently make authenticated API requests, exfiltrating all documents and knowledge graph data or performing destructive actions such as deleting the entire document store. Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 75 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.14
1.4.15
1.4.16
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
1.5.0
1.5.0rc1
1.5.0rc2
1.5.0rc3
1.5.1
1.5.2
1.5.3
Fixed in
1.5.4
References
Updated Jul 23, 2026 · Source: OSV.dev
CVE-2026-39413
PYSEC-2026-2592
GHSA-8ffj-4hx4-9pgf
Jul 13, 2026
lightrag-hku: JWT Algorithm Confusion Vulnerability
4.2
/ 10
Medium
Network
High
High
Required
Unchanged
High
None
None
SummaryThe LightRAG API is vulnerable to a JWT algorithm confusion attack where an attacker can forge tokens by specifying 'alg': 'none' in the JWT header. Since the DetailsIn
This allows any algorithm listed in the token's header to be processed, including 'none'. The code does not explicitly specify that 'none' is not allowed, making it possible for an attacker to bypass authentication. PoCAn attacker can generate a JWT with the following structure:
Then send a request like:
ImpactAn attacker can impersonate any user, including administrators, by forging a JWT with 'alg': 'none', gaining full access to protected resources without needing valid credentials. Recommended FixExplicitly specify allowed algorithms and exclude 'none'. Modify the
Or better yet, hardcode the expected algorithm(s):
Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 65 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.14
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-30762
PYSEC-2026-2593
GHSA-mcww-4hxq-hfr3
Jul 13, 2026
LightRAG: Hardcoded JWT Signing Secret Allows Authentication Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
Subject: Security Vulnerability Report Hardcoded JWT Secret (CVE-2026-30762) Hi HKUDS team, I'm writing to report a security vulnerability I discovered in LightRAG v1.4.10. This has been assigned CVE-2026-30762 by MITRE. Vulnerability: Hardcoded JWT signing secret Type: Improper Authentication (CWE-287) Severity: High Attack Vector: Remote / Unauthenticated Summary: The file lightrag/api/config.py (line 397) uses a default JWT secret "lightrag-jwt-default-secret" when the TOKEN_SECRET environment variable is not set. The AuthHandler in lightrag/api/auth.py (lines 24-25) uses this secret to sign and verify tokens. An unauthenticated attacker can forge valid JWT tokens using the publicly known default secret and gain access to any protected endpoint. Reproduction:
Suggested Fix: Require TOKEN_SECRET to be explicitly set when AUTH_ACCOUNTS is configured. Refuse to start the API server if authentication is enabled but no custom secret is provided. I'm following a 90-day responsible disclosure timeline from today's date. Please let me know if you have any questions or need additional information. Best regards, Venkata Avinash Taduturi Affected versions
0.0.2
0.0.3
0.0.4
0.0.5
0.0.6
0.0.7
0.0.8
0.0.9
1.0.0
1.0.1
1.0.3
1.0.5
+ 64 more Show less
1.0.6
1.0.8
1.0.9
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.2.1
1.2.2
1.2.3
1.2.5
1.2.6
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.4.0
1.4.1
1.4.10
1.4.11
1.4.11rc2
1.4.12
1.4.12rc1
1.4.13rc1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8.1
1.4.8.2
1.4.8rc4
1.4.8rc6
1.4.8rc7
1.4.8rc8
1.4.8rc9
1.4.9
1.4.9.1
1.4.9.10
1.4.9.11
1.4.9.2
1.4.9.3
1.4.9.4
1.4.9.4rc1
1.4.9.5
1.4.9.6
1.4.9.7
1.4.9.8
1.4.9.9
1.4.9rc1
1.4.9rc2
1.4.9rc3
1.4.9rc4
Fixed in
1.4.13
References Updated Jul 13, 2026 · Source: OSV.dev |