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.
The weights_only=True unpickler failed to properly validate pickle opcodes and storage metadata, allowing:
SETITEM/SETITEMS opcodes applied to non-dictionary typesAn 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.
Ji'an Zhou