Fix CVE(s): CVE-2025-8732, CVE-2026-0989, CVE-2026-0990, CVE-2026-0992
* SECURITY UPDATE: uncontrolled recursion in SGML catalog parsing - debian/patches/CVE-2025-8732.patch: thread a depth counter through xmlParseSGMLCatalog() and xmlExpandCatalog() in catalog.c and bail out past MAX_CATAL_DEPTH, and register expanded catalog filenames in the SGML hash table before recursing so a repeated CATALOG directive is only followed once, to prevent stack exhaustion and exponential re-parsing on self-referencing SGML CATALOG entries. Add test files result/catalogs/recursive, test/catalogs/recursive.script and test/catalogs/recursive.sgml - CVE-2025-8732 * SECURITY UPDATE: uncontrolled recursion in the RelaxNG parser via nested schema includes - debian/patches/CVE-2026-0989.patch: add an include depth limit to the RelaxNG parser context in relaxng.c, defaulting to 1000 and overridable via the RNG_INCLUDE_LIMIT environment variable or the new xmlRelaxParserSetIncLImit() entry point in include/libxml/relaxng.h, and make xmlRelaxNGIncludePush() failures propagate. Add coverage in runtest.c and test/relaxng/include/include-limit*.rng - debian/libxml2.symbols: add the new xmlRelaxParserSetIncLImit symbol - CVE-2026-0989 * SECURITY UPDATE: uncontrolled recursion in XML catalog URI resolution - debian/patches/CVE-2026-0990.patch: add a MAX_CATAL_DEPTH guard to xmlCatalogListXMLResolveURI() in catalog.c and stop clobbering the catalog entry used for depth bookkeeping while walking the entry list, to prevent stack exhaustion on a self-referencing delegateURI entry
- Products
- libxml2, libxml2-dev, libxml2-doc, libxml2-utils, python-libxml2, python3-libxml2
- Affected versions
- Not specified
- Fixed versions
- 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
- CVEs
- CVE-2025-8732, CVE-2026-0989, CVE-2026-0990, CVE-2026-0992
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 11:22 UTC · Revision 1
Source evidence
Fix CVE(s): CVE-2025-8732, CVE-2026-0989, CVE-2026-0990, CVE-2026-0992
core-osv · Original sourcePublished 18 Aug 2026, 14:27 UTC
* SECURITY UPDATE: uncontrolled recursion in SGML catalog parsing - debian/patches/CVE-2025-8732.patch: thread a depth counter through xmlParseSGMLCatalog() and xmlExpandCatalog() in catalog.c and bail out past MAX_CATAL_DEPTH, and register expanded catalog filenames in the SGML hash table before recursing so a repeated CATALOG directive is only followed once, to prevent stack exhaustion and exponential re-parsing on self-referencing SGML CATALOG entries. Add test files result/catalogs/recursive, test/catalogs/recursive.script and test/catalogs/recursive.sgml - CVE-2025-8732 * SECURITY UPDATE: uncontrolled recursion in the RelaxNG parser via nested schema includes - debian/patches/CVE-2026-0989.patch: add an include depth limit to the RelaxNG parser context in relaxng.c, defaulting to 1000 and overridable via the RNG_INCLUDE_LIMIT environment variable or the new xmlRelaxParserSetIncLImit() entry point in include/libxml/relaxng.h, and make xmlRelaxNGIncludePush() failures propagate. Add coverage in runtest.c and test/relaxng/include/include-limit*.rng - debian/libxml2.symbols: add the new xmlRelaxParserSetIncLImit symbol - CVE-2026-0989 * SECURITY UPDATE: uncontrolled recursion in XML catalog URI resolution - debian/patches/CVE-2026-0990.patch: add a MAX_CATAL_DEPTH guard to xmlCatalogListXMLResolveURI() in catalog.c and stop clobbering the catalog entry used for depth bookkeeping while walking the entry list, to prevent stack exhaustion on a self-referencing delegateURI entry
osv:CLSA-2026-1787063229
libxml2
Fixed versions: 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
libxml2-dev
Fixed versions: 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
libxml2-doc
Fixed versions: 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
libxml2-utils
Fixed versions: 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
python-libxml2
Fixed versions: 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
python3-libxml2
Fixed versions: 2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7
Complete source record
{
"id": "15381990f436e4c9059fa85f3c4c2158588507b06351291b12c1f651ab2f7e33",
"url": "https://osv.dev/vulnerability/CLSA-2026-1787063229",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Fix CVE(s): CVE-2025-8732, CVE-2026-0989, CVE-2026-0990, CVE-2026-0992",
"summary": "* SECURITY UPDATE: uncontrolled recursion in SGML catalog parsing - debian/patches/CVE-2025-8732.patch: thread a depth counter through xmlParseSGMLCatalog() and xmlExpandCatalog() in catalog.c and bail out past MAX_CATAL_DEPTH, and register expanded catalog filenames in the SGML hash table before recursing so a repeated CATALOG directive is only followed once, to prevent stack exhaustion and exponential re-parsing on self-referencing SGML CATALOG entries. Add test files result/catalogs/recursive, test/catalogs/recursive.script and test/catalogs/recursive.sgml - CVE-2025-8732 * SECURITY UPDATE: uncontrolled recursion in the RelaxNG parser via nested schema includes - debian/patches/CVE-2026-0989.patch: add an include depth limit to the RelaxNG parser context in relaxng.c, defaulting to 1000 and overridable via the RNG_INCLUDE_LIMIT environment variable or the new xmlRelaxParserSetIncLImit() entry point in include/libxml/relaxng.h, and make xmlRelaxNGIncludePush() failures propagate. Add coverage in runtest.c and test/relaxng/include/include-limit*.rng - debian/libxml2.symbols: add the new xmlRelaxParserSetIncLImit symbol - CVE-2026-0989 * SECURITY UPDATE: uncontrolled recursion in XML catalog URI resolution - debian/patches/CVE-2026-0990.patch: add a MAX_CATAL_DEPTH guard to xmlCatalogListXMLResolveURI() in catalog.c and stop clobbering the catalog entry used for depth bookkeeping while walking the entry list, to prevent stack exhaustion on a self-referencing delegateURI entry",
"evidence": "osv:CLSA-2026-1787063229",
"products": [
{
"name": {
"value": "libxml2",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libxml2-dev",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libxml2-doc",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libxml2-utils",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7",
"evidence": "/affected/3/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python-libxml2",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7",
"evidence": "/affected/4/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "python3-libxml2",
"evidence": "/affected/5/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7",
"evidence": "/affected/5/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1787063229",
"aliases": [
"CLSA-2026-1787063229"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7"
}
]
}
],
"package": {
"name": "libxml2",
"purl": "pkg:deb/tuxcare/libxml2?distro=debian-10",
"ecosystem": "TuxCare:Debian:10"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/debian10els/CLSA-2026-1787063229.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7"
}
]
}
],
"package": {
"name": "libxml2-dev",
"purl": "pkg:deb/tuxcare/libxml2-dev?distro=debian-10",
"ecosystem": "TuxCare:Debian:10"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/debian10els/CLSA-2026-1787063229.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7"
}
]
}
],
"package": {
"name": "libxml2-doc",
"purl": "pkg:deb/tuxcare/libxml2-doc?distro=debian-10",
"ecosystem": "TuxCare:Debian:10"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/debian10els/CLSA-2026-1787063229.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7"
}
]
}
],
"package": {
"name": "libxml2-utils",
"purl": "pkg:deb/tuxcare/libxml2-utils?distro=debian-10",
"ecosystem": "TuxCare:Debian:10"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/debian10els/CLSA-2026-1787063229.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7"
}
]
}
],
"package": {
"name": "python-libxml2",
"purl": "pkg:deb/tuxcare/python-libxml2?distro=debian-10",
"ecosystem": "TuxCare:Debian:10"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/debian10els/CLSA-2026-1787063229.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.10+dfsg-5ubuntu0.20.04.10+tuxcare.els7"
}
]
}
],
"package": {
"name": "python3-libxml2",
"purl": "pkg:deb/tuxcare/python3-libxml2?distro=debian-10",
"ecosystem": "TuxCare:Debian:10"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/debian10els/CLSA-2026-1787063229.json"
}
}
],
"modified": "2026-10-26T09:31:52.918506425Z",
"provider": "osv",
"upstream": [
"CVE-2025-8732",
"CVE-2026-0989",
"CVE-2026-0990",
"CVE-2026-0992"
],
"references": [
"https://errata.tuxcare.com/els_os/debian10els/CLSA-2026-1787063229.html",
"https://nvd.nist.gov/vuln/detail/CVE-2025-8732",
"https://nvd.nist.gov/vuln/detail/CVE-2026-0989",
"https://nvd.nist.gov/vuln/detail/CVE-2026-0990",
"https://nvd.nist.gov/vuln/detail/CVE-2026-0992"
]
},
"related_cves": [
{
"value": "CVE-2025-8732",
"evidence": "/upstream"
},
{
"value": "CVE-2026-0989",
"evidence": "/upstream"
},
{
"value": "CVE-2026-0990",
"evidence": "/upstream"
},
{
"value": "CVE-2026-0992",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 448809,
"published_at": "2026-08-18T14:27:22+00:00"
}