Cloudanix VulnDB

CVE-2023-34194

High · 7.5

CVSS

7.5

EPSS

1.4%

Published

Dec 13, 2023

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Identify an application endpoint or API that accepts XML input processed by TinyXML
  2. Prepare a minimal XML document containing a declaration followed by whitespace and a null byte
  3. Transmit the document to the target via HTTP, file upload, or any other XML ingestion path
  4. 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