VDB
Sign up
MEDIUM5.3

GHSA-hp68-xhvj-x6j6

jsx-slack insufficient patch for CVE-2021-43838 ReDoS

Quick fix

GHSA-hp68-xhvj-x6j6 — jsx-slack: upgrade to the fixed version with the command below.

npm install jsx-slack@4.5.2

Details

We found the patch for CVE-2021-43838 in jsx-slack v4.5.1 is insufficient to save from Regular Expression Denial of Service (ReDoS) attack.

This vulnerability affects to jsx-slack v4.5.1 and earlier versions.

### Impact

If attacker can put a lot of JSX elements into `<blockquote>` tag _with including multibyte characters_, 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(() => ( <p>亜</p> ))} </blockquote> </Section> ) ```

v4.5.1 has released by passing the test against ASCII characters but missed the case of multibyte characters. https://github.com/yhatt/jsx-slack/security/advisories/GHSA-55xv-f85c-248q

### Patches

jsx-slack v4.5.2 has updated regular expressions for escaping blockquote characters to prevent catastrophic backtracking. It is also including an updated test case to confirm rendering multiple tags in `<blockquote>` with multibyte characters.

### References

- https://github.com/yhatt/jsx-slack/commit/46bc88391d89d5fda4ce689e18ca080bcdd29ecc

### Credits

Thanks to @hieki for finding out this vulnerability.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/jsx-slack
Introduced in: 0Fixed in: 4.5.2
Fixnpm install jsx-slack@4.5.2

References