Lookup for vulnerable packages by Package URL.

Purlpkg:npm/simple-git@3.15.0
Typenpm
Namespace
Namesimple-git
Version3.15.0
Qualifiers
Subpath
Is_vulnerabletrue
Next_non_vulnerable_version3.16.0
Latest_non_vulnerable_version3.32.3
Affected_by_vulnerabilities
0
url VCID-epz2-6ye6-bfay
vulnerability_id VCID-epz2-6ye6-bfay
summary
simple-git has blockUnsafeOperationsPlugin bypass via case-insensitive protocol.allow config key enables RCE
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.

---


| # | Vector | Payload | Sentinel file | Result |
|---|--------|---------|---------------|--------|
| 1 | CVE-2022-25912 original | `protocol.ext.allow=always` (lowercase) | not created | Blocked ✅ |
| 2 | Case-sensitivity bypass | `PROTOCOL.ALLOW=always` (uppercase) | `/tmp/pwn-codeant` created | **RCE ⚠️** |
| 3 | Real-world app scenario | `PROTOCOL.ALLOW=always` + attacker URL | `/tmp/pwn-realworld` created | **RCE ⚠️** |

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 `-c` | Regex 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
0
reference_url https://github.com/steveukx/git-js
reference_id
reference_type
scores
url https://github.com/steveukx/git-js
1
reference_url https://github.com/steveukx/git-js/commit/f7042088aa2dac59e3c49a84d7a2f4b26048a257
reference_id
reference_type
scores
url https://github.com/steveukx/git-js/commit/f7042088aa2dac59e3c49a84d7a2f4b26048a257
2
reference_url https://www.codeant.ai/security-research/security-research-simple-git-remote-code-execution-cve-2026-28292
reference_id
reference_type
scores
url https://www.codeant.ai/security-research/security-research-simple-git-remote-code-execution-cve-2026-28292
3
reference_url https://www.codeant.ai/security-research/simple-git-remote-code-execution-cve-2026-28292
reference_id
reference_type
scores
url https://www.codeant.ai/security-research/simple-git-remote-code-execution-cve-2026-28292
4
reference_url https://nvd.nist.gov/vuln/detail/CVE-2026-28292
reference_id CVE-2026-28292
reference_type
scores
url https://nvd.nist.gov/vuln/detail/CVE-2026-28292
5
reference_url https://github.com/advisories/GHSA-r275-fr43-pm7q
reference_id GHSA-r275-fr43-pm7q
reference_type
scores
url https://github.com/advisories/GHSA-r275-fr43-pm7q
6
reference_url https://github.com/steveukx/git-js/security/advisories/GHSA-r275-fr43-pm7q
reference_id GHSA-r275-fr43-pm7q
reference_type
scores
url https://github.com/steveukx/git-js/security/advisories/GHSA-r275-fr43-pm7q
fixed_packages
0
url pkg:npm/simple-git@3.32.3
purl pkg:npm/simple-git@3.32.3
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/simple-git@3.32.3
aliases CVE-2026-28292, GHSA-r275-fr43-pm7q
risk_score null
exploitability null
weighted_severity null
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-epz2-6ye6-bfay
Fixing_vulnerabilities
Risk_scorenull
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:npm/simple-git@3.15.0