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
Apr 18, 2025
Description
I found a Remote Command Execution (RCE) vulnerability in the PyTorch. When load 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 security issue.
But now, I just proved that even if you use weights_only=True, it still can achieve RCE.
So it is time to update your PyTorch version~.
Credit
This vulnerability was found by Ji'an Zhou.
References