CVE-2023-34194
High · 7.5CVSS
7.5
EPSS
1.4%
Published
Dec 13, 2023
CISA due date
—
Cloudanix analysis
A remote attacker can send a specially made file that makes programs using an old XML library crash, stopping the service until it is restarted.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- No Fix Yet
- Effort
- Other
- Patch risk
- Low
What it actually does
Reachable assertion in StringEqual during TiXmlDeclaration::Parse in tinyxmlparser.cpp allows a crafted XML document containing a null byte after whitespace to trigger an immediate application exit.
Why it matters to the business
Services that parse untrusted XML with this library version can be forced offline by a single remote request, interrupting availability without data loss or code execution.
How an attack unfolds
An attacker crafts an XML document that places a null byte immediately after whitespace inside a declaration, sends it over the network to any endpoint that feeds input into TinyXML, and causes the parser to hit the assertion and terminate the process.
How to fix it
Replace TinyXML 2.6.2 with a maintained fork or alternative XML parser; if the library must remain, add input validation to reject or sanitize documents containing null bytes inside declarations before parsing.
How to confirm the fix worked
Replay the crafted null-byte XML document against updated instances and confirm the process no longer terminates; scan source and dependency manifests to verify TinyXML 2.6.2 is no longer present.
Typical attack path
- Identify an application endpoint or API that accepts XML input processed by TinyXML
- Prepare a minimal XML document containing a declaration followed by whitespace and a null byte
- Transmit the document to the target via HTTP, file upload, or any other XML ingestion path
- Trigger immediate process termination via the reachable assertion
How to detect it
Monitor application and system logs for abrupt process exits immediately after XML parsing calls; search web-server or application logs for POST or PUT requests containing XML declarations followed by unusual whitespace patterns.
What your security team should do
- Inventory all builds and containers that statically or dynamically link TinyXML and prioritize replacement within 30 days
- Add network-level XML schema or content-length limits as a temporary control while migration occurs
- Update dependency manifests and CI pipelines to block future inclusion of the vulnerable library
The record
StringEqual in TiXmlDeclaration::Parse in tinyxmlparser.cpp in TinyXML through 2.6.2 has a reachable assertion (and application exit) via a crafted XML document with a '\0' located after whitespace.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | tinyxml | 0 | 2.6.2-4+deb10u2 |
| Debian:11 | tinyxml | 0 | 2.6.2-4+deb11u2 |
| Debian:12 | tinyxml | 0 | 2.6.2-6+deb12u1 |
| Debian:13 | tinyxml | 0 | 2.6.2-6.1 |
| Mageia:9 | tinyxml | 0 | 2.6.2-14.1.mga9 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | tinyxml | 0 | 2.6.2-150000.3.6.1 |
| Ubuntu:20.04:LTS | tinyxml | 0 | 2.6.2-4+deb10u2build0.20.04.1 |
| Ubuntu:22.04:LTS | tinyxml | 0 | 2.6.2-6ubuntu0.22.04.1 |
| Ubuntu:23.10 | tinyxml | 0 | 2.6.2-6ubuntu0.23.10.1 |
| Ubuntu:24.04:LTS | tinyxml | 0 | 2.6.2-6.1 |
| Ubuntu:Pro:16.04:LTS | tinyxml | 0 | 2.6.2-3ubuntu0.1~esm2 |
| Ubuntu:Pro:18.04:LTS | tinyxml | 0 | 2.6.2-4ubuntu0.18.04.1~esm2 |
| openSUSE:Leap 15.4 | tinyxml | 0 | 2.6.2-150000.3.6.1 |
| openSUSE:Leap 15.5 | tinyxml | 0 | 2.6.2-150000.3.6.1 |
Related vulnerabilities
- CVE-2021-42260 TinyXML through 2.6.2 has an infinite loop in TiXmlParsingData::Stamp in… Also affects tinyxml
- CVE-2023-40458 Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Sierra Wireless… Also affects tinyxml
- CVE-2026-105754 vLLM is an inference and serving engine for large language models. CWE-617
- CVE-2026-105753 vLLM is an inference and serving engine for large language models. CWE-617
- CVE-2026-98151 In the Linux kernel, the following vulnerability has been resolved: bpf: Fix REG… CWE-617
- CVE-2026-84450 libheif is a HEIF and AVIF file format decoder and encoder. CWE-617
- CVE-2026-8674 Initializing the DNS stub resolver from an /etc/resolv.conf file, or a LOCALDOMAIN… CWE-617
- CVE-2026-80274 If a BIND resolver sends a query for a DNSSEC-signed authoritative zone, and the… CWE-617