{"id":"CVE-2025-69286","title":"RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine","summary":"RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine. In versions prior to 0.22.0, the use of an insecure key generation algorithm in the API key and beta (assistant/agent share auth) token generation process allows thes…","severity":"critical","cvss":9.8,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","cwe":["CWE-340"],"vendor":"infiniflow","product":"ragflow","affected":["ragflow < 0.22.0"],"patched":["ragflow 0.22.0"],"published":"2025-12-31","updated":"2026-09-23","sourceUpdated":"2026-09-23T14:10:00.190","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2025-69286","references":[{"url":"https://github.com/infiniflow/ragflow/blob/v0.20.5/api/apps/system_app.py#L214-L215","label":"security-advisories@github.com"},{"url":"https://github.com/infiniflow/ragflow/blob/v0.20.5/api/utils/__init__.py#L343","label":"security-advisories@github.com"},{"url":"https://github.com/infiniflow/ragflow/blob/v0.20.5/api/utils/api_utils.py#L378","label":"security-advisories@github.com"},{"url":"https://github.com/infiniflow/ragflow/commit/a3bb4aadcc3494fb27f2a9933b4c46df8eb532e6","label":"security-advisories@github.com"},{"url":"https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7","label":"security-advisories@github.com"},{"url":"https://github.com/infiniflow/ragflow/security/advisories/GHSA-9j5g-g4xm-57w7","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"}],"tags":["nvd","exploit-available"],"epss":0.00773,"epssPercentile":0.54211,"exploits":{"github":1,"githubRepos":["https://github.com/qianlijaingshan/ragflow-audit"],"checkedAt":"2026-09-23T14:26:04.346Z"},"exploitAvailable":true,"ingestedAt":"2026-09-23T14:25:29.785Z","slug":"CVE-2025-69286","body":"## Overview\n\nRAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine. In versions prior to 0.22.0, the use of an insecure key generation algorithm in the API key and beta (assistant/agent share auth) token generation process allows these tokens to be mutually derivable. Specifically, both tokens are generated using the same `URLSafeTimedSerializer` with predictable inputs, enabling an unauthorized user who obtains the shared assistant/agent URL to derive the personal API key. This grants them full control over the assistant/agent owner's account. Version 0.22.0 fixes the issue.\n\n## Affected\n\n- `ragflow < 0.22.0`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `ragflow 0.22.0`","depth":"abyssal","depthScore":66,"depthScoreParts":{"impact":53.9,"likelihood":0.2,"exploitation":12,"ransomware":0},"changes":[]}