CVE-2024-24576

CRITICALNVD 10.010.0
EchelonGraph scoreMEDIUM confidence

This critical-severity CVE scores 10.0 under NVD CVSS v3. EPSS exploit probability: 20.3%, top 3% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: epss, nvd
Elevated
10.0
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 20%CVSS: 10.0Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

Rust is a programming language. The Rust Security Response WG was notified that the Rust standard library prior to version 1.77.2 did not properly escape arguments when invoking batch files (with the bat and cmd extensions) on Windows using the Command. An attacker able to control the arguments passed to the spawned process could execute arbitrary shell commands by bypassing the escaping. The severity of this vulnerability is critical for those who invoke batch files on Windows with untrusted arguments. No other platform or use is affected.

The Command::arg and Command::args APIs state in their documentation that the arguments will be passed to the spawned process as-is, regardless of the content of the arguments, and will not be evaluated by a shell. This means it should be safe to pass untrusted input as an argument.

On Windows, the implementation of this is more complex than other platforms, because the Windows API only provides a single string containing all the arguments to the spawned process, and it's up to the spawned process to split them. Most programs use the standard C run-time argv, which in practice results in a mostly consistent way arguments are splitted.

One exception though is cmd.exe (used among other things to execute batch files), which has its own argument splitting logic. That forces the standard library to implement custom escaping for arguments passed to batch files. Unfortunately it was reported that our escaping logic was not thorough enough, and it was possible to pass malicious arguments that would result in arbitrary shell execution.

Due to the complexity of cmd.exe, we didn't identify a solution that would correctly escape arguments in all cases. To maintain our API guarantees, we improved the robustness of the escaping code, and changed the Command API to return an InvalidInput error when it cannot safely escape an argument. This error will be emitted when spawning the process.

The fix is included in Rust 1.77.2. Note that the new escaping logic for batch files errs on the conservative side, and could reject valid arguments. Those who implement the escaping themselves or only handle trusted inputs on Windows can also use the CommandExt::raw_arg method to bypass the standard library's escaping logic.

CVSS v3
10.0
EG Score
10.0(medium)
EG Risk
76(Attend)
EG Risk 76/100SSVC: Attend

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity100% × 45%
Exploitation40% × 40%
Automatability100% × 15%
Action: Remediate soon — notable exploitation risk.
EPSS
97.2%
KEV
Not listed

Published

April 9, 2024

Last Modified

January 5, 2026

Advisory Details (10)

Auto-updated Jul 18, 2026
Patch available. Sources: github.
generic

[SECURITY] Fedora 38 Update: rust-1.77.2-1.fc38 - package-announce - Fedora mailing-lists

https://lists.fedoraproject.org/archives/list/[email protected]/message/RPH3PF7DVSS2LVIRLW254VWUPVKJN46P/
generic

[SECURITY] Fedora 40 Update: rust-1.77.2-1.fc40 - package-announce - Fedora mailing-lists

https://lists.fedoraproject.org/archives/list/[email protected]/message/N323QAEEUVTJ354BTVQ7UB6LYXUX2BCL/
github Patch Available

`std::process::Command` did not properly escape arguments of batch files on Windows · Advisory · rust-lang/rust · GitHub

https://github.com/rust-lang/rust/security/advisories/GHSA-q455-m56c-85mh
generic

Issues · rust-lang/rust · GitHub

https://github.com/rust-lang/rust/issues
generic

oss-security - CVE-2024-24576: Rust 1.77.1 and earlier did not properly escape arguments of batch files on Windows

http://www.openwall.com/lists/oss-security/2024/04/09/16

Weakness Classification(2)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 10× in last 7d / 42× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-23 02:34 UTCEG score recompute
  2. 2026-07-22 23:21 UTCEG score recompute
  3. 2026-07-22 14:07 UTCEPSS rescore
  4. 2026-07-21 15:23 UTCEPSS rescore
  5. 2026-07-21 15:23 UTCEPSS rescore
  6. 2026-07-20 17:06 UTCEPSS rescore
  7. 2026-07-19 02:28 UTCEPSS rescore
  8. 2026-07-19 02:28 UTCEPSS rescore
  9. 2026-07-18 10:03 UTCEPSS rescore
  10. 2026-07-18 10:03 UTCEPSS rescore
  11. 2026-07-15 16:56 UTCEPSS rescore
  12. 2026-07-15 16:56 UTCEPSS rescore
  13. 2026-07-14 14:10 UTCOSV refresh
  14. 2026-07-13 22:28 UTCEPSS rescore
  15. 2026-07-13 06:11 UTCEPSS rescore
  16. 2026-07-13 06:11 UTCEPSS rescore
  17. 2026-07-12 05:45 UTCEPSS rescore
  18. 2026-07-11 08:26 UTCEPSS rescore
  19. 2026-07-09 19:09 UTCEPSS rescore
  20. 2026-07-09 19:09 UTCEPSS rescore
  21. 2026-07-08 15:13 UTCEPSS rescore
  22. 2026-07-07 13:45 UTCEPSS rescore
  23. 2026-07-07 13:45 UTCEPSS rescore
  24. 2026-07-06 16:26 UTCEPSS rescore
  25. 2026-07-06 02:22 UTCEPSS rescore
Show 58 more
  1. 2026-07-06 02:22 UTCEPSS rescore
  2. 2026-07-05 02:29 UTCEPSS rescore
  3. 2026-07-04 06:30 UTCEPSS rescore
  4. 2026-07-01 15:05 UTCEPSS rescore
  5. 2026-06-28 14:06 UTCEPSS rescore
  6. 2026-06-28 14:06 UTCEPSS rescore
  7. 2026-06-28 04:55 UTCEPSS rescore
  8. 2026-06-28 04:55 UTCEPSS rescore
  9. 2026-06-27 03:07 UTCEPSS rescore
  10. 2026-06-27 03:07 UTCEPSS rescore
  11. 2026-06-26 15:07 UTCOSV refresh
  12. 2026-06-25 13:48 UTCEPSS rescore
  13. 2026-06-25 13:48 UTCEPSS rescore
  14. 2026-06-24 14:04 UTCEPSS rescore
  15. 2026-06-24 14:04 UTCEPSS rescore
  16. 2026-06-23 21:32 UTCEPSS rescore
  17. 2026-06-23 21:32 UTCEPSS rescore
  18. 2026-06-22 14:24 UTCEPSS rescore
  19. 2026-06-22 14:24 UTCEPSS rescore
  20. 2026-06-21 01:58 UTCEPSS rescore
  21. 2026-06-21 01:58 UTCEPSS rescore
  22. 2026-06-19 19:24 UTCEPSS rescore
  23. 2026-06-19 19:24 UTCEPSS rescore
  24. 2026-06-18 17:51 UTCEPSS rescore
  25. 2026-06-18 17:51 UTCEPSS rescore
  26. 2026-06-17 17:52 UTCEPSS rescore
  27. 2026-06-17 17:52 UTCEPSS rescore
  28. 2026-06-16 17:51 UTCEPSS rescore
  29. 2026-06-16 17:51 UTCEPSS rescore
  30. 2026-06-15 17:47 UTCEPSS rescore
  31. 2026-06-12 23:11 UTCEPSS rescore
  32. 2026-06-10 22:17 UTCEPSS rescore
  33. 2026-06-10 13:21 UTCEPSS rescore
  34. 2026-06-10 13:21 UTCEPSS rescore
  35. 2026-06-08 21:42 UTCOSV refresh
  36. 2026-06-08 14:16 UTCEPSS rescore
  37. 2026-06-08 14:16 UTCEPSS rescore
  38. 2026-06-07 15:24 UTCEPSS rescore
  39. 2026-06-07 15:24 UTCEPSS rescore
  40. 2026-06-06 13:46 UTCEPSS rescore
  41. 2026-06-06 13:46 UTCEPSS rescore
  42. 2026-06-05 22:46 UTCEPSS rescore
  43. 2026-06-05 22:46 UTCEPSS rescore
  44. 2026-06-05 06:09 UTCEPSS rescore
  45. 2026-06-05 06:09 UTCEPSS rescore
  46. 2026-06-04 13:11 UTCEPSS rescore
  47. 2026-06-04 13:11 UTCEPSS rescore
  48. 2026-06-04 13:11 UTCEPSS rescore
  49. 2026-06-02 20:12 UTCEPSS rescore
  50. 2026-06-02 20:12 UTCEPSS rescore
  51. 2026-06-01 13:51 UTCEPSS rescore
  52. 2026-06-01 13:51 UTCEPSS rescore
  53. 2026-06-01 13:51 UTCEPSS rescore
  54. 2026-05-31 00:15 UTCEPSS rescore
  55. 2026-05-31 00:15 UTCEPSS rescore
  56. 2026-05-29 13:43 UTCEPSS rescore
  57. 2026-05-29 13:43 UTCEPSS rescore
  58. 2026-05-24 04:49 UTCEG score recompute

Publicly available exploits

(4 references)

Working exploit code is in the public domain (4 GitHub PoCs). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.

  • GitHub PoClpn/CVE-2024-24576.jl
    First seen Apr 14, 2024

    Simple CVE-2024-24576 PoC in Julia

    Open source ↗
  • GitHub PoCaydinnyunus/CVE-2024-24576-Exploit
    First seen Apr 10, 2024

    CVE-2024-24576 Proof of Concept

    Open source ↗
  • GitHub PoCbrains93/CVE-2024-24576-PoC-Python
    First seen Apr 10, 2024
    Open source ↗
  • GitHub PoCfrostb1ten/CVE-2024-24576-PoC
    First seen Apr 9, 2024

    Example of CVE-2024-24576 use case.

    Open source ↗

Frequently asked(5)

What is CVE-2024-24576?
CVE-2024-24576 is a critical vulnerability published on April 9, 2024. Rust is a programming language. The Rust Security Response WG was notified that the Rust standard library prior to version 1.77.2 did not properly escape arguments when invoking batch files (with the bat and cmd extensions) on Windows using the Command. An attacker able to control the arguments…
When was CVE-2024-24576 disclosed?
CVE-2024-24576 was first published in the National Vulnerability Database on April 9, 2024, with the most recent update on January 5, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2024-24576 actively exploited?
CVE-2024-24576 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 97.2% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2024-24576?
CVE-2024-24576 has a CVSS v3 base score of 10.0 (NVD).
How do I remediate CVE-2024-24576?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2024-24576, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2024-24576

Explore →

Is Your Infrastructure Affected by CVE-2024-24576?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.