CVE-2026-28291 simple-git has Command Execution via Option-Parsing Bypass
Attackers can execute arbitrary commands by bypassing safety checks in the simple-git library through Git option manipulation.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-28291?
CVE-2026-28291 is a high-severity command injection vulnerability in steveukx git-js, published on 13 Apr 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
simple-git enables running native Git commands from JavaScript. Versions up to and including 3.31.1 allow execution of arbitrary commands through Git option manipulation, bypassing safety checks meant to block dangerous options like -u and --upload-pack. The flaw stems from an incomplete fix for CVE-2022-25860, as Git's flexible option parsing allows numerous character combinations (e.g., -vu, -4u, -nu) to circumvent the regular-expression-based blocklist in the unsafe operations plugin. Due to the virtually infinite number of valid option variants that Git accepts, a complete blocklist-based mitigation may be infeasible without fully emulating Git's option parsing behavior. This issue has been fixed in version 3.32.0.
Weakness: CWE-78
Which versions are affected by CVE-2026-28291?
2 open source packages ship an affected version, including simple-git. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
simple-git npm | All versions | 3.32.0 |
simple-git npm | All versions | 3.32.0 |
Products include Simple-Git Project Simple-Git.
How do I fix CVE-2026-28291?
Upgrade simple-git to 3.32.0 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2026-28291 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-28291 exists.
Other vulnerabilities in steveukx git-js
- CVE-2026-28292 simple-git has blockUnsafeOperationsPlugin bypass via case-insensitive protocol.allow config key that enables RCE
- CVE-2026-102828 simple-git unsafe-operation guard does not block trailer command configuration
- CVE-2026-6951 simple-git is vulnerable to Remote Code Execution
- CVE-2026-102826 simple-git allows command execution through unblocked Git configuration includes
- CVE-2026-102827 simple-git: unsafe-operations plugin bypass via git long-option abbreviation (--receive-p/--exe) -> command execution (residual of CVE-2026-28291)
Sources
Also known as GHSA-jcxm-m3jx-f287, MINI-8h3p-w6vm-2wrr, ROOT-APP-NPM-CVE-2026-28291.