CVE-2026-40034 json
gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule
published 2026-05-05 6 mo ago modified 2026-11-08 24 h ago also EUVD-2026-31831 , GHSA-f26g-jm89-4g65
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 51%
- public exploits
- 0
- none known
Summary
gix-submodule before 0.29.0 (gitoxide before 0.5.21, gix before 0.84.0) incorrectly validates the update field in .gitmodules, allowing attackers to bypass the CommandForbiddenInModulesConfiguration guard when a submodule has been initialized with only partial configuration in .git/config. An attacker can inject arbitrary shell commands via the update field in .gitmodules that will be executed when Submodule::update() is called on a previously-initialized submodule, enabling remote code execution.
Patch / fix
- crates.io gix 0.83.0
- gitoxide gitoxide 0.5.21
- gitoxide gix-submodule 0.29.0
- gitoxide gix 0.84.0
- rust-gix-submodule Debian 14 0.30.0-1
debian advisories DEBIAN-CVE-2026-40034
- watchexec openSUSE Tumbleweed 2.8.0-1.1
- gitoxide openSUSE Leap 16.0 0.56.0-bp160.1.1
- gitoxide openSUSE Tumbleweed 0.56.0-1.1
- stgit openSUSE Leap 16.0 2.6.0-bp160.1.1
- stgit openSUSE Tumbleweed 2.6.0-1.1
opensuse advisories openSUSE-SU-2026:12338-1openSUSE-SU-2026:21558-1openSUSE-SU-2026:11474-1openSUSE-SU-2026:21185-1openSUSE-SU-2026:11038-1
- rust Azure Linux 3.0 1.75.0-30
- rust Azure Linux 3.0 1.90.0-9
azure linux advisories AZL-89292AZL-89295
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 5 mo ago
Exploit prediction
0.65% chance of exploitation in the next 30 days, higher than 51% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 7.3 | CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| CNA | 4.0 | 8.5 | CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | gix | >=0.31.0, <0.83.0 |
0.83.0 |
Affected products
- gitoxide gitoxide
- gitoxide gix-submodule
- gitoxide gix
Classification
References
-
github.com
/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0
patch, web
-
github.com
/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc
patch, web
-
github.com
/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65
vendor-advisory, exploit, web
-
red.anthropic.com
/2026/cvd/findings/ANT-2026-6SNS6KMP
third-party-advisory, web
-
vulncheck.com
/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule
third-party-advisory, web
-
nvd.nist.gov
/vuln/detail/CVE-2026-40034
advisory
-
github.com
/GitoxideLabs/gitoxide
package
Sources
- CVE List CVE-2026-40034
- GitHub Advisory GHSA-f26g-jm89-4g65
- NVD CVE-2026-40034
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.