Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. simple-git
  4. ›
  5. CVE-2026-28292

CVE-2026-28292: simple-git has blockUnsafeOperationsPlugin bypass via case-insensitive protocol.allow config key enables RCE

March 10, 2026

The blockUnsafeOperationsPlugin in simple-git fails to block git protocol override arguments when the config key is passed in uppercase or mixed case. An attacker who controls arguments passed to git operations can enable the ext:: protocol by passing -c PROTOCOL.ALLOW=always, which executes an arbitrary OS command on the host machine.


#VectorPayloadSentinel fileResult
1CVE-2022-25912 originalprotocol.ext.allow=always (lowercase)not createdBlocked ✅
2Case-sensitivity bypassPROTOCOL.ALLOW=always (uppercase)/tmp/pwn-codeant createdRCE ⚠️
3Real-world app scenarioPROTOCOL.ALLOW=always + attacker URL/tmp/pwn-realworld createdRCE ⚠️

The case-sensitive regex in preventProtocolOverride blocks protocol.*.allow but does not account for uppercase or mixed-case variants. Git accepts all variants identically due to case-insensitive config key normalisation, allowing full bypass of the protection in all versions of simple-git that carry the 2022 fix.

/tmp/pwned is created by the git subprocess via the ext:: protocol.

All of the following bypass the check:

Argument passed via -cRegex matches?Git honours it?
protocol.allow=always✅ blocked✅
PROTOCOL.ALLOW=always❌ bypassed✅
Protocol.Allow=always❌ bypassed✅
PROTOCOL.allow=always❌ bypassed✅
protocol.ALLOW=always❌ bypassed✅

References

  • github.com/advisories/GHSA-r275-fr43-pm7q
  • github.com/steveukx/git-js
  • github.com/steveukx/git-js/commit/f7042088aa2dac59e3c49a84d7a2f4b26048a257
  • nvd.nist.gov/vuln/detail/CVE-2026-28292
  • www.codeant.ai/security-research/security-research-simple-git-remote-code-execution-cve-2026-28292

Code Behaviors & Features

Detect and mitigate CVE-2026-28292 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 3.15.0 before 3.32.3

Fixed versions

  • 3.32.3

Solution

Upgrade to version 3.32.3 or above.

Impact 9.8 CRITICAL

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Learn more about CVSS

Weakness

  • CWE-178: Improper Handling of Case Sensitivity
  • CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

Source file

npm/simple-git/CVE-2026-28292.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Thu, 19 Mar 2026 16:06:44 +0000.