gh-145986: Avoid unbound C recursion in conv_content_model in pyexpat.c (CVE 2026-4224)#145987
gh-145986: Avoid unbound C recursion in conv_content_model in pyexpat.c (CVE 2026-4224)#145987picnixz merged 7 commits intopython:mainfrom
conv_content_model in pyexpat.c (CVE 2026-4224)#145987Conversation
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
conv_content_model in pyexpat.cconv_content_model in pyexpat.c (CVE 2026-4224)
|
Thanks @StanFromIreland for the PR, and @picnixz for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10, 3.11, 3.12, 3.13, 3.14. |
… `pyexpat.c` (CVE 2026-4224) (pythonGH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
… `pyexpat.c` (CVE 2026-4224) (pythonGH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
|
GH-145995 is a backport of this pull request to the 3.14 branch. |
|
Sorry, @StanFromIreland and @picnixz, I could not cleanly backport this to |
|
GH-145996 is a backport of this pull request to the 3.13 branch. |
|
Sorry, @StanFromIreland and @picnixz, I could not cleanly backport this to |
|
Sorry, @StanFromIreland and @picnixz, I could not cleanly backport this to |
…del` in `pyexpat.c` (CVE 2026-4224) (pythonGH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
…del` in `pyexpat.c` (CVE 2026-4224) (pythonGH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
|
GH-145999 is a backport of this pull request to the 3.12 branch. |
…del` in `pyexpat.c` (CVE 2026-4224) (pythonGH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) (cherry picked from commit e5caf45) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
|
GH-146000 is a backport of this pull request to the 3.11 branch. |
…del` in `pyexpat.c` (CVE 2026-4224) (pythonGH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) (cherry picked from commit e5caf45) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
|
GH-146002 is a backport of this pull request to the 3.10 branch. |
…n `pyexpat.c` (CVE 2026-4224) (GH-145987) (#145995) gh-145986: Avoid unbound C recursion in `conv_content_model` in `pyexpat.c` (CVE 2026-4224) (GH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
…n `pyexpat.c` (CVE 2026-4224) (GH-145987) (#145996) * gh-145986: Avoid unbound C recursion in `conv_content_model` in `pyexpat.c` (CVE 2026-4224) (GH-145987) Fix C stack overflow (CVE-2026-4224) when an Expat parser with a registered `ElementDeclHandler` parses inline DTD containing deeply nested content model. --------- (cherry picked from commit eb0e8be) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> * Remvoe `skip_if_unlimited_stack_size` decorator * Remove more decorators not on this branch --------- Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
pyexpat.c: Unbounded C recursion inconv_content_modelcauses crash (CVE 2026-4224) #145986