GHSA-3X59-VRMC-5MX6
Vulnerability from github – Published: 2023-08-24 22:16 – Updated: 2023-08-31 18:51Overview
@webiny/react-rich-text-renderer is a react component to render data coming from Webiny Headless CMS and Webiny Form Builder. The @webiny/react-rich-text-renderer package depends on the editor.js rich text editor to handle rich text content. The CMS stores rich text content from the editor.js into the database. When the @webiny/react-rich-text-renderer is used to render such content, it uses the dangerouslySetInnerHTML prop, without applying HTML sanitization. The issue arises when an actor, who in this context would specifically be a content manager with access to the CMS, inserts a malicious script as part of the user-defined input. This script is then injected and executed within the user's browser when the main page or admin page loads.
Am I affected?
You will be affected if you're running a Webiny project created prior to 5.35.0 and you're using the legacy rich text editor (which uses editor.js library under the hood). If you've already switched to using the new rich text editor, powered by Lexical editor, you will not be affected by this.
How do I patch this vulnerability?
Update to Webiny version 5.37.2.
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 5.37.1"
},
"package": {
"ecosystem": "npm",
"name": "@webiny/react-rich-text-renderer"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "5.37.2"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2023-41167"
],
"database_specific": {
"cwe_ids": [
"CWE-79"
],
"github_reviewed": true,
"github_reviewed_at": "2023-08-24T22:16:20Z",
"nvd_published_at": "2023-08-25T14:15:10Z",
"severity": "MODERATE"
},
"details": "## Overview\n`@webiny/react-rich-text-renderer` is a react component to render data coming from Webiny Headless CMS and Webiny Form Builder. The `@webiny/react-rich-text-renderer` package depends on the [editor.js](https://editorjs.io/) rich text editor to handle rich text content. The CMS stores rich text content from the `editor.js` into the database. When the `@webiny/react-rich-text-renderer` is used to render such content, it uses the `dangerouslySetInnerHTML` prop, without applying HTML sanitization. The issue arises when an actor, who in this context would specifically be a content manager with access to the CMS, inserts a malicious script as part of the user-defined input. This script is then injected and executed within the user\u0027s browser when the main page or admin page loads.\n\n## Am I affected?\nYou will be affected if you\u0027re running a Webiny project created prior to `5.35.0` and you\u0027re using the legacy rich text editor (which uses `editor.js` library under the hood). If you\u0027ve already switched to using the new rich text editor, powered by Lexical editor, you will not be affected by this.\n\n## How do I patch this vulnerability?\nUpdate to Webiny version `5.37.2`.\n",
"id": "GHSA-3x59-vrmc-5mx6",
"modified": "2023-08-31T18:51:43Z",
"published": "2023-08-24T22:16:20Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/webiny/webiny-js/security/advisories/GHSA-3x59-vrmc-5mx6"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-41167"
},
{
"type": "WEB",
"url": "https://github.com/webiny/webiny-js/commit/8748bc53fe862bb03d4459ccc0be39084a5d35c0"
},
{
"type": "PACKAGE",
"url": "https://github.com/webiny/webiny-js"
},
{
"type": "WEB",
"url": "https://webiny.com"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N",
"type": "CVSS_V3"
}
],
"summary": "@webiny/react-rich-text-renderer vulnerable to insecure rendering of rich text content"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.