{"schema_version":"1.9.0","id":"CVE-2026-4224","published":"2026-03-16T17:52:26.639Z","modified":"2026-08-15T09:53:22.298277Z","aliases":["BIT-libpython-2026-4224","BIT-python-2026-4224","BIT-python-min-2026-4224","PSF-2026-12"],"related":["ALSA-2026:10950","ALSA-2026:19019","ALSA-2026:19064","ALSA-2026:19176","ALSA-2026:19177","CGA-pc6g-f7g9-qmgw","SUSE-SU-2026:1206-1","SUSE-SU-2026:1292-1","SUSE-SU-2026:1296-1","SUSE-SU-2026:1345-1","SUSE-SU-2026:1349-1","SUSE-SU-2026:1354-1","SUSE-SU-2026:1376-1","SUSE-SU-2026:1385-1","SUSE-SU-2026:1417-1","SUSE-SU-2026:1530-1","SUSE-SU-2026:1715-1","SUSE-SU-2026:21104-1","SUSE-SU-2026:21178-1","SUSE-SU-2026:21254-1","openSUSE-SU-2026:10469-1","openSUSE-SU-2026:10477-1","openSUSE-SU-2026:10478-1","openSUSE-SU-2026:10479-1","openSUSE-SU-2026:10480-1","openSUSE-SU-2026:10481-1","openSUSE-SU-2026:20517-1"],"summary":"Stack overflow parsing XML with deeply nested DTD content models","details":"When an Expat parser with a registered ElementDeclHandler parses an inline\ndocument type definition containing a deeply nested content model a C stack\noverflow occurs.","affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/python/cpython","events":[{"introduced":"0"},{"fixed":"b494f5935c92951e75597bfe1c8b1f3112fec270"},{"introduced":"60403a5409ff2c3f3b07dd2ca91a7a3e096839c7"},{"fixed":"01104ce1beb3135c2e0c01ec835b994c1f55a1c0"},{"introduced":"ebf955df7a89ed0c7968f79faec1de49f61ed7cb"},{"fixed":"23116f998f6789d8c2fbe5ed5b8146854c8c2a4f"},{"fixed":"196edfb06a7458377d4d0f4b3cd41724c1f3bd4a"},{"fixed":"24ce88b285f56ee11626cf5e472af3cd8cc7c621"},{"fixed":"642865ddf4b232da1f3b1f7abcfa3254c4bfe785"},{"fixed":"af856a7177326ac25d9f66cc6dd28b554d914fee"},{"fixed":"e0a8a6da90597a924b300debe045cdb4628ee1f3"},{"fixed":"eb0e8be3a7e11b87d198a2c3af1ed0eccf532768"}],"database_specific":{"cpe":"cpe:2.3:a:python:python:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"fixed":"3.10.0"},{"introduced":"3.13.0"},{"fixed":"3.13.13"},{"introduced":"3.14.0"},{"fixed":"3.14.4"}],"source":["CPE_RANGE","REFERENCES"]}}],"versions":["v3.15.0a7","v3.12.13","v3.10.20","v3.11.15","v3.15.0a6","v3.13.12","v3.14.3","v3.15.0a5","v3.15.0a4","v3.15.0a3","v3.14.2","v3.13.11","v3.13.10","v3.14.1","v3.15.0a2","v3.15.0a1","v3.13.8","v3.11.14","v3.10.19","v3.12.12","v3.14.0","v3.13.7","v3.13.6","v3.13.5","v3.13.4","v3.11.13","v3.10.18","v3.12.11","v3.14.0b1","v3.13.3","v3.11.12","v3.12.10","v3.14.0a7","v3.10.17","v3.14.0a6","v3.14.0a5","v3.13.2","v3.12.9","v3.14.0a4","v3.14.0a3","v3.13.1","v3.12.8","v3.10.16","v3.11.11","v3.14.0a2","v3.14.0a1","v3.13.0","v3.12.7","v3.11.10","v3.10.15","v3.12.6","v3.12.5","v3.12.4","v3.13.0b1","v3.13.0a6","v3.12.3","v3.11.9","v3.10.14","v3.13.0a5","v3.13.0a4","v3.12.2","v3.11.8","v3.13.0a3","v3.12.1","v3.11.7","v3.13.0a2","v3.13.0a1","v3.11.6","v3.12.0","v3.12.0rc3","v3.12.0rc2","v3.11.5","v3.10.13","v3.12.0rc1","v3.12.0b4","v3.12.0b3","v3.11.4","v3.10.12","v3.12.0b2","v3.12.0b1","v3.10.11","v3.11.3","v3.12.0a7","v3.12.0a6","v3.10.10","v3.11.2","v3.12.0a5","v3.12.0a4","v3.12.0a3","v3.10.9","v3.11.1","v3.12.0a2","v3.12.0a1","v3.11.0rc2","v3.10.8","v3.10.7","v3.11.0rc1","v3.10.6","v3.11.0b5","v3.11.0b4","v3.10.5","v3.11.0b3","v3.11.0b2","v3.11.0b1","v3.11.0a7","v3.10.4","v3.10.3","v3.11.0a6","v3.11.0a5","v3.11.0a4","v3.10.2","v3.11.0a3","v3.10.1","v3.10.0rc2","v3.10.0rc1","v3.10.0b4","v3.10.0b3","v3.10.0b2","v3.10.0b1","v3.10.0a7","v3.10.0a1","v3.9.0a2","v3.7.0a2","v3.6.0b1","v3.6.0a3","v3.5.0b1","v3.5.0a4","v3.5.0a3","v3.5.0a2","v3.5.0a1","v3.4.0b3","v3.4.0b2","v3.4.0b1","v3.4.0a4","v3.4.0a3","v3.4.0a2","v3.4.0a1","v3.3.0rc3","v3.3.0rc2","v3.3.0rc1","v3.3.0b2","v3.3.0b1","v3.3.0a4","v3.3.0a3","v3.3.0a2","v3.2rc3","v3.2rc2","v3.2rc1","v3.2b2","v3.2b1","v3.2a4","v3.2a3","v3.2a2","v3.2a1","v3.1","v3.1rc2","v3.1rc1","v3.1b1","v3.1a2","v3.1a1","v3.0rc3","v3.0rc2","v3.0rc1","v3.0b3","v3.0b2","v3.0b1","v3.0a5","v3.0a4","v3.0a3","v3.0a2","v3.0a1","v2.4","v2.4c1","v2.4b2","v2.4b1","v2.4a3","v2.4a2","v2.4a1","v2.3c2","v2.3c1","v2.2a3","v2.1","v2.1c2","v2.1c1","v2.1b2","v2.1b1","v2.1a2","v2.1a1","v2.0","v2.0c1","v2.0b2","v2.0b1","v1.6a2","v1.6a1","v1.5.2","v1.5.2c1","v1.5.2b2","v1.5.2b1","v1.5.2a2","v1.5.2a1","v1.5.1","v1.5","v1.5b2","v1.5b1","v1.5a4","v1.5a3","v1.5a2","v1.5a1","v1.4","v1.4b3","v1.4b2","v1.4b1","v1.3","v1.3b1","v1.2","v1.2b4","v1.2b3","v1.2b2","v1.2b1","v1.1.1","v1.1","v1.0.2","v1.0.1","v0.9.9","v0.9.8"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-4224.json","vanir_signatures":[{"deprecated":false,"digest":{"line_hashes":["188701065149302744903292699815939793812","225112604898349987932848100452221761889","315809415081504763774448517983428726485","234914540900971060388551978657761406688","334434387846354955252424964748103718253","92577595777153794298516478920240755603","220091315152752251870431644921983823692","64594070633644744458452436427253528782","317766121439223777877272278202999281929","207218985360249766238393458459053155997","332414183342212578807926701123345884195","109262523303062075784881971480718115622","185133554727397008437595184375700314015","241729027528270989764462123400629416761","87231708530024391086675116251100217789","304617511761474051284935710059506449414"],"threshold":0.9},"id":"CVE-2026-4224-1145783a","signature_type":"Line","signature_version":"v1","source":"https://github.com/python/cpython/commit/196edfb06a7458377d4d0f4b3cd41724c1f3bd4a","target":{"file":"Modules/pyexpat.c"}},{"deprecated":false,"digest":{"line_hashes":["334434387846354955252424964748103718253","92577595777153794298516478920240755603","220091315152752251870431644921983823692","64594070633644744458452436427253528782","317766121439223777877272278202999281929","207218985360249766238393458459053155997","332414183342212578807926701123345884195","109262523303062075784881971480718115622","185133554727397008437595184375700314015","241729027528270989764462123400629416761","87231708530024391086675116251100217789","304617511761474051284935710059506449414"],"threshold":0.9},"id":"CVE-2026-4224-27a34095","signature_type":"Line","signature_version":"v1","source":"https://github.com/python/cpython/commit/af856a7177326ac25d9f66cc6dd28b554d914fee","target":{"file":"Modules/pyexpat.c"}},{"deprecated":false,"digest":{"line_hashes":["188701065149302744903292699815939793812","104990101234447629474370288251779314633","45964732181733792050335254534549092314","175055763601073915128199888341767366186","334434387846354955252424964748103718253","92577595777153794298516478920240755603","220091315152752251870431644921983823692","64594070633644744458452436427253528782","317766121439223777877272278202999281929","207218985360249766238393458459053155997","332414183342212578807926701123345884195","109262523303062075784881971480718115622","185133554727397008437595184375700314015","241729027528270989764462123400629416761","87231708530024391086675116251100217789","304617511761474051284935710059506449414"],"threshold":0.9},"id":"CVE-2026-4224-2927dc4a","signature_type":"Line","signature_version":"v1","source":"https://github.com/python/cpython/commit/642865ddf4b232da1f3b1f7abcfa3254c4bfe785","target":{"file":"Modules/pyexpat.c"}},{"deprecated":false,"digest":{"line_hashes":["188701065149302744903292699815939793812","225112604898349987932848100452221761889","315809415081504763774448517983428726485","234914540900971060388551978657761406688","256181770944853825150391622812763691914","39371432675593491274749294336343520315","145357374662543992351282271062565055495","64594070633644744458452436427253528782","317766121439223777877272278202999281929","207218985360249766238393458459053155997","332414183342212578807926701123345884195","109262523303062075784881971480718115622","185133554727397008437595184375700314015","241729027528270989764462123400629416761","87231708530024391086675116251100217789","304617511761474051284935710059506449414"],"threshold":0.9},"id":"CVE-2026-4224-53a4bf80","signature_type":"Line","signature_version":"v1","source":"https://github.com/python/cpython/commit/eb0e8be3a7e11b87d198a2c3af1ed0eccf532768","target":{"file":"Modules/pyexpat.c"}},{"deprecated":false,"digest":{"line_hashes":["188701065149302744903292699815939793812","104990101234447629474370288251779314633","45964732181733792050335254534549092314","175055763601073915128199888341767366186","334434387846354955252424964748103718253","92577595777153794298516478920240755603","220091315152752251870431644921983823692","64594070633644744458452436427253528782","317766121439223777877272278202999281929","207218985360249766238393458459053155997","332414183342212578807926701123345884195","109262523303062075784881971480718115622","185133554727397008437595184375700314015","241729027528270989764462123400629416761","87231708530024391086675116251100217789","304617511761474051284935710059506449414"],"threshold":0.9},"id":"CVE-2026-4224-a755dd03","signature_type":"Line","signature_version":"v1","source":"https://github.com/python/cpython/commit/24ce88b285f56ee11626cf5e472af3cd8cc7c621","target":{"file":"Modules/pyexpat.c"}},{"deprecated":false,"digest":{"line_hashes":["188701065149302744903292699815939793812","225112604898349987932848100452221761889","315809415081504763774448517983428726485","234914540900971060388551978657761406688","256181770944853825150391622812763691914","39371432675593491274749294336343520315","145357374662543992351282271062565055495","64594070633644744458452436427253528782","317766121439223777877272278202999281929","207218985360249766238393458459053155997","332414183342212578807926701123345884195","109262523303062075784881971480718115622","185133554727397008437595184375700314015","241729027528270989764462123400629416761","87231708530024391086675116251100217789","304617511761474051284935710059506449414"],"threshold":0.9},"id":"CVE-2026-4224-a989f4f9","signature_type":"Line","signature_version":"v1","source":"https://github.com/python/cpython/commit/e0a8a6da90597a924b300debe045cdb4628ee1f3","target":{"file":"Modules/pyexpat.c"}}],"vanir_signatures_modified":"2026-08-15T09:53:22Z"}}],"references":[{"type":"WEB","url":"http://www.openwall.com/lists/oss-security/2026/03/16/4"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/4xxx/CVE-2026-4224.json"},{"type":"ADVISORY","url":"https://mail.python.org/archives/list/security-announce@python.org/thread/5M7CGUW3XBRY7II4DK43KF7NQQ3TPZ6R/"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-4224"},{"type":"REPORT","url":"https://github.com/python/cpython/issues/145986"},{"type":"FIX","url":"https://github.com/python/cpython/commit/196edfb06a7458377d4d0f4b3cd41724c1f3bd4a"},{"type":"FIX","url":"https://github.com/python/cpython/commit/24ce88b285f56ee11626cf5e472af3cd8cc7c621"},{"type":"FIX","url":"https://github.com/python/cpython/commit/642865ddf4b232da1f3b1f7abcfa3254c4bfe785"},{"type":"FIX","url":"https://github.com/python/cpython/commit/af856a7177326ac25d9f66cc6dd28b554d914fee"},{"type":"FIX","url":"https://github.com/python/cpython/commit/e0a8a6da90597a924b300debe045cdb4628ee1f3"},{"type":"FIX","url":"https://github.com/python/cpython/commit/eb0e8be3a7e11b87d198a2c3af1ed0eccf532768"},{"type":"FIX","url":"https://github.com/python/cpython/pull/145987"},{"type":"PACKAGE","url":"https://github.com/python/cpython"}],"database_specific":{"cna_assigner":"PSF","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/4xxx/CVE-2026-4224.json"},"severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}