Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker authenticates as workspace member
-
DeliveryCraft agent DSL node name with XSS payload
-
ExploitSave agent via update endpoint (normalize_dsl preserves payload verbatim)
-
InstallVictim opens dataflow result view for compromised agent
-
C2Victim clicks 'Rerun from current step'
-
ExecuteModal renders payload via dangerouslySetInnerHTML with escapeValue:false
-
ImpactSteal session token or perform authenticated actions as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid RAGFlow account with workspace membership and permission to create or edit agent pipelines - unauthenticated exploitation is not possible. The victim must be a member of the same workspace, navigate to the dataflow result view for the compromised agent, and click the 'Rerun from current step' button to trigger the vulnerable modal. Both the dangerouslySetInnerHTML rendering path and the i18next escapeValue:false configuration must be present, which are confirmed defaults in RAGFlow builds before v0.26.3. Exploitation is strictly intra-workspace; users in separate workspaces are not reachable through this vector. The required victim click action (UI:P) is the primary limiting factor for mass exploitation. |
| Impact | The CVSS 4.0 score of 5.1 (Medium) appropriately reflects the dual constraints of PR:L (authenticated attacker) and UI:P (victim must interact with the modal), which together limit opportunistic mass exploitation. Impact metrics are correctly scoped to the subsequent system (SC:L/SI:L/SA:N), capturing the cross-user trust-boundary nature: the attacker's own session incurs no risk, but peer workspace members' sessions are targetable. A publicly available proof-of-concept (GitHub issue #16507, tagged 'exploit') lowers the attacker skill threshold materially, yet the absence of a CISA KEV listing indicates no confirmed widespread exploitation at time of analysis. Real-world risk is highest in multi-tenant or collaborative RAGFlow deployments where workspace membership is shared among users of differing trust levels. For single-user or tightly access-controlled deployments, risk is substantially reduced by the authenticated prerequisite. No EPSS data was provided in the source intelligence, so probability-based exploitation likelihood cannot be independently quantified here. |
| Exploit ScenarioDerived | A malicious RAGFlow workspace member crafts an agent pipeline and sets a DSL node name to a JavaScript payload designed to exfiltrate the victim's session token or API key. When a co-worker opens the dataflow result view for that agent and clicks the 'Rerun from current step' button, the confirmation modal renders the node name unsanitized via dangerouslySetInnerHTML, executing the payload in the victim's browser and transmitting their credentials to the attacker. A public proof-of-concept demonstrating this full flow is available at https://github.com/infiniflow/ragflow/issues/16507. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 02, 2026
Stored XSS in RAGFlow before 0.26.3 enables cross-user JavaScript execution through unsanitized agent pipeline node names rendered in a confirmation modal. An authenticated workspace member injects a payload into a DSL node name via the agent update endpoint; when a different workspace member opens the dataflow result and clicks 'Rerun from current step,' the payload executes in their browser, enabling session token theft and account takeover across the workspace trust boundary. No CISA KEV listing exists, but a public proof-of-concept is available and a vendor patch has been released as v0.26.3.
RemediationAI
Upgrade RAGFlow to version v0.26.3 or later, which resolves the vulnerability via commit 572f1ea9f4eba6a60e64f7437dee60aa1c0913f1 merged through PR #16516 (https://github.com/infiniflow/ragflow/pull/16516); the release is available at https://github.com/infiniflow/ragflow/releases/tag/v0.26.3. If immediate upgrade is not feasible, restrict agent pipeline create and edit permissions to fully trusted workspace members only, since the attack originates exclusively from a user with those privileges - note this limits collaborative pipeline authoring workflows as a trade-off. Completely disabling the agent pipeline feature for untrusted users eliminates the injection vector entirely but removes RAGFlow's core orchestration functionality for those users.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
RAGFlow is an open-source Retrieval-Augmented Generation pipeline orchestration platform by InfiniFlow (CPE: cpe:2.3:a:infiniflow:ragflow:*:*:*:*:*:*:*:*). The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS), arising from two compounding failures. On the backend, the agent update endpoint's normalize_dsl function performs only JSON serialization validation and preserves DSL node names verbatim with no HTML encoding. On the frontend, the React-based dataflow-result UI renders those names directly via React's dangerouslySetInnerHTML API, and the i18next internationalization library is configured with escapeValue:false, disabling its default HTML-escaping safety net. The combination eliminates both the server-side and client-side sanitization layers, creating a complete stored XSS sink triggered through the 'Rerun from current step' confirmation modal.
Know when Ragflow gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Network-delivered stored XSS requires low-privilege authentication (PR:L) and victim interaction (UI:R); scope change (S:C) reflects cross-user session hijack with no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
RAGFlow before 0.26.3 stores an agent pipeline (DSL) node name without sanitization: the agent update endpoint normalizes the submitted DSL via normalize_dsl, which only performs JSON serialization validation and preserves the node name verbatim. The dataflow-result web UI then renders that name into the "Rerun from current step" confirmation modal via dangerouslySetInnerHTML, and the i18next configuration sets escapeValue:false, so the value is inserted into the DOM without HTML encoding. An authenticated workspace user who can create or edit an agent can inject arbitrary JavaScript that executes in the session of another workspace member who opens the dataflow result and clicks rerun, enabling session/token theft and account takeover across the user trust boundary.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
A vulnerability in infiniflow/ragflow versions v0.12.0 allows for remote code execution. Rated critical severity (CVSS 9
Path traversal vulnerability in RAGFlow RAG engine version 0.23.1 allows unauthenticated attackers to read arbitrary fil
In infiniflow/ragflow versions 0.12.0, the `web_crawl` function in `document_app.py` contains multiple vulnerabilities.
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine. Rated high severity (CVSS 8.9), this vulnerabilit
RAGFlow versions prior to 0.22.0 generate API keys and beta assistant/agent share tokens with a predictable scheme, lett
The `add_llm` function in `llm_app.py` in infiniflow/ragflow version 0.11.0 contains a remote code execution (RCE) vulne
Remote code execution in RAGFlow versions prior to 0.23.0 allows a low-privileged authenticated user (a normal login acc
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. Rated high s
A Server-Side Request Forgery (SSRF) vulnerability exists in infiniflow/ragflow version 0.12.0. Rated high severity (CVS
RAGFlow 0.13.0 suffers from improper access control in document-hooks.ts, allowing unauthorized access to user documents
A vulnerability in infiniflow/ragflow version RAGFlow-0.13.0 allows for partial account takeover via insecure data query
Server-side template injection in RAGFlow 0.24.0 and earlier allows any authenticated user to execute arbitrary operatin
EUVD-2026-41421
GHSA-73vg-2j49-cmcr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB