Описание
PyTorch Vulnerable to Remote Code Execution via Untrusted Checkpoint Files
Summary
A vulnerability in PyTorch's weights_only unpickler allows an attacker to craft a malicious checkpoint file (.pth) that, when loaded with torch.load(..., weights_only=True), can corrupt memory and potentially lead to arbitrary code execution.
Vulnerability Details
The weights_only=True unpickler failed to properly validate pickle opcodes and storage metadata, allowing:
- Heap memory corruption via
SETITEM/SETITEMSopcodes applied to non-dictionary types - Storage size mismatch between declared element count and actual data in the archive
Impact
An attacker who can convince a user to load a malicious checkpoint file may achieve arbitrary code execution in the context of the victim's process.
Credit
Ji'an Zhou
Ссылки
- https://github.com/pytorch/pytorch/security/advisories/GHSA-63cw-57p8-fm3p
- https://nvd.nist.gov/vuln/detail/CVE-2026-24747
- https://github.com/pytorch/pytorch/issues/163105
- https://github.com/pytorch/pytorch/163122/commit/954dc5183ee9205cbe79876ad05dd2d9ae752139
- https://github.com/pytorch/pytorch/releases/tag/v2.10.0
Пакеты
pytorch
< 2.10.0
2.10.0
Связанные уязвимости
PyTorch is a Python package that provides tensor computation. Prior to version 2.10.0, a vulnerability in PyTorch's `weights_only` unpickler allows an attacker to craft a malicious checkpoint file (`.pth`) that, when loaded with `torch.load(..., weights_only=True)`, can corrupt memory and potentially lead to arbitrary code execution. Version 2.10.0 fixes the issue.
PyTorch is a Python package that provides tensor computation. Prior to version 2.10.0, a vulnerability in PyTorch's `weights_only` unpickler allows an attacker to craft a malicious checkpoint file (`.pth`) that, when loaded with `torch.load(..., weights_only=True)`, can corrupt memory and potentially lead to arbitrary code execution. Version 2.10.0 fixes the issue.
PyTorch is a Python package that provides tensor computation. Prior to ...
Уязвимость параметра weights_only функции torch.load() фреймворка машинного обучения PyTorch, позволяющая нарушителю выполнить произвольный код