CVE-2023-34624
High · 7.5CVSS
7.5
EPSS
1.0%
Published
Jun 14, 2023
CISA due date
—
Cloudanix analysis
A problem in an HTML-cleaning tool lets attackers crash programs by feeding them specially built data that creates endless loops inside the software.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability permits denial of service through processing of specially crafted objects containing cyclic dependencies, potentially leading to infinite recursion or resource exhaustion in the HTML cleaner library.
Why it matters to the business
Applications using the vulnerable library may experience crashes or unresponsiveness when processing malicious input, leading to service outages; the issue has been public for over three years with public exploits available.
How an attack unfolds
An attacker crafts a malicious object containing cyclic references and supplies it to the htmlcleaner library's processing functions, triggering uncontrolled recursion that exhausts stack or CPU resources; public exploits facilitate this attack.
How to fix it
Upgrade htmlcleaner to a version that properly detects and rejects cyclic object graphs; if no patched release exists, wrap calls with cycle-detection logic or replace the library with a maintained alternative.
How to confirm the fix worked
Inventory all uses of htmlcleaner, confirm the deployed version, and test the library with known cyclic object payloads to verify crashes are prevented after remediation.
Typical attack path
- Locate an application or service that invokes htmlcleaner on untrusted input
- Construct an object graph containing cyclic references
- Submit the crafted object to the vulnerable parsing or cleaning routine
- Trigger infinite recursion leading to resource exhaustion or crash
How to detect it
Monitor application logs and performance metrics for sudden spikes in CPU or memory usage, or unexpected crashes, when htmlcleaner processes external input; correlate with request logs containing unusual object structures.
What your security team should do
- Prioritize inventorying htmlcleaner usage across all codebases due to the age of the disclosure and public exploit availability
- Implement defensive input validation around htmlcleaner calls to detect cycles before processing
- Evaluate migration to actively maintained HTML sanitization libraries
The record
An issue was discovered htmlcleaner thru = 2.28 allows attackers to cause a denial of service or other unspecified impacts via crafted object that uses cyclic dependencies.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | net.sourceforge.htmlcleaner:htmlcleaner | 0 | 2.29 |
| Debian:10 | libhtmlcleaner-java | 0 | 2.21-5+deb10u1 |
| Debian:11 | libhtmlcleaner-java | 0 | 2.24-1+deb11u1 |
| Debian:12 | libhtmlcleaner-java | 0 | 2.26-1+deb12u1 |
| Debian:13 | libhtmlcleaner-java | 0 | 2.29-1 |
| Ubuntu:20.04:LTS | libhtmlcleaner-java | 0 | No fix |
| Ubuntu:22.04:LTS | libhtmlcleaner-java | 0 | 2.24-1+deb11u1build0.22.04.1 |
| Ubuntu:24.04:LTS | libhtmlcleaner-java | 0 | 2.29+dfsg-1 |
| Ubuntu:24.10 | libhtmlcleaner-java | 0 | 2.29+dfsg-1 |
| Ubuntu:Pro:18.04:LTS | libhtmlcleaner-java | 0 | 2.21-2ubuntu0.1~esm1 |
| Ubuntu:Pro:20.04:LTS | libhtmlcleaner-java | 0 | 2.23-1ubuntu0.1~esm1 |
Related vulnerabilities
- CVE-2026-111497 A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli… CWE-787
- CVE-2026-112397 Pillow is a Python imaging library. CWE-787
- CVE-2026-112059 libLAS through 1.8.1 contains a heap out-of-bounds write vulnerability in the point… CWE-787
- CVE-2026-89088 A flaw was found in parted. CWE-787
- CVE-2026-89085 A flaw was found in parted. CWE-787
- CVE-2026-85746 MariaDB server is a community developed fork of MySQL server. CWE-787
- CVE-2026-107815 MariaDB server is a community developed fork of MySQL server. CWE-787
- CVE-2026-56851 The Nickname profile can panic with an out-of-bounds slice error when transforming… CWE-787