CVE-2026-31221 — pytorch-lightning
HIGHCVE-2026-31221 is a high-severity (CVSS 8.8) Deserialization of Untrusted Data vulnerability in pytorch-lightning. The records list no fixed version yet; check the vendor advisory below and apply the mitigations in the meantime.
PyTorch Lightning load_from_checkpoint has an insecure checkpoint deserialization
Exploitation Status
No confirmed exploitation observed yet
- A successful exploit gives an attacker total control of the affected component, not partial access.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2026-31221.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
pytorch-lightningReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
PyTorch-Lightning versions 2.6.0 and earlier contain an insecure deserialization vulnerability (CWE-502) in the checkpoint loading mechanism. The LightningModule.load_from_checkpoint() method, which is commonly used to load saved model states, internally calls torch.load() without setting the security-restrictive weights_only=True parameter. This default behavior allows the deserialization of arbitrary Python objects via the Pickle module. A remote attacker can exploit this by providing a maliciously crafted checkpoint file, leading to arbitrary code execution on the victim's system when the file is loaded.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | pytorch-lightning | all versions | No fix |
Affected Products
pytorch lightninglightningaiDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for pytorch-lightning, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Remediation status
The records we use list no patched version of pytorch-lightning for CVE-2026-31221. Check the maintainer's advisory, and where your build allows, override or pin the dependency away from the vulnerable range.
Mitigate without a patch
Do not deserialise data from untrusted sources: where the format allows it, restrict deserialisation to an explicit allowlist of expected types, and prefer a data-only format (JSON, Protobuf) over one that can reconstruct arbitrary objects until you can upgrade.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
This is an Important arbitrary code execution flaw in PyTorch-Lightning due to insecure deserialization in its checkpoint loading mechanism. Red Hat products utilizing PyTorch-Lightning, such as Red Hat Enterprise Linux AI and Red Hat AI Inference Server, are affected if they process untrusted checkpoint files. An…
To mitigate this issue, avoid loading PyTorch-Lightning checkpoint files from untrusted or unverified sources. Ensure that all checkpoint files originate from trusted environments to prevent the deserialization of malicious Python objects and subsequent arbitrary code execution.Source: Red Hat security advisory for CVE-2026-31221 (CC BY 4.0)
Frequently Asked Questions
Is CVE-2026-31221 in your dependencies?
Find it across PyPI, including transitive dependencies.