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.
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
Link | Tags |
---|---|
https://github.com/marmelab/react-admin/security/advisories/GHSA-5jcr-82fh-339v | vendor advisory mitigation exploit |
https://github.com/marmelab/react-admin/pull/8644 | patch exploit |
https://github.com/marmelab/react-admin/pull/8645 | patch |
https://github.com/marmelab/react-admin/releases/tag/v3.19.12 | release notes |
https://github.com/marmelab/react-admin/releases/tag/v4.7.6 | release notes |