Reference material — not professional advice. Test in staging, back up first, verify against your specific version. Use your own judgment for your environment.
● Critical · CVSS 9.8

How to Fix CVE-2025-2000: CWE-502 Deserialization of Untrusted Data in Qiskit SDK

⚡ At a glance
SeverityCVSS 9.8, Critical
Actively exploited?No
AffectedIBM Qiskit SDK (<= 1.4.1)
Fixed inNewer than 1.4.1 (per vendor advisory)
Type (CWE)CWE-502: Deserialization of Untrusted Data

What is CVE-2025-2000?

A maliciously crafted QPY file can potential execute arbitrary-code embedded in the payload without privilege escalation when deserialising QPY formats < 13. A python process calling Qiskit 0.18.0 through 1.4.1's 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.

In short, a successful attacker gets privilege escalation on the affected system. No confirmed in-the-wild exploitation is listed in CISA KEV at the time of writing, but the CVSS rating still warrants prompt patching.

Am I affected?

Check whether you run IBM Qiskit SDK in your environment, then compare your installed version against the Affected row above.

Check the installed fix pack and APAR level via the product's About screen or via productInfo version where supported.

How to fix CVE-2025-2000

  1. Read the official vendor advisory linked at the bottom of this page and identify the exact patched build for your release train.
  2. Download the patched build of Qiskit SDK from the vendor's support portal. Use only signed images from the vendor.
  3. Back up configuration and, where supported, take a snapshot of the host or appliance before you start.
  4. Apply the update following the vendor's documented procedure. For clustered or high-availability deployments, patch the standby node first, fail over, then patch the previously active node.
  5. Restart the affected service or appliance if the upgrade procedure requires it.
  6. Re-run the version check from the previous section and confirm the build matches the fixed release.

Update the Python package


# The patched PyPI version is listed in the vendor advisory: https://www.ibm.com/support/pages/node/7185949
python -m pip install --upgrade "qiskit-sdk>=<patched-version>"

# For pinned requirements.txt
sed -i 's/^qiskit-sdk==.*/qiskit-sdk==<patched-version>/' requirements.txt
python -m pip install -r requirements.txt

# Verify
python -m pip show qiskit-sdk | grep Version

Verify the fix landed


# 1. Confirm the running version matches the fixed-in version from the advisory:
#    https://www.ibm.com/support/pages/node/7185949
#    Use the platform-specific version probe above.

# 2. Re-scan with your vulnerability scanner (Nessus, Qualys, Tenable, OpenVAS).
#    The scanner should no longer flag CVE-2025-2000 on the patched target.

# 3. Inspect recent service / kernel logs for crash loops or rollback events.
journalctl -u <service> --since "10 minutes ago"
dmesg --since "10 minutes ago"

If you can't patch immediately

No official vendor workaround is published for this CVE at the time of writing; patching is the primary remediation. If patching has to wait, restrict network access to the affected component to trusted administrative networks and monitor logs for indicators of compromise listed in the advisory.

How to verify the fix worked

Confirm the running build of Qiskit SDK matches the fixed version listed by the vendor. Re-run any vulnerability scanner you used previously and confirm the finding for CVE-2025-2000 has cleared. Where the vendor publishes a detection rule or IOCs, sweep your logs for evidence of pre-patch exploitation.

Why this CVE matters

CVSS 9.8 (Critical) reflects either remote, unauthenticated exploitability, full impact on confidentiality / integrity / availability, or both. Most internal SLAs map a Critical rating to a 7-to-15 day patch deadline regardless of in-the-wild reports. Public-facing instances should be patched on the shorter end of that window.

Monitoring and detection

After you apply the patch, treat the affected component as a known-good baseline and watch for regression. Concrete steps:

Defensive hardening beyond the patch

Patching closes this specific CVE. A few common-sense controls reduce the blast radius of the next one in the same component:

Frequently asked questions

Other vulnerabilities in the same area that are worth patching alongside this one:

Is CVE-2025-2000 being actively exploited?

Not at the time of writing. It is not listed in CISA's Known Exploited Vulnerabilities catalog. That can change, so monitor the advisory and KEV catalog.

How severe is CVE-2025-2000?

CVSS rates it 9.8 (Critical). Treat it accordingly in your prioritisation queue.

Do I have to take Qiskit SDK offline to apply the patch?

That depends on your deployment topology. For high-availability or clustered setups you can usually patch one node at a time with no full outage. Standalone installs typically need a short restart. Always follow the vendor's documented upgrade steps.

References


*Written by Sai Kiran Pandrala on 2026-05-25. Sourced from the official vendor advisory, the NVD record, and the CISA KEV listing. Always confirm against the vendor's advisory before applying changes in production.*