CVE-2026-85725 LightRAG: Plaintext Passwords Compared Without Constant-Time Function
An attacker can recover plaintext passwords via timing attacks on the login endpoint due to non-constant-time string comparison.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-85725?
CVE-2026-85725 is a medium-severity vulnerability in HKUDS LightRAG, published on 22 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, verify_password in lightrag/api/passwords.py compares plaintext AUTH_ACCOUNTS password values with Python's == operator. The comparison can return after the first mismatching byte, creating response-time differences based on password length and matching prefixes. A network attacker with sufficiently low-latency access can repeatedly query the /login endpoint and use the timing oracle to recover a plaintext-configured password character by character. Deployments using bcrypt-prefixed password values are not affected by this comparison path. This issue is fixed in version 1.5.5.
Weakness: CWE-208
Which versions are affected by CVE-2026-85725?
3 open source packages ship an affected version, including lightrag-hku.
| Package | Affected | Fixed in |
|---|---|---|
lightrag-hku PyPI | All versions | 1.5.5 |
lightrag-hku PyPI | All versions | 1.5.5 |
lightrag-hku PyPI | All versions | 1.5.5 |
How do I fix CVE-2026-85725?
Upgrade lightrag-hku to 1.5.5 or later.
Is CVE-2026-85725 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-85725 exists.
Sources
Also known as GHSA-c759-cx9p-mrwq, PYSEC-2026-4061.