CVE-2026-76875
CVE-2026-76875 · PyPy pyexpat ExternalEntityParserCreate Use-After-Free
This page contains facts from public vulnerability sources. Check the original advisory before updating.
PyPy before versions 3.11.16 and 3.12.14 contains a use-after-free vulnerability in the pyexpat module's ExternalEntityParserCreate function that allows attackers to corrupt memory by supplying a crafted XML document to applications that create external-entity sub-parsers without retaining a reference to the parent parser. The child parser retains a raw C back-pointer to the parent parser struct while PyPy's tracing garbage collector can free the parent's C struct, causing bundled libexpat to dereference the freed pointer on every parsed token, producing memory corruption.
CVSS 6.3 · Medium · EPSS 0.2% · Fix available
- Published
- Updated
Stack: system
Affected products and versions
pypy
- Versions
- ≥ 0, < 3.11.16: Affected (semver)
- ≥ 3.12.0, < 3.12.14: Affected (semver)
Update to 3.11.16; Update to 3.12.14
pypy3 Debian:12
- Versions
- 7.3.11+dfsg-2
- 7.3.11+dfsg-2+deb12u1
- 7.3.11+dfsg-2+deb12u2
- 7.3.11+dfsg-2+deb12u3
- 7.3.12+dfsg-1
- 7.3.12~rc1+dfsg-1
- 7.3.12~rc2+dfsg-1
- 7.3.13+dfsg-1
- 7.3.14+dfsg-1
- 7.3.15+dfsg-1
- 7.3.16+dfsg-1
- 7.3.16+dfsg-2
- 7.3.17+dfsg-1
- 7.3.17+dfsg-2
- 7.3.17+dfsg-3
- 7.3.18+dfsg-1
- 7.3.18+dfsg-2
- 7.3.19+dfsg-1
- 7.3.19+dfsg-2
- 7.3.20+dfsg-1
- 7.3.20+dfsg-2
- 7.3.20+dfsg-3
- 7.3.20+dfsg-4
- 7.3.21+dfsg-1
- 7.3.21+dfsg-2
- 7.3.21+dfsg-3
- 7.3.21+dfsg-4
- 7.3.22+dfsg-1
- 7.3.23+dfsg-1
- 7.3.23+dfsg-2
- 8.0.0+dfsg-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pypy3 Debian:13
- Versions
- 7.3.19+dfsg-2
- 7.3.20+dfsg-1
- 7.3.20+dfsg-2
- 7.3.20+dfsg-3
- 7.3.20+dfsg-4
- 7.3.21+dfsg-1
- 7.3.21+dfsg-2
- 7.3.21+dfsg-3
- 7.3.21+dfsg-4
- 7.3.22+dfsg-1
- 7.3.23+dfsg-1
- 7.3.23+dfsg-2
- 8.0.0+dfsg-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pypy3 Debian:14
- Versions
- 7.3.19+dfsg-2
- 7.3.20+dfsg-1
- 7.3.20+dfsg-2
- 7.3.20+dfsg-3
- 7.3.20+dfsg-4
- 7.3.21+dfsg-1
- 7.3.21+dfsg-2
- 7.3.21+dfsg-3
- 7.3.21+dfsg-4
- 7.3.22+dfsg-1
- 7.3.23+dfsg-1
- 7.3.23+dfsg-2
- Affected ranges
- ECOSYSTEM: < 8.0.0+dfsg-1
Update to 8.0.0+dfsg-1
pypy3 Ubuntu:20.04:LTS
- Versions
- 7.1.1+dfsg-1
- 7.2.0+dfsg-1
- 7.3.0+dfsg-1
- 7.3.0+dfsg-1ubuntu2
- 7.3.0+dfsg-1ubuntu3
- 7.3.1+dfsg-4
- 7.3.1+dfsg-4ubuntu0.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pypy3 Ubuntu:22.04:LTS
- Versions
- 7.3.5+dfsg-2
- 7.3.7+dfsg-1
- 7.3.7+dfsg-4
- 7.3.7+dfsg-5
- 7.3.8+dfsg-2
- 7.3.9+dfsg-1
- 7.3.9+dfsg-1ubuntu0.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pypy3 Ubuntu:24.04:LTS
- Versions
- 7.3.12+dfsg-1
- 7.3.13+dfsg-1
- 7.3.14+dfsg-1
- 7.3.15+dfsg-1
- 7.3.15+dfsg-1build2
- 7.3.15+dfsg-1build3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pypy3 Ubuntu:26.10
- Versions
- 7.3.20+dfsg-4
- 7.3.23+dfsg-1ubuntu1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pypy3 Ubuntu:26.04:LTS
- Versions
- 7.3.20+dfsg-3
- 7.3.20+dfsg-4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
Original sources
- https://doc.pypy.org/release-v8.0.0.html
- https://github.com/pypy/pypy/releases/tag/release-pypy3.12-v8.0.0
- https://github.com/pypy/pypy/releases/tag/release-pypy3.11-v8.0.0
- https://www.vulncheck.com/advisories/pypy-pyexpat-externalentityparsercreate-use-after-free
- https://nvd.nist.gov/vuln/detail/CVE-2026-76875