GHSA-4mqg-h5jf-j9m7 TorchServe Pre-Auth Remote Code Execution
Attackers can execute arbitrary code on TorchServe servers via unsafe deserialization in the SnakeYAML library without authentication.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is GHSA-4mqg-h5jf-j9m7?
GHSA-4mqg-h5jf-j9m7 is an unsafe deserialization vulnerability in torchserve, published on 2 Oct 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Impact
Use of Open Source Library potentially exposed to RCE
Issue: Use of a version of the SnakeYAML v1.31 open source library with multiple issues that potentially exposes the user to unsafe deserialization of Java objects. This could allow third parties to execute arbitrary code on the target system. This issue is present in versions 0.3.0 to 0.8.1.
Mitigation: A pull request to address this issue has been merged - https://github.com/pytorch/serve/pull/2523. TorchServe release 0.8.2 includes this fix.
Patches
TorchServe release 0.8.2 includes fixes to address the previously listed issue:
https://github.com/pytorch/serve/releases/tag/v0.8.2
Tags for upgraded DLC release User can use the following new image tags to pull DLCs that ship with patched TorchServe version 0.8.2: x86 GPU
- v1.9-pt-ec2-2.0.1-inf-gpu-py310
- v1.8-pt-sagemaker-2.0.1-inf-gpu-py310
x86 CPU
- v1.8-pt-ec2-2.0.1-inf-cpu-py310
- v1.7-pt-sagemaker-2.0.1-inf-cpu-py310
Graviton
- v1.7-pt-graviton-ec2-2.0.1-inf-cpu-py310
- v1.5-pt-graviton-sagemaker-2.0.1-inf-cpu-py310
Neuron
- 1.13.1-neuron-py310-sdk2.13.2-ubuntu20.04
- 1.13.1-neuronx-py310-sdk2.13.2-ubuntu20.04
- 1.13.1-neuronx-py310-sdk2.13.2-ubuntu20.04
The full DLC image URI details can be found at: https://github.com/aws/deep-learning-containers/blob/master/available_images.md#available-deep-learning-containers-images
References
https://github.com/pytorch/serve/pull/2523 https://github.com/pytorch/serve/releases/tag/v0.8.2 https://github.com/aws/deep-learning-containers/blob/master/available_images.md#available-deep-learning-containers-images
Credit
We would like to thank Oligo Security for responsibly disclosing this issue and working with us on its resolution. If you have any questions or comments about this advisory, we ask that you contact AWS/Amazon Security via our vulnerability reporting page](https://aws.amazon.com/security/vulnerability-reporting)) or directly via email to [email protected]. Please do not create a public GitHub issue.
Which versions are affected by GHSA-4mqg-h5jf-j9m7?
2 open source packages ship an affected version, including torchserve.
| Package | Affected | Fixed in |
|---|---|---|
torchserve PyPI | From 0.3.0 | 0.8.2 |
torchserve PyPI | From 0.3.0 | 0.8.2 |
How do I fix GHSA-4mqg-h5jf-j9m7?
Upgrade torchserve to 0.8.2 or later.
Upgrade, and only deserialise data from trusted sources or with an allow-list of types. More about Unsafe deserialization.
Is GHSA-4mqg-h5jf-j9m7 being exploited?
There is no known exploitation of GHSA-4mqg-h5jf-j9m7 in the wild and no public exploit code.