CVE-2026-69097
High · 7.0CVSS
7.0
EPSS
0.3%
Published
Aug 3, 2026
CISA due date
—
Cloudanix analysis
A bug in a popular Python library for handling Git repositories lets attackers run their own code on developers' computers by tricking the library into adding bad settings to Git's configuration.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw allows injection of arbitrary git configuration directives, such as core.sshCommand, through malicious submodule names during create_submodule or clone_from operations, leading to remote code execution via git's SSH operations.
Why it matters to the business
Attackers could execute arbitrary code on systems using this library, potentially compromising development environments and CI/CD pipelines, leading to supply chain risks.
How an attack unfolds
An attacker crafts a malicious submodule name that injects config like core.sshCommand into .git/config when the victim clones or creates submodules, then when git performs SSH, it executes the attacker's command.
How to fix it
Upgrade GitPython to version 3.1.53 or later to properly escape section names.
How to confirm the fix worked
Verify the installed version is at least 3.1.53 and test with known malicious submodule names to ensure no injection occurs.
Typical attack path
- Craft malicious repository with submodule name containing config injection
- Victim performs clone_from or create_submodule
- Malicious config written to .git/config
- Git performs SSH operation triggering injected command
- Arbitrary code execution achieved
How to detect it
Look for unusual entries in .git/config files, especially core.sshCommand or other injected keys, and monitor logs for submodule operations from untrusted sources.
- .git/config containing core.sshCommand
- submodule names with special characters like [ or ]
- git config entries injected via submodule
What your security team should do
- Upgrade GitPython to 3.1.53 or newer immediately
- Audit dependencies for GitPython usage
- Monitor for unusual git config changes in repositories
The record
GitPython before 3.1.53 fails to properly escape section names in git config files, allowing attackers to inject arbitrary configuration directives through malicious submodule names. Attackers can inject core.sshCommand or other dangerous config keys into the victim's .git/config via create_submodule or clone_from operations, achieving remote code execution when git performs ssh operations.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119619 A vulnerability was found in 37954679 cak-filemanagement-system up to… CWE-74
- CVE-2026-91915 Dell OpenManage Enterprise, versions prior to 4.8.0, contains an Improper Neutralization… CWE-74
- CVE-2026-89435 The Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes &… CWE-74
- CVE-2026-54453 OpenCATS is an open-source applicant tracking system and recruitment CRM for staffing… CWE-74
- CVE-2026-118258 i18next-http-backend is a backend layer for i18next that loads translation resources in… CWE-74
- CVE-2026-103405 An Improper Neutralization of Special Elements in Output Used by a Downstream Component… CWE-74
- CVE-2026-103400 An Improper Neutralization of Special Elements in Output Used by a Downstream Component… CWE-74
- CVE-2026-106648 The Royal Elementor Addons WordPress plugin before 1.7.1070 does not validate submitted… CWE-74