All vulnerabilities
CVE-2024-10190GHSA-mrhh-3ggq-23p2PYSEC-2026-355

Horovod Vulnerable to Command Injection

horovod horovodpipLibraries & packages
CVSS
9.8Critical
ExploitationPublic exploit codeCISA's assessment says proof of concept code is public, assessed 20 Mar 2025. Not in the KEV catalogCISA via CVE List
Exploit odds (EPSS)1.12%Chance of exploitation activity in the next 30 days, higher than 66% of CVEs. Scored 27 Oct 2026FIRST EPSS
Fixed inNone listedNo source names a fixed version. Check the vendor advisory below
Published20 Mar 2025Updated 27 Oct 2026CVE List

What fixes it

No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.

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.

Text from CVE List

Affected versions 53

  • horovod, pip<= 0.28.1GitHub
  • horovod/horovodaffected: unspecified through latestCVE List
  • horovod, PyPIfrom first release, through 0.28.1OSV
  • horovod, PyPI0.10.0OSV
  • horovod, PyPI0.10.1OSV
  • horovod, PyPI0.10.2OSV
  • horovod, PyPI0.11.0OSV
  • horovod, PyPI0.11.1OSV
  • horovod, PyPI0.11.2OSV
  • horovod, PyPI0.11.3OSV
  • horovod, PyPI0.12.0OSV
  • horovod, PyPI0.12.1OSV
  • horovod, PyPI0.13.0OSV
  • horovod, PyPI0.13.1OSV
  • horovod, PyPI0.13.10OSV
  • horovod, PyPI0.13.11OSV
  • horovod, PyPI0.13.2OSV
  • horovod, PyPI0.13.3OSV
  • horovod, PyPI0.13.4OSV
  • horovod, PyPI0.13.5OSV
  • horovod, PyPI0.13.6OSV
  • horovod, PyPI0.13.7OSV
  • horovod, PyPI0.13.8OSV
  • horovod, PyPI0.14.0OSV
  • horovod, PyPI0.14.1OSV
  • horovod, PyPI0.15.0OSV
  • horovod, PyPI0.15.1OSV
  • horovod, PyPI0.15.2OSV
  • horovod, PyPI0.16.0OSV
  • horovod, PyPI0.16.1OSV
  • horovod, PyPI0.16.2OSV
  • horovod, PyPI0.16.3OSV
  • horovod, PyPI0.16.4OSV
  • horovod, PyPI0.18.0OSV
  • horovod, PyPI0.18.1OSV
  • horovod, PyPI0.18.2OSV
  • horovod, PyPI0.19.0OSV
  • horovod, PyPI0.19.1OSV
  • horovod, PyPI0.19.2OSV
  • horovod, PyPI0.19.3OSV
  • horovod, PyPI0.19.4OSV
  • horovod, PyPI0.19.5OSV
  • horovod, PyPI0.20.0OSV
  • horovod, PyPI0.20.1OSV
  • horovod, PyPI0.20.2OSV
  • horovod, PyPI0.20.3OSV
  • horovod, PyPI0.21.0OSV
  • horovod, PyPI0.21.1OSV
  • horovod, PyPI0.21.2OSV
  • horovod, PyPI0.21.3OSV
  • horovod, PyPI0.22.0OSV
  • horovod, PyPI0.22.1OSV
  • horovod, PyPI0.23.0OSV

References 5