CVE-2026-85725: LightRAG plaintext password timing attack vulnerability

CVE-2026-85725 · Severity: medium · CVSS 5.9 · Published 2026-09-22

LightRAG is a Python library that provides API authentication. When plaintext passwords are stored (not hashed), the password verification code uses a non-constant-time comparison that leaks password information through timing side-channels. An attacker with network access can measure response times to systematically recover passwords character-by-character without hitting brute-force protections, compromising account security for systems using plaintext password storage.

Technologies: HKUDS LightRAG, lightrag-hku (PyPI). Vendors: HKUDS, PyPI.

Quick answers

Is CVE-2026-85725 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-85725 being exploited in the wild.
How severe is CVE-2026-85725?
Medium severity, with a CVSS score of 5.9, published 22 September 2026.
Which products and versions are affected?
HKUDS LightRAG <= 1.5.4; lightrag-hku (PyPI) <= 1.5.4, ECOSYSTEM:introduced=0,fixed=1.5.5.
Is there a fix for CVE-2026-85725?
Yes. lightrag-hku (PyPI): upgrade to 1.5.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-85725 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-85725?
Check whether you run HKUDS LightRAG or lightrag-hku (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • lightrag-hku (PyPI): upgrade to 1.5.5 or later
    pip install "lightrag-hku>=1.5.5"

Technical details

The vulnerability is a timing oracle in the verify_password() function (lightrag/api/passwords.py:13-26) that compares plaintext passwords using Python's == operator instead of a constant-time comparison function. The == operator short-circuits on the first mismatched byte, causing measurably different response times based on how many characters match. An attacker with low-latency network access can measure login endpoint response times to determine each character of the password sequentially without triggering brute-force detection. The vulnerability only affects deployments where AUTH_ACCOUNTS contains plaintext passwords rather than bcrypt hashes. A proof-of-concept exploit demonstrates character-by-character password recovery via timing measurement. The fix is available in version 1.5.5, which presumably implements constant-time comparison.

Affected products

  • HKUDS LightRAG <= 1.5.4

Identifiers

  • CVE-2026-85725
  • GHSA-c759-cx9p-mrwq
  • PYSEC-2026-4061

Timeline

  • 2026-07-18: disclosed: Published to GitHub Advisory Database
  • 2026-09-22: advisory: Published to NVD
  • 2026-09-22: patched: Version 1.5.5 released with fix

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.