PyTorch: `torch.load` with `weights_only=True` leads to remote code execution
Description
Published to the GitHub Advisory Database
Apr 18, 2025
Reviewed
Apr 18, 2025
Published by the National Vulnerability Database
Apr 18, 2025
Last updated
May 28, 2025
Description
I found a Remote Command Execution (RCE) vulnerability in PyTorch. When loading model using torch.load with weights_only=True, it can still achieve RCE.
Background knowledge
https://github.com/pytorch/pytorch/security

As you can see, the PyTorch official documentation considers using
torch.load()
withweights_only=True
to be safe.Since everyone knows that weights_only=False is unsafe, so they will use the weights_only=True to mitigate the seucirty issue.
But now, I just proved that even if you use weights_only=True, it can still achieve RCE.
Credit
This vulnerability was found by Ji'an Zhou.
References