React-Admin vulnerable to Cross-Site-Scripting attack on `<RichTextField>`
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
react-admin is a frontend framework for building browser applications on top of REST/GraphQL APIs. react-admin prior to versions 3.19.12 and 4.7.6, along with ra-ui-materialui prior to 3.19.12 and 4.7.6, are vulnerable to cross-site scripting. All React applications built with react-admin and using the `<RichTextField>` are affected. `<RichTextField>` outputs the field value using `dangerouslySetInnerHTML` without client-side sanitization. If the data isn't sanitized server-side, this opens a possible cross-site scripting (XSS) attack. Versions 3.19.12 and 4.7.6 now use `DOMPurify` to escape the HTML before outputting it with React and `dangerouslySetInnerHTML`. Users who already sanitize HTML data server-side do not need to upgrade. As a workaround, users may replace the `<RichTextField>` by a custom field doing sanitization by hand.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| marmelab | react-admin | before 3.19.12; 4.0.0 to before 4.7.6 | 3.19.12, 4.7.6 | Patch available | CNA |
| — | react-admin (npm) | before 3.19.12 | 3.19.12 | Patch available | GHSA-5jcr-82fh-339v |
| — | react-admin (npm) | 4.0.0 to before 4.7.6 | 4.7.6 | Patch available | GHSA-5jcr-82fh-339v |
| — | ra-ui-materialui (npm) | 4.0.0 to before 4.7.6 | 4.7.6 | Patch available | GHSA-5jcr-82fh-339v |
| — | ra-ui-materialui (npm) | before 3.19.12 | 3.19.12 | Patch available | GHSA-5jcr-82fh-339v |
- react-admin Vendormarmelab Affected before 3.19.12; 4.0.0 to before 4.7.6 Fixed in 3.19.12, 4.7.6 Patch available CNA
- react-admin (npm) Vendor— Affected before 3.19.12 Fixed in 3.19.12 Patch available GHSA-5jcr-82fh-339v
- react-admin (npm) Vendor— Affected 4.0.0 to before 4.7.6 Fixed in 4.7.6 Patch available GHSA-5jcr-82fh-339v
- ra-ui-materialui (npm) Vendor— Affected 4.0.0 to before 4.7.6 Fixed in 4.7.6 Patch available GHSA-5jcr-82fh-339v
- ra-ui-materialui (npm) Vendor— Affected before 3.19.12 Fixed in 3.19.12 Patch available GHSA-5jcr-82fh-339v
Remediation
- Fix · CNA react-admin (marmelab) Fixed in 3.19.12, 4.7.6
- Fix · GHSA-5jcr-82fh-339v react-admin (npm) Fixed in 3.19.12 Advisory →
- Fix · GHSA-5jcr-82fh-339v react-admin (npm) Fixed in 4.7.6 Advisory →
- Fix · GHSA-5jcr-82fh-339v ra-ui-materialui (npm) Fixed in 4.7.6 Advisory →
- Fix · GHSA-5jcr-82fh-339v ra-ui-materialui (npm) Fixed in 3.19.12 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-25572
- 2026-10-03 Alias added: GHSA-5jcr-82fh-339v
References
Exploit 2
Sources
- CVE-2023-25572 · CVE Program
- CVE-2023-25572 · NVD
- FIRST EPSS
- GHSA-5jcr-82fh-339v · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences