remarkjs/remark-html · Security
Unsafe defaults in `remark-html`
- GHSA ID
- GHSA-9q5w-79cv-947m
- CVE ID
- CVE-2021-39199
- Severity
- critical
- Published
- Updated
- CVSS
- 10 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
- CVSS v3
- 10 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
Description
Impact
The documentation of remark-html has mentioned that it was safe by default. In practise the default was never safe and had to be opted into. This means arbitrary HTML can be passed through leading to potential XSS attacks.
Patches
The problem has been patched in 13.0.2 and 14.0.1: remark-html is now safe by default, and the implementation matches the documentation.
Workarounds
On older affected versions, pass sanitize: true, like so:
- .use(remarkHtml)
+ .use(remarkHtml, {sanitize: true})
References
n/a
For more information
If you have any questions or comments about this advisory:
- Open an issue in
remark-html - Email us at [email protected]
CWEs
- CWE-79 · Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
References
- https://github.com/remarkjs/remark-html/security/advisories/GHSA-9q5w-79cv-947m ↗
- https://nvd.nist.gov/vuln/detail/CVE-2021-39199 ↗
- https://github.com/remarkjs/remark-html/commit/b75c9dde582ad87ba498e369c033dc8a350478c1 ↗
- https://github.com/remarkjs/remark-html/releases/tag/14.0.1 ↗
- https://www.npmjs.com/package/remark-html ↗
- https://github.com/advisories/GHSA-9q5w-79cv-947m ↗