Conversation
c86496c to
9b5b574
Compare
| except TypeError: | ||
| pass | ||
| """ | ||
| assert_python_ok("-c", code) |
There was a problem hiding this comment.
(Note that isn’t the case that crashes on existing 3.12—I prioritized a straight backport from 3.13/3.14.)
…method descriptor in a specialized code path (pythonGH-132000) (cherry picked from commit ac3c439) Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: sobolevn <mail@sobolevn.me> Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Mark Shannon <mark@hotpy.org>
9b5b574 to
c4aaaf3
Compare
ZeroIntensity
left a comment
There was a problem hiding this comment.
Please contact the PSRT at security@python.org if you think this is a security issue with a real attack surface. They can decide whether this warrants a 3.12 backport.
Keep in mind that we don't typically consider segfaults to be security problems, unless they're exploitable in a practical manner (which is rare, because it usually involves being able to run arbitrary Python code as a prerequisite).
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
|
This isn't a security vulnerability per our security policy, since it requires arbitrary Python execution. As such, backporting is left to the RM's discretion. |
(cherry picked from commit ac3c439)
That issue was never labeled 3.12, I assume because the reported test cases happen not to segfault there. However, this variant case does segfault on 3.12 (tested on Linux x86-64 in all of
docker run python:3.12.14,docker run python:3.12.14-alpine,uv run -p 3.12.14 python, and a build from source), and is fixed by this patch:I reduced this from a test suite failure in the wild. The maintainer had previously observed this failure and marked the test as skipped in CI: https://github.com/abelcheung/types-lxml/blob/2026.02.16/tests/runtime/test_relaxng.py#L122.
Any uninitialized pointer dereference has potential security implications, so I think there’s a clear case for backporting this to 3.12.