Quadratic sibling re-flattening in the html_sanitize_ex traversal engine allows CPU-exhaustion denial of service
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-407.
Summary
Inefficient Algorithmic Complexity vulnerability in the traversal engine in rrrene html_sanitize_ex allows an unauthenticated remote attacker to exhaust server CPU and memory via a flat run of sibling elements in sanitized HTML. The list clause of HtmlSanitizeEx.Traverser.traverse/2 recurses on the tail of a sibling list and then evaluates List.flatten([head] ++ tail) over the already flattened result, so every one of n siblings copies and re-walks the entire remaining tail. The flattening is only needed for the rare case where scrub returns several replacement nodes for one node, but the cost is paid across the whole tail at every step, making traversal quadratic in sibling count. The traverser sits on every public entry point, so no particular scrubber or configuration is required and the payload needs only allowed tags. A 160 KB body of 20,000 sibling elements occupies a scheduler for roughly 1.7 seconds, and the cost grows faster than the body does. This issue affects html_sanitize_ex: from 0.3.1 before 1.4.5 and from 1.5.0-rc.0 before 1.5.3.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA html_sanitize_ex (rrrene) Fixed in 1.4.5, 1.5.3
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
rrrene html_sanitize_ex 1.4.5, 1.5.3
5 records Highest priority Priority LOW 5 LOW
Other records, highest priority first
- TI-2026-48334 Quadratic regex backtracking in the html_sanitize_ex CSS scrubber allows CPU-exhaustion denial of servicePriority LOW 37
- TI-2026-47137 html_sanitize_ex HTML5 scrubber keeps attacker-supplied form-association attributes, allowing form hijackingPriority LOW 22
- TI-2026-47464 html_sanitize_ex HTML5 scrubber keeps attacker-supplied `<object>` elements, allowing untrusted content embeddingPriority LOW 13
Timeline
- 2026-10-02 Threatist record created from CVE-2026-68750
- 2026-10-03 Alias added: GHSA-684p-mhw3-3cwq
References
Patch 4
More rrrene Htmlsanitizeex vulnerabilities
- TI-2026-48334 Quadratic regex backtracking in the html_sanitize_ex CSS scrubber allows CPU-exhaustion denial of service CVSS 4.0HIGH 8.2
- TI-2026-47137 html_sanitize_ex HTML5 scrubber keeps attacker-supplied form-association attributes, allowing form hijacking CVSS 4.0MEDIUM 4.8
- TI-2026-47464 html_sanitize_ex HTML5 scrubber keeps attacker-supplied `<object>` elements, allowing untrusted content embedding CVSS 4.0LOW 2.3
- TI-2026-47457 html_sanitize_ex HTML5 scrubber keeps attacker-supplied meta refresh, allowing forced cross-origin redirection CVSS 4.0LOW 2.3
- TI-2026-48333 CSS sanitizer allowlist bypass in html_sanitize_ex via non-declaration input CVSS 4.0LOW 2.3
Sources
- CVE-2026-68750 · CVE Program
- CVE-2026-68750 · NVD
- FIRST EPSS
- GHSA-684p-mhw3-3cwq · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences