Description
Xorbits Xoscar through 0.11.2 contains an unauthenticated deserialization vulnerability that allows remote attackers to execute arbitrary code by sending crafted data over the actor-pool TCP channel. Attackers can exploit SocketChannel.recv() passing unvalidated data to cloudpickle.loads(), which triggers pickle __reduce__ gadget execution before message type validation, achieving remote code execution as the server process which commonly runs as root on GPU nodes.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
xorbitsai xoscar
Default version status: unaffected
0.1.0 to ≤ 0.11.2affected
pkg:github/xorbitsai/xoscarReferences
- https://github.com/xorbitsai/xoscar/blob/v0.11.2/python/xoscar/serialization/core.pyx#L260 ↗
- https://github.com/xorbitsai/xoscar/blob/v0.11.2/python/xoscar/backends/communication/socket.py#L99-L104 ↗
- https://www.vulncheck.com/advisories/xorbits-xoscar-unauthenticated-deserialization-rce-via-actor-pool ↗
- https://www.vulncheck.com/blog/xorbits-xoscar-unauth-cloudpickle-rce ↗