Libxml2: unbounded relaxng include recursion leading to stack overflow
A flaw was identified in the RelaxNG parser of libxml2 related to how external schema inclusions are handled. The parser does not enforce a limit on inclusion depth when resolving nested directives. Specially crafted or overly complex schemas can cause excessive recursion during parsing. This may lead to stack exhaustion and application crashes, creating a denial-of-service risk.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-0989
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 10:12 UTC · Revision 1
Source evidence
Libxml2: unbounded relaxng include recursion leading to stack overflow
core-osv · Original sourcePublished 15 Jan 2026, 14:20 UTC
A flaw was identified in the RelaxNG parser of libxml2 related to how external schema inclusions are handled. The parser does not enforce a limit on inclusion depth when resolving nested directives. Specially crafted or overly complex schemas can cause excessive recursion during parsing. This may lead to stack exhaustion and application crashes, creating a denial-of-service risk.
osv:CVE-2026-0989
Complete source record
{
"id": "eb67d5720a4d60e4b0e9119dfdca5478828b741cd5c86a77f08e7a94b06e0e5e",
"url": "https://osv.dev/vulnerability/CVE-2026-0989",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Libxml2: unbounded relaxng include recursion leading to stack overflow",
"summary": "A flaw was identified in the RelaxNG parser of libxml2 related to how external schema inclusions are handled. The parser does not enforce a limit on inclusion depth when resolving nested directives. Specially crafted or overly complex schemas can cause excessive recursion during parsing. This may lead to stack exhaustion and application crashes, creating a denial-of-service risk.",
"evidence": "osv:CVE-2026-0989",
"products": [],
"severity": "low",
"structured": {
"id": "CVE-2026-0989",
"aliases": [
"CVE-2026-0989"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/gnome/libxml2",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "3d840e17858de03a09fba8b202e3a89267d5795a"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:xmlsoft:libxml2:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "2.15.2"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v2.15.1",
"v2.15.0",
"v2.14.0",
"v2.13.0",
"v2.12.0",
"v2.11.0",
"v2.10.0",
"v2.9.13",
"v2.9.12",
"v2.9.11",
"CVE-2021-3541",
"v2.9.10",
"v2.9.10-rc1",
"v2.9.9",
"v2.9.9-rc2",
"v2.9.9-rc1",
"v2.9.8",
"v2.9.8-rc1",
"v2.9.7",
"v2.9.7-rc1",
"v2.9.6",
"v2.9.6-rc1",
"v2.9.5",
"v2.9.5-rc2",
"v2.9.5-rc1",
"v2.9.4",
"CVE-2016-3627",
"CVE-2016-1833",
"CVE-2016-1835",
"CVE-2016-1837",
"CVE-2016-1836",
"CVE-2016-1839",
"CVE-2016-1838",
"CVE-2016-1840",
"CVE-2016-4449",
"CVE-2016-4483",
"CVE-2016-1834",
"CVE-2016-3705",
"v2.9.4-rc2",
"v2.9.4-rc1",
"CVE-2016-1762",
"v2.9.3",
"CVE-2015-8242",
"CVE-2015-7500",
"CVE-2015-7499-2",
"CVE-2015-7499-1",
"CVE-2015-5312",
"CVE-2015-7497",
"CVE-2015-7498",
"CVE-2015-8035",
"CVE-2015-7942-2",
"CVE-2015-7942",
"CVE-2015-8317",
"CVE-2015-1819",
"CVE-2015-7941_2",
"CVE-2015-7941_1",
"v2.9.2",
"CVE-2014-3660",
"v2.9.2-rc2",
"v2.9.2-rc1",
"CVE-2014-0191",
"v2.9.1",
"CVE-2013-2877",
"v2.9.0",
"v2.9.0-rc2",
"v2.8.0",
"v2.8.0-rc2",
"v2.8.0-rc1",
"v2.7.8",
"v2.7.7",
"v2.7.6",
"v2.7.5",
"v2.7.4",
"LIBXML2.7.3",
"LIBXML2.7.2",
"LIBXML2.7.1",
"LIBXML2.7.0",
"LIBXML2.6.32",
"LIBXML2_2_6_28",
"LIBXML2_2_6_27",
"LIBXML2_2_6_26",
"LIBXML2_2_6_24",
"LIBXML2_2_6_23",
"LIBXML2_2_6_22",
"LIBXML2_2_6_21",
"LIBXML2_2_6_20",
"LIBXML2_2_6_19",
"LIBXML2_2_6_18",
"LIBXML2_2_6_16",
"LIBXML2_2_6_15",
"LIBXML2_2_6_14",
"LIBXML2_2_6_13",
"LIBXML2_2_6_12",
"LIBXML2_2_6_11",
"LIBXML_2_6_10",
"LIBXML2_2_6_9",
"LIBXML2_2_6_8",
"LIBXML2_2_6_7",
"LIBXML2_2_6_6",
"LIBXML2_2_6_5",
"LIBXML2_2_6_4",
"LIBXML2_2_6_3",
"LIBXML2_2_6_2",
"LIBXML2_2_6_1",
"LIBXML2_6_0",
"LIBXML2_2_5_x",
"LIBXML2_2_5_10",
"LIBXML2_2_5_9",
"LIBXML2_2_5_8",
"LIBXML2_2_5_7",
"LIBXML_2_5_6",
"LIBXML_2_5_5",
"LIBXML_2_5_4",
"LIBXML_2_5_3",
"LIBXML_2_5_2",
"LIBXML_2_5_1",
"LIBXML2_2_5_0",
"LIBXML_2_4_30",
"LIBXML_2_4_29",
"LIBXML_2_4_27",
"LIBXML_2_4_26",
"LIBXML_2_4_25",
"LIBXML_2_4_24",
"LIBXML_2_4_23",
"LIBXML_2_4_22",
"LIBXML2_2_4_21",
"LIBXML_2_4_20",
"LIBXML_2_4_18",
"LIBXML_2_4_13",
"LIBXML_2_4_16",
"LIBXML_2_4_14",
"LIBXML_2_4_12",
"LIBXML_2_4_11",
"LIBXML_2_4_7",
"LIBXML_2_4_6",
"LIBXML_2_4_4",
"LIBXML_2_4_3",
"LIBXML_2_4_2",
"LIBXML_2_4_0",
"LIBXML_2_3_14",
"LIBXML_2_3_13",
"LIBXML_2_3_12",
"LIBXML_2_3_11",
"LIBXML_2_3_10",
"LIBXML_2_3_9",
"LIBXML_2_3_8",
"help",
"LIBXML_2_3_7",
"LIBXML_2_3_6",
"LIBXML_2_3_5",
"LIBXML_2_3_4",
"LIBXML_2_3_3",
"LIBXML_2_3_2",
"PRE_MUCKUP3",
"PRE_MUCKUP2",
"PRE_MUCKUP",
"LIBXML_2_3_0",
"LIBXML_2_2_8",
"LIBXML_2_2_7",
"LIBXML_2_2_6",
"LIBXML_2_2_4",
"GNOME_PRINT_0_24",
"LIBXML_2_2_3",
"LIBXML_2_2_1",
"LIBXML_2_1_1",
"LIBXML_2_1_0",
"LIB_XML_1_X",
"EAZEL-NAUTILUS-MS-AUG07",
"LIBXML_2_0_0",
"LIBXML_TEST_2_0_0",
"LIBXML_1_8_6",
"LIBXML_1_8_5",
"LIB_XML_1_8_3",
"LIB_XML_1_7_3",
"LIB_XML_1_7_1",
"LIB_XML_1_7_0",
"LIB_XML_1_6_2",
"LIB_XML_1_6_1",
"LIBXML_1_5_0",
"LIB_XML_1_4",
"LIB_XML_1_3",
"LIB_XML_1_1",
"FOR_GNOME_0_99_1",
"LIBXML_0_99",
"GNUMERIC_FIRST_PUBLIC_RELEASE",
"GNOME_0_30"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-0989.json"
}
},
{
"ranges": [
{
"repo": "https://gitlab.gnome.org/gnome/libxml2",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "3d840e17858de03a09fba8b202e3a89267d5795a"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:xmlsoft:libxml2:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "2.15.2"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v2.15.1",
"v2.15.0",
"v2.14.0",
"v2.13.0",
"v2.12.0",
"v2.11.0",
"v2.10.0",
"v2.9.13",
"v2.9.12",
"v2.9.11",
"CVE-2021-3541",
"v2.9.10",
"v2.9.10-rc1",
"v2.9.9",
"v2.9.9-rc2",
"v2.9.9-rc1",
"v2.9.8",
"v2.9.8-rc1",
"v2.9.7",
"v2.9.7-rc1",
"v2.9.6",
"v2.9.6-rc1",
"v2.9.5",
"v2.9.5-rc2",
"v2.9.5-rc1",
"v2.9.4",
"CVE-2016-3627",
"CVE-2016-1833",
"CVE-2016-1835",
"CVE-2016-1837",
"CVE-2016-1836",
"CVE-2016-1839",
"CVE-2016-1838",
"CVE-2016-1840",
"CVE-2016-4449",
"CVE-2016-4483",
"CVE-2016-1834",
"CVE-2016-3705",
"v2.9.4-rc2",
"v2.9.4-rc1",
"CVE-2016-1762",
"v2.9.3",
"CVE-2015-8242",
"CVE-2015-7500",
"CVE-2015-7499-2",
"CVE-2015-7499-1",
"CVE-2015-5312",
"CVE-2015-7497",
"CVE-2015-7498",
"CVE-2015-8035",
"CVE-2015-7942-2",
"CVE-2015-7942",
"CVE-2015-8317",
"CVE-2015-1819",
"CVE-2015-7941_2",
"CVE-2015-7941_1",
"v2.9.2",
"CVE-2014-3660",
"v2.9.2-rc2",
"v2.9.2-rc1",
"CVE-2014-0191",
"v2.9.1",
"CVE-2013-2877",
"v2.9.0",
"v2.9.0-rc2",
"v2.8.0",
"v2.8.0-rc2",
"v2.8.0-rc1",
"v2.7.8",
"v2.7.7",
"v2.7.6",
"v2.7.5",
"v2.7.4",
"LIBXML2.7.3",
"LIBXML2.7.2",
"LIBXML2.7.1",
"LIBXML2.7.0",
"LIBXML2.6.32",
"LIBXML2_2_6_28",
"LIBXML2_2_6_27",
"LIBXML2_2_6_26",
"LIBXML2_2_6_24",
"LIBXML2_2_6_23",
"LIBXML2_2_6_22",
"LIBXML2_2_6_21",
"LIBXML2_2_6_20",
"LIBXML2_2_6_19",
"LIBXML2_2_6_18",
"LIBXML2_2_6_16",
"LIBXML2_2_6_15",
"LIBXML2_2_6_14",
"LIBXML2_2_6_13",
"LIBXML2_2_6_12",
"LIBXML2_2_6_11",
"LIBXML_2_6_10",
"LIBXML2_2_6_9",
"LIBXML2_2_6_8",
"LIBXML2_2_6_7",
"LIBXML2_2_6_6",
"LIBXML2_2_6_5",
"LIBXML2_2_6_4",
"LIBXML2_2_6_3",
"LIBXML2_2_6_2",
"LIBXML2_2_6_1",
"LIBXML2_6_0",
"LIBXML2_2_5_x",
"LIBXML2_2_5_10",
"LIBXML2_2_5_9",
"LIBXML2_2_5_8",
"LIBXML2_2_5_7",
"LIBXML_2_5_6",
"LIBXML_2_5_5",
"LIBXML_2_5_4",
"LIBXML_2_5_3",
"LIBXML_2_5_2",
"LIBXML_2_5_1",
"LIBXML2_2_5_0",
"LIBXML_2_4_30",
"LIBXML_2_4_29",
"LIBXML_2_4_27",
"LIBXML_2_4_26",
"LIBXML_2_4_25",
"LIBXML_2_4_24",
"LIBXML_2_4_23",
"LIBXML_2_4_22",
"LIBXML2_2_4_21",
"LIBXML_2_4_20",
"LIBXML_2_4_18",
"LIBXML_2_4_13",
"LIBXML_2_4_16",
"LIBXML_2_4_14",
"LIBXML_2_4_12",
"LIBXML_2_4_11",
"LIBXML_2_4_7",
"LIBXML_2_4_6",
"LIBXML_2_4_4",
"LIBXML_2_4_3",
"LIBXML_2_4_2",
"LIBXML_2_4_0",
"LIBXML_2_3_14",
"LIBXML_2_3_13",
"LIBXML_2_3_12",
"LIBXML_2_3_11",
"LIBXML_2_3_10",
"LIBXML_2_3_9",
"LIBXML_2_3_8",
"help",
"LIBXML_2_3_7",
"LIBXML_2_3_6",
"LIBXML_2_3_5",
"LIBXML_2_3_4",
"LIBXML_2_3_3",
"LIBXML_2_3_2",
"PRE_MUCKUP3",
"PRE_MUCKUP2",
"PRE_MUCKUP",
"LIBXML_2_3_0",
"LIBXML_2_2_8",
"LIBXML_2_2_7",
"LIBXML_2_2_6",
"LIBXML_2_2_4",
"GNOME_PRINT_0_24",
"LIBXML_2_2_3",
"LIBXML_2_2_1",
"LIBXML_2_1_1",
"LIBXML_2_1_0",
"LIB_XML_1_X",
"EAZEL-NAUTILUS-MS-AUG07",
"LIBXML_2_0_0",
"LIBXML_TEST_2_0_0",
"LIBXML_1_8_6",
"LIBXML_1_8_5",
"LIB_XML_1_8_3",
"LIB_XML_1_7_3",
"LIB_XML_1_7_1",
"LIB_XML_1_7_0",
"LIB_XML_1_6_2",
"LIB_XML_1_6_1",
"LIBXML_1_5_0",
"LIB_XML_1_4",
"LIB_XML_1_3",
"LIB_XML_1_1",
"FOR_GNOME_0_99_1",
"LIBXML_0_99",
"GNUMERIC_FIRST_PUBLIC_RELEASE",
"GNOME_0_30"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-0989.json"
}
}
],
"modified": "2026-10-28T02:30:27.651400343Z",
"provider": "osv",
"references": [
"https://access.redhat.com/downloads/content/package-browser/",
"https://access.redhat.com/jbossnetwork/restricted/listSoftware.html",
"https://catalog.redhat.com/software/containers/",
"https://access.redhat.com/errata/RHSA-2026:7519",
"https://access.redhat.com/security/cve/CVE-2026-0989",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/0xxx/CVE-2026-0989.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-0989",
"https://bugzilla.redhat.com/show_bug.cgi?id=2429933",
"https://gitlab.gnome.org/GNOME/libxml2/-/issues/998"
],
"provider_metadata": {
"cwe_ids": [
"CWE-674"
],
"cna_assigner": "redhat",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"fixed": "2.15.2-0.3.hum1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "InverseAffectedRanges"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/0xxx/CVE-2026-0989.json"
}
},
"related_cves": [
{
"value": "CVE-2026-0989",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 494419,
"published_at": "2026-01-15T14:20:23.274+00:00"
}