It has been discovered that malicious HTML using special nesting techniques can bypass the depth checking added to DOMPurify in recent releases. It was also possible to use Prototype Pollution to weaken the depth check.
This renders dompurify unable to avoid XSS attack.
cure53/DOMPurify (dompurify)
### [`v3.1.3`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.3): DOMPurify 3.1.3
[Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.1.2...3.1.3)
- Fixed several mXSS variations found by and thanks to [@kevin-mizu](https://redirect.github.com/kevin-mizu) & [@Ry0taK](https://redirect.github.com/Ry0taK)
- Added better configurability for comment scrubbing default behavior
- Added better hardening against Prototype Pollution attacks, thanks [@kevin-mizu](https://redirect.github.com/kevin-mizu)
- Added better handling and readability of the `nodeType` property, thanks [@ssi02014](https://redirect.github.com/ssi02014)
- Fixed some smaller issues in README and other documentation
### [`v3.1.2`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.2): DOMPurify 3.1.2
[Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.1.1...3.1.2)
- Addressed and fixed a mXSS variation found by [@kevin-mizu](https://redirect.github.com/kevin-mizu)
- Addressed and fixed a mXSS variation found by [Adam Kues](https://twitter.com/hash_kitten) of Assetnote
- Updated tests for older Safari and Chrome versions
### [`v3.1.1`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.1): DOMPurify 3.1.1
[Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.1.0...3.1.1)
- Fixed an mXSS sanitiser bypass reported by [@icesfont](https://redirect.github.com/icesfont)
- Added new code to track element nesting depth
- Added new code to enforce a maximum nesting depth of 255
- Added coverage tests and necessary clobbering protections
**Note that this is a security release and should be upgraded to immediately. Please also note that further releases may follow as the underlying vulnerability is apparently new and further variations may be discovered.**
### [`v3.1.0`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.0): DOMPurify 3.1.0
[Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.0.11...3.1.0)
- Added new setting `SAFE_FOR_XML` to enable better control over comment scrubbing
- Updated README to warn about *happy-dom* not being safe for use with DOMPurify yet
- Updated the LICENSE file to show the accurate year number
- Updated several build and test dependencies
### [`v3.0.11`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.0.11): DOMPurify 3.0.11
[Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.0.10...3.0.11)
- Fixed another conditional bypass caused by Processing Instructions, thanks [@Ry0taK](https://redirect.github.com/Ry0taK)
- Fixed the regex for HTML Custom Element detection, thanks [@AlekseySolovey3T](https://redirect.github.com/AlekseySolovey3T)
### [`v3.0.10`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.0.10): DOMPurify 3.0.10
[Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.0.9...3.0.10)
- Fixed two possible bypasses when sanitizing an XML document and later using it in HTML, thanks [@Slonser](https://redirect.github.com/Slonser)
- Bumped up some build and test dependencies
Configuration
📅 Schedule: Branch creation - "" in timezone Europe/Madrid, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
3.0.9
->3.1.3
GitHub Vulnerability Alerts
CVE-2024-45801
It has been discovered that malicious HTML using special nesting techniques can bypass the depth checking added to DOMPurify in recent releases. It was also possible to use Prototype Pollution to weaken the depth check.
This renders dompurify unable to avoid XSS attack.
Fixed by https://github.com/cure53/DOMPurify/commit/1e520262bf4c66b5efda49e2316d6d1246ca7b21 (3.x branch) and https://github.com/cure53/DOMPurify/commit/26e1d69ca7f769f5c558619d644d90dd8bf26ebc (2.x branch).
CVE-2024-47875
DOMpurify was vulnerable to nesting-based mXSS
fixed by 0ef5e537 (2.x) and merge 943
Backporter should be aware of GHSA-mmhx-hmjr-r674 (CVE-2024-45801) when cherry-picking
POC is avaible under test
Release Notes
cure53/DOMPurify (dompurify)
### [`v3.1.3`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.3): DOMPurify 3.1.3 [Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.1.2...3.1.3) - Fixed several mXSS variations found by and thanks to [@kevin-mizu](https://redirect.github.com/kevin-mizu) & [@Ry0taK](https://redirect.github.com/Ry0taK) - Added better configurability for comment scrubbing default behavior - Added better hardening against Prototype Pollution attacks, thanks [@kevin-mizu](https://redirect.github.com/kevin-mizu) - Added better handling and readability of the `nodeType` property, thanks [@ssi02014](https://redirect.github.com/ssi02014) - Fixed some smaller issues in README and other documentation ### [`v3.1.2`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.2): DOMPurify 3.1.2 [Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.1.1...3.1.2) - Addressed and fixed a mXSS variation found by [@kevin-mizu](https://redirect.github.com/kevin-mizu) - Addressed and fixed a mXSS variation found by [Adam Kues](https://twitter.com/hash_kitten) of Assetnote - Updated tests for older Safari and Chrome versions ### [`v3.1.1`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.1): DOMPurify 3.1.1 [Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.1.0...3.1.1) - Fixed an mXSS sanitiser bypass reported by [@icesfont](https://redirect.github.com/icesfont) - Added new code to track element nesting depth - Added new code to enforce a maximum nesting depth of 255 - Added coverage tests and necessary clobbering protections **Note that this is a security release and should be upgraded to immediately. Please also note that further releases may follow as the underlying vulnerability is apparently new and further variations may be discovered.** ### [`v3.1.0`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.1.0): DOMPurify 3.1.0 [Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.0.11...3.1.0) - Added new setting `SAFE_FOR_XML` to enable better control over comment scrubbing - Updated README to warn about *happy-dom* not being safe for use with DOMPurify yet - Updated the LICENSE file to show the accurate year number - Updated several build and test dependencies ### [`v3.0.11`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.0.11): DOMPurify 3.0.11 [Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.0.10...3.0.11) - Fixed another conditional bypass caused by Processing Instructions, thanks [@Ry0taK](https://redirect.github.com/Ry0taK) - Fixed the regex for HTML Custom Element detection, thanks [@AlekseySolovey3T](https://redirect.github.com/AlekseySolovey3T) ### [`v3.0.10`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.0.10): DOMPurify 3.0.10 [Compare Source](https://redirect.github.com/cure53/DOMPurify/compare/3.0.9...3.0.10) - Fixed two possible bypasses when sanitizing an XML document and later using it in HTML, thanks [@Slonser](https://redirect.github.com/Slonser) - Bumped up some build and test dependenciesConfiguration
📅 Schedule: Branch creation - "" in timezone Europe/Madrid, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.