{"id":"CVE-2024-10190","aliases":["EUVD-2025-7121","GHSA-mrhh-3ggq-23p2","PYSEC-2026-355"],"status":"published","title":"Unauthenticated Remote Code Execution in ElasticRendezvousHandler in horovod/horovod","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","severity":{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-08","score":0.01124,"percentile":0.66476,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-502","CWE-77"],"published":"2025-03-20T10:09:52Z","modified":"2026-10-28T02:30:52Z","affected":[{"source":"ghsa","ecosystem":"PyPI","package":"horovod","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.28.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"horovod","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.28.1"}]}],"versions":["0.10.0","0.10.1","0.10.2","0.11.0","0.11.1","0.11.2","0.11.3","0.12.0","0.12.1","0.13.0","0.13.1","0.13.10","0.13.11","0.13.2","0.13.3","0.13.4","0.13.5","0.13.6","0.13.7","0.13.8","0.14.0","0.14.1","0.15.0","0.15.1","0.15.2","0.16.0","0.16.1","0.16.2","0.16.3","0.16.4","0.18.0","0.18.1","0.18.2","0.19.0","0.19.1","0.19.2","0.19.3","0.19.4","0.19.5","0.20.0","0.20.1","0.20.2","0.20.3","0.21.0","0.21.1","0.21.2","0.21.3","0.22.0","0.22.1","0.23.0","0.24.0","0.24.1","0.24.2","0.24.3","0.25.0","0.26.0","0.26.1","0.27.0","0.28.0","0.28.1","0.9.0","0.9.1","0.9.10","0.9.11","0.9.12","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9"]},{"source":"osv","ecosystem":"PyPI","package":"horovod","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.28.1"}]}],"versions":["0.10.0","0.10.1","0.10.2","0.11.0","0.11.1","0.11.2","0.11.3","0.12.0","0.12.1","0.13.0","0.13.1","0.13.10","0.13.11","0.13.2","0.13.3","0.13.4","0.13.5","0.13.6","0.13.7","0.13.8","0.14.0","0.14.1","0.15.0","0.15.1","0.15.2","0.16.0","0.16.1","0.16.2","0.16.3","0.16.4","0.18.0","0.18.1","0.18.2","0.19.0","0.19.1","0.19.2","0.19.3","0.19.4","0.19.5","0.20.0","0.20.1","0.20.2","0.20.3","0.21.0","0.21.1","0.21.2","0.21.3","0.22.0","0.22.1","0.23.0","0.24.0","0.24.1","0.24.2","0.24.3","0.25.0","0.26.0","0.26.1","0.27.0","0.28.0","0.28.1","0.9.0","0.9.1","0.9.10","0.9.11","0.9.12","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9"]}],"products":[{"vendor":"horovod","product":"horovod"},{"vendor":"horovod","product":"horovod/horovod"}],"references":[{"url":"https://huntr.com/bounties/3e398d1f-70c2-4e05-ae22-f5d66b19a754","tags":["Exploit","Issue Tracking","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-10190","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/horovod/PYSEC-2026-355.yaml","tags":["web"]},{"url":"https://pypi.org/project/horovod","tags":["web","package"]},{"url":"https://github.com/advisories/GHSA-mrhh-3ggq-23p2","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/10xxx/CVE-2024-10190.json","tags":["advisory"]},{"url":"https://github.com/horovod/horovod","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2024-10190","title":"Unauthenticated Remote Code Execution in ElasticRendezvousHandler in horovod/horovod","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2025-03-20T10:09:52.689Z","modified":"2025-10-15T12:50:07.797Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:34:02.652467Z"}],"euvd":[{"id":"EUVD-2025-7121","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2025-03-20T10:09:52Z","modified":"2025-10-15T12:50:07Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T20:31:32.071816Z"}],"ghsa":[{"id":"GHSA-mrhh-3ggq-23p2","title":"Horovod Vulnerable to Command Injection","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2025-03-20T12:32:38Z","modified":"2026-10-27T17:24:06Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-77","CWE-502"],"updated_at":"2026-11-02T14:41:38.969831Z"}],"nvd":[{"id":"CVE-2024-10190","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2025-03-20T10:15:15.117Z","modified":"2026-06-17T06:55:07.44Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"secondary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:10:45.815983Z"}],"osv":[{"id":"CVE-2024-10190","title":"Unauthenticated Remote Code Execution in ElasticRendezvousHandler in horovod/horovod","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2025-03-20T10:09:52.689Z","modified":"2026-10-28T02:30:52.98899484Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:44:37.180532Z"},{"id":"GHSA-mrhh-3ggq-23p2","title":"Horovod Vulnerable to Command Injection","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2025-03-20T12:32:38Z","modified":"2026-10-27T17:30:37.969317003Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-502","CWE-77"],"updated_at":"2026-11-02T15:46:52.170928Z"},{"id":"PYSEC-2026-355","title":"Horovod Vulnerable to Command Injection","description":"Horovod versions up to and including v0.28.1 are vulnerable to unauthenticated remote code execution. The vulnerability is due to improper handling of base64-encoded data in the `ElasticRendezvousHandler`, a subclass of `KVStoreHandler`. Specifically, the `_put_value` method in `ElasticRendezvousHandler` calls `codec.loads_base64(value)`, which eventually invokes `cloudpickle.loads(decoded)`. This allows an attacker to send a malicious pickle object via a PUT request, leading to arbitrary code execution on the server.","status":"published","published":"2026-06-29T11:50:35.347691Z","modified":"2026-07-01T20:22:54.318849Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:56.847083Z"}]}}
