CVE-2021-43838
Regular Expression Denial of Service (ReDoS) in jsx-slack
Description
jsx-slack v4.5.1 and earlier versions are vulnerable to a regular expression denial-of-service (ReDoS) attack. ### Impact If attacker can put a lot of JSX elements into `<blockquote>` tag, an internal regular expression for escaping characters may consume an excessive amount of computing resources. ```javascript /** @jsxImportSource jsx-slack */ import { Section } from 'jsx-slack' console.log( <Section> <blockquote> {[...Array(40)].map((_, i) => ( <p>{i + 1}</p> ))} </blockquote> </Section> ) ``` ### Patches _See also: https://github.com/yhatt/jsx-slack/security/advisories/GHSA-hp68-xhvj-x6j6_ jsx-slack v4.5.2 has updated regular expressions to prevent catastrophic backtracking. jsx-slack v4.5.1 also had patched a workaround. It has no problems to contents with ASCII characters, but _still vulnerable to contents with multibyte characters_. (https://github.com/yhatt/jsx-slack/commit/36e4a10405e4c7745333e245fcc5029c02c7065d) ### References - https://nvd.nist.gov/vuln/detail/CVE-2021-43838 - https://github.com/yhatt/jsx-slack/commit/36e4a10405e4c7745333e245fcc5029c02c7065d ### Credits Thanks to @hieki for finding out this vulnerability.
How to fix CVE-2021-43838
To remediate CVE-2021-43838, upgrade the affected package to a fixed version below.
- —upgrade to 4.5.1 or later
Is CVE-2021-43838 being exploited?
Low — EPSS is 0.3%, meaning exploitation activity has not been observed at scale.
Affected packages (1)
- from 0, < 4.5.1