GitHub Advisoryadvisory · npm
GHSA-hp68-xhvj-x6j6 jsx-slack insufficient patch for CVE-2021-43838 ReDoS
MEDIUM
Official page ↗
- Aliases
- CVE-2021-43843
- Ecosystem
- npm
- Packages
- jsx-slack
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Weaknesses
- CWE-400
- Reviewed
- 2022-01-04
Affected packages
• npm jsx-slack: < 4.5.2 → fixed in 4.5.2
Description
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 `` 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(
{[...Array(40)].map(() => (
亜
))}
)
```
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 `` with multibyte characters.
References
• https://github.com/yhatt/jsx-slack/commit/46bc88391d89d5fda4ce689e18ca080bcdd29ecc
Credits
Thanks to @hieki for finding out this vulnerability.
Related
Alias · CVE (1)
- CVE-2021-43843 jsx-slack is a package for building JSON objects for Slack block kit surfaces from JSX. vulnerability
Weakness · CWE (1)
- CWE-400 Uncontrolled Resource Consumption weakness
References
- https://github.com/yhatt/jsx-slack/security/advisories/GHSA-55xv-f85c-248q web
- https://github.com/yhatt/jsx-slack/security/advisories/GHSA-hp68-xhvj-x6j6 web
- https://nvd.nist.gov/vuln/detail/CVE-2021-43843 advisory
- https://github.com/yhatt/jsx-slack/commit/46bc88391d89d5fda4ce689e18ca080bcdd29ecc web
- https://github.com/yhatt/jsx-slack/releases/tag/v4.5.2 web
- https://github.com/yhatt/jsx-slack/security web