QPY payload can potentially execute arbitrary-code embedded in the payload without privilege escalation when deserialising QPY format versions < 13.
qiskit.qpy.load() function could potentially execute any arbitrary Python code embedded in the correct place in the binary file as part of specially constructed payload| Attack Vector | Mechanism | Impact |
|---|---|---|
| CVE-2025-2000 Arbitrary Code Execution |
Exploits insecure deserialization in qiskit.qpy.load() for QPY formats < v13. |
CVSS:9.8 Allows full remote code execution without privilege escalation. |
| CVE-2025-1403 Denial of Service |
Triggers a segmentation fault (segfault), causing the application to crash instantly | Crashes quantum applications using malformed mathematical data |
| CVE-2025-4870 Denial of Service |
Triggers segfaults via malformed symengine serialization, to invoke an uncontrolled recursion for a specific input | Causes the software to loop infinitely until it exhausts memory and crashes |
| CVE-2024-29032 Runtime Deserialization |
RuntimeDecoder insecurely instantiates objects from crafted JSON inputs. |
Enables remote code execution via subprocess instantiation. |
| OpenQASM Parser Overflow | Recursively deep expressions in OpenQASM 2 parsers exceed stack limits. | Causes stack overflow and process termination (segfault). |
| Supply Chain Propagation | Vulnerable code in Qiskit Aer propagates to dependent simulators (eg XACC). | Compromises downstream national lab infrastructure and simulators. |