Description
justhtml before 1.18.0 contains multiple low-severity denial-of-service issues in CSS selector handling and linkification. Applications that evaluate attacker-controlled selector strings (via query(), matches(), or selector-based transforms), run selector matching over very large untrusted documents, construct DOM trees from untrusted structure, or enable linkification over attacker-controlled text may consume disproportionate CPU or memory. Triggers include oversized selectors, large selector lists, oversized compound selectors, long combinator chains, deeply nested functional pseudo-classes, repeated token/positional matching, cyclic DOM graphs causing non-terminating traversal, and punctuation-heavy or trailing-bracket linkification input. These are availability-only concerns and do not by themselves allow script execution, data disclosure, or sanitizer bypass. Default JustHTML(sanitize=True) usage is not expected to be exposed, since selectors are normally supplied by application code.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| EmilStenstrom | justhtml | < 1.18.0 | 1.18.0 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | justhtml | < 1.18.0 | 1.18.0 | GHSA-r8cj-3554-33mr |
References
- GitHub Security Advisory (GHSA-r8cj-3554-33mr) vendor-advisory
- VulnCheck Advisory: justhtml before 1.18.0 Denial of Service via CSS Selector third-party-advisory