CVE-2025-2000: Qiskit allows arbitrary code execution decoding QPY format versions < 13
Impact A maliciously crafted QPY file can potentially execute arbitrary-code embedded in the payload without privilege escalation when deserializing QPY formats < 13. A python process calling Qiskit's qiskit.qpy.load() function could potentially execute any arbitrary Python code embedded in the correct place in the binary file as part of a specially constructed payload.
Published Mar 14, 2025 · Updated May 2, 2025
Affected packages
qiskit-terra
- Ecosystem
- PyPI
- Affected
- >= 0.18.0, <= 0.46.3
- Fixed in
- No patched version yet
- Check
pip show qiskit-terra
qiskit
- Ecosystem
- PyPI
- Affected
- <= 1.4.1
- Fixed in
- 1.4.2
- Check
pip show qiskit
qiskit
- Ecosystem
- PyPI
- Affected
- = 2.0.0rc1
- Fixed in
- 2.0.0rc2
- Check
pip show qiskit
Advisory details
From the GitHub Advisory Database (CC BY 4.0).
Impact
A maliciously crafted QPY file can potentially execute arbitrary-code embedded in the payload without privilege escalation when deserializing QPY formats < 13. A python process calling Qiskit's qiskit.qpy.load() function could potentially execute any arbitrary Python code embedded in the correct place in the binary file as part of a specially constructed payload.
Patches
Fixed in Qiskit 1.4.2 and in Qiskit 2.0.0rc2
Credited to jakelishman, mtreinish.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology
