CVE-2024-10190 Overview
CVE-2024-10190 is a critical insecure deserialization vulnerability affecting Horovod, a popular distributed deep learning framework. The vulnerability exists in the ElasticRendezvousHandler component, which improperly handles base64-encoded data. Specifically, the _put_value method calls codec.loads_base64(value), which eventually invokes cloudpickle.loads(decoded). This allows unauthenticated attackers to send malicious pickle objects via PUT requests, resulting in arbitrary code execution on the server.
Critical Impact
Unauthenticated remote code execution allows attackers to fully compromise systems running vulnerable Horovod versions, potentially leading to data theft, lateral movement, or complete infrastructure takeover in machine learning environments.
Affected Products
- Horovod versions up to and including v0.28.1
- Systems using ElasticRendezvousHandler for distributed training coordination
- Machine learning infrastructure utilizing Horovod's elastic training capabilities
Discovery Timeline
- 2025-03-20 - CVE-2024-10190 published to NVD
- 2025-12-11 - Last updated in NVD database
Technical Details for CVE-2024-10190
Vulnerability Analysis
This vulnerability stems from the unsafe use of Python's pickle deserialization in a network-accessible handler. The ElasticRendezvousHandler class, which extends KVStoreHandler, processes incoming PUT requests containing base64-encoded data. When the _put_value method receives this data, it decodes the base64 content and passes it directly to cloudpickle.loads() without any validation or sanitization. Since cloudpickle.loads() can execute arbitrary Python code during the deserialization process, an attacker can craft a malicious pickle payload that executes commands on the server when processed.
The attack requires no authentication, making any exposed Horovod instance with elastic training enabled a potential target. This is particularly concerning in distributed machine learning environments where Horovod instances may be accessible across network boundaries.
Root Cause
The root cause is the use of cloudpickle.loads() to deserialize untrusted input received over the network. Python pickle deserialization is inherently unsafe when processing data from untrusted sources, as pickle objects can contain embedded code that executes during the unpickling process. The ElasticRendezvousHandler fails to implement any form of input validation, authentication, or safe deserialization alternatives before processing incoming data.
Attack Vector
The attack is network-based and requires no prior authentication or user interaction. An attacker crafts a malicious pickle object that contains a payload designed to execute arbitrary commands when deserialized. This payload is base64-encoded and sent to the vulnerable Horovod server via an HTTP PUT request to the ElasticRendezvousHandler endpoint.
When the server receives the request, the _put_value method automatically decodes the base64 data and passes it to cloudpickle.loads(), triggering the execution of the embedded malicious code. The attacker gains code execution with the same privileges as the Horovod process, which often runs with elevated permissions in machine learning environments.
For technical details on the exploitation mechanism, see the Huntr Bounty Report.
Detection Methods for CVE-2024-10190
Indicators of Compromise
- Unexpected PUT requests to Horovod elastic rendezvous endpoints containing base64-encoded payloads
- Anomalous child processes spawned by the Horovod Python process
- Unusual network connections originating from systems running Horovod
- Evidence of pickle deserialization in web server logs with suspicious base64 content
Detection Strategies
- Monitor HTTP PUT requests to Horovod services for unusually large or suspicious base64-encoded payloads
- Implement application-layer inspection for pickle magic bytes (\\x80\\x04 or \\x80\\x05) in decoded request content
- Deploy endpoint detection to identify unexpected process execution from Python interpreters running Horovod
- Use behavioral analysis to detect anomalous command execution patterns on ML infrastructure
Monitoring Recommendations
- Enable detailed logging for all Horovod elastic training endpoints
- Configure network monitoring to detect connections to known malicious infrastructure from ML systems
- Implement file integrity monitoring on systems running Horovod to detect post-exploitation modifications
- Set up alerts for unusual process trees originating from Horovod worker processes
How to Mitigate CVE-2024-10190
Immediate Actions Required
- Restrict network access to Horovod elastic rendezvous endpoints to trusted hosts only
- Implement network segmentation to isolate ML training infrastructure from untrusted networks
- Deploy web application firewalls (WAF) to inspect and filter malicious requests
- Consider disabling elastic training features if not required until a patch is available
Patch Information
As of the last update, no official patch has been released for this vulnerability. Organizations should monitor the Horovod project for security updates and apply patches immediately when available. In the interim, implement the workarounds and network-level protections described below.
Workarounds
- Restrict access to Horovod endpoints using firewall rules to allow only trusted IP addresses
- Deploy a reverse proxy with request inspection to filter suspicious PUT requests before they reach Horovod
- Run Horovod in isolated network environments without direct internet exposure
- Consider using alternative training coordination mechanisms that do not rely on pickle serialization
# Configuration example - Restrict Horovod elastic endpoint access via iptables
# Allow only trusted hosts (e.g., 10.0.0.0/24) to connect to Horovod port
iptables -A INPUT -p tcp --dport 12345 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 12345 -j DROP
# Or use firewalld to create a restricted zone
firewall-cmd --permanent --zone=mlnetwork --add-source=10.0.0.0/24
firewall-cmd --permanent --zone=mlnetwork --add-port=12345/tcp
firewall-cmd --reload
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


