Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain write access to a URL-type backend field
-
ExploitStore javascript: URI in record field
-
ExecutionAdmin views record and clicks rendered link
-
ImpactScript executes in admin's authenticated session
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 | Exploitation requires that an attacker can store or influence the value of a URL-type backend field (e.g. a 'url' record attribute) that is rendered by react-admin's UrlField or FileField components in versions before 5.15.5 - this implies at least low-privilege authenticated write access to the data layer feeding the admin UI (PR:L). The payload is a javascript: URI (including obfuscated variants using mixed case, leading control characters, or embedded tabs/newlines, per the getSafeUrl regex in the patch). Execution additionally requires a victim administrator to passively interact by clicking the rendered link (UI:P). Limiting factors: it is not remote-unauthenticated (attacker needs write access), it depends on administrator click interaction, and it only affects deployments using UrlField/FileField on attacker-influenceable data in react-admin < 5.15.5; upgrading to 5.15.5 neutralizes it by rendering unsafe URLs as plain text. |
| Impact | This is a medium-severity stored XSS (CWE-79, CVSS 4.0 base 5.1) whose real-world urgency is moderate, not critical. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) shows that while the flaw is network-reachable and low-complexity, it is gated by two meaningful barriers: the attacker must already hold at least low-privilege write access to backend data (PR:L), and a victim administrator must passively interact by clicking the maliciously rendered link (UI:P). Impact is partial across confidentiality and integrity (VC:L/VI:L, VA:N) with a scope/subsequent-system effect (SC:L/SI:L) reflecting execution in the admin's authenticated session rather than full system compromise. No EPSS score was provided, the CVE is NOT in CISA KEV, and no public POC was supplied - so there is no signal of active or widespread exploitation; exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was provided. The signals are consistent (no conflict between vector and description), so the honest conclusion is a genuine-but-not-urgent issue: a vendor-confirmed, patched flaw whose exploitation depends on attacker write access plus admin interaction, making it a patch-on-normal-cycle item rather than an emergency. |
| Exploit ScenarioDerived | A low-privileged user (or any actor able to influence a URL-type backend field) stores a 'javascript:alert(...)' payload in a record field that react-admin renders through UrlField or FileField. When an administrator later browses that record and clicks the rendered link, the script executes in the admin's authenticated session, enabling session-context actions such as token theft or admin-privileged requests. No public exploit code was provided in the input, though the patch diff and VulnCheck advisory describe the mechanism in detail. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Stored cross-site scripting in react-admin before 5.15.5 lets an authenticated attacker with low-privilege write access to URL-type record fields execute JavaScript in an administrator's session when the administrator clicks a rendered UrlField or FileField link. The vulnerable components emitted javascript: URI values as clickable hrefs, including obfuscated variants using mixed case, leading control characters, or embedded tabs and newlines, while exploitation depends on administrator click interaction and attacker influence over stored URL data. CVSS 4.0 base score is 5.1, no public exploit identified at time of analysis, and upgrading to 5.15.5 renders unsafe URLs as plain text.
RemediationAI
Vendor-released patch: 5.15.5. Upgrade react-admin to 5.15.5 or later, which contains the added getSafeUrl guard and renders javascript: URLs as plain text with a console error instead of creating a clickable link; see https://github.com/marmelab/react-admin/releases/tag/v5.15.5, the fix commit https://github.com/marmelab/react-admin/commit/d20820a05dc8094d322ffa3f0bd9800501acb0a8, and the advisory https://www.vulncheck.com/advisories/react-admin-before-5.15.5-stored-xss-via-urlfield-and-filefield. If upgrading is not immediately possible, validate and sanitize URL fields server-side before storage, rejecting javascript: schemes and obfuscated variants with mixed case, leading control characters, or embedded tabs/newlines; this may also block legitimate schemes such as mailto, tel, ftp, or data, so allowlist the schemes your application actually needs. A custom UrlField or FileField renderer that checks the protocol before creating an href is also effective, but it must apply the same obfuscation-aware check and be audited across all record fields, while restricting write access to URL-type fields reduces exposure but does not eliminate stored payloads already present. Content Security Policy can add defense in depth against script execution but is not a substitute for the patched renderer.
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
react-admin is Marmelab's React-based administration framework, and its UrlField and FileField components in packages/ra-ui-materialui render record values as links by placing them in href attributes. CWE-79 (stored cross-site scripting) is the root cause: the pre-5.15.5 code did not validate the URL scheme before creating an anchor, so a stored javascript: URI executes in the origin of the admin application when a victim clicks it, allowing script access to the administrator's authenticated session. The upstream fix adds getSafeUrl and isSafeUrl in packages/ra-core, using a case-insensitive regular expression that rejects javascript: after leading C0 control characters or spaces and with tabs or newlines between letters; safe URLs such as http, https, mailto, tel, ftp, relative paths, and data URIs continue to work. The supplied CPE cpe:2.3:a:marmelab:react-admin:*:*:*:*:*:*:*:* identifies all react-admin versions before 5.15.5 as the affected range, and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) confirms low-privilege authenticated write access plus victim click interaction, with low confidentiality and integrity impact and no availability impact.
Know when React Admin 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:L/VI:L/VA:N/SC:L/SI:L/SA:N
Attacker needs low-privilege write access (PR:L) to store the payload and the admin must click the link (UI:R); stored XSS executing in the admin session crosses a security boundary (S:C) with partial C/I impact and no availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
react-admin before 5.15.5 contains a stored cross-site scripting vulnerability that allows attackers to inject scripts by storing javascript: URIs in record fields rendered by UrlField and FileField. Attackers who can influence URL-type backend fields can execute JavaScript in an administrator's authenticated session when the administrator clicks the rendered link.
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.
EUVD-2026-104921
GHSA-j95f-gmvj-5c83
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB