CVE-2026-0989

3.7 LOW

📋 TL;DR

A denial-of-service vulnerability exists in libxml2's RelaxNG parser where nested <include> directives can cause unlimited recursion, leading to stack exhaustion and application crashes. This affects any application using libxml2 to parse RelaxNG schemas with external inclusions. The impact is limited to availability disruption rather than data compromise.

💻 Affected Systems

Products:
  • libxml2
Versions: Versions prior to 2.13.0
Operating Systems: Linux, Unix-like systems, Windows (if libxml2 is installed)
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects applications using libxml2's RelaxNG schema validation with external schema inclusions enabled.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Application crashes repeatedly when processing malicious schemas, causing sustained denial of service for affected services.

🟠

Likely Case

Accidental or incidental schema complexity causes occasional application crashes during parsing operations.

🟢

If Mitigated

Minor service interruptions with quick recovery if proper monitoring and restart mechanisms are in place.

🌐 Internet-Facing: MEDIUM - Attackers could craft malicious schemas to crash services, but requires schema parsing capability.
🏢 Internal Only: LOW - Requires internal users to supply malicious schemas to affected applications.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires ability to supply RelaxNG schemas to vulnerable applications. No authentication bypass needed if schema input is accepted.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libxml2 2.13.0 and later

Vendor Advisory: https://access.redhat.com/security/cve/CVE-2026-0989

Restart Required: Yes

Instructions:

1. Update libxml2 to version 2.13.0 or later using your distribution's package manager. 2. Restart affected applications. 3. For Red Hat systems: 'yum update libxml2' or 'dnf update libxml2'.

🔧 Temporary Workarounds

Disable external schema inclusions

all

Configure applications to disable external schema inclusions in RelaxNG parsing.

Set XML_PARSE_NOENT=0 in application code when parsing schemas

Limit schema recursion depth

all

Implement application-level limits on schema inclusion depth.

Implement custom parser callbacks to track and limit inclusion depth

🧯 If You Can't Patch

  • Implement input validation to reject schemas with excessive nesting
  • Deploy monitoring for application crashes related to schema parsing

🔍 How to Verify

Check if Vulnerable:

Check libxml2 version: 'xml2-config --version' or 'rpm -q libxml2'

Check Version:

xml2-config --version

Verify Fix Applied:

Verify version is 2.13.0 or later: 'xml2-config --version | grep -q "^2\.1[3-9]\|^[3-9]\."'

📡 Detection & Monitoring

Log Indicators:

  • Application crashes during schema parsing
  • Stack overflow errors in application logs
  • Repeated process restarts

Network Indicators:

  • Unusual schema file uploads to affected services
  • HTTP 500 errors from schema validation endpoints

SIEM Query:

source="application.log" AND ("stack overflow" OR "segmentation fault") AND "libxml2"

🔗 References

📤 Share & Export