CVE-2026-69097
This vulnerability is a configuration injection, not command injection—an attacker corrupts `.git/config` by embedding a crafted submodule name that spans section boundaries and injects directives like `core.sshCommand`. When Git subsequently performs an SSH operation, it executes the attacker-controlled command. The root cause is missing or broken section-name escaping in GitPython's config-writing layer; INI format treats section names as structural syntax, not opaque data, so characters that delimit sections must be escaped. They aren't. The attack surface is significant. Submodule names frequently come from external sources—upstream repositories, commit metadata, CI pipelines—and automated systems that clone repositories and process submodule data may write the resulting `.git/config` without human review. Any system using GitPython to manage submodules in CI/CD, dependency resolution, or monorepo tooling is exposed. This is not a one-off. GitPython has a history of similar vulnerabilities (CVE-2019-1297 in this exact attack surface), and patch patterns show a consistent anti-pattern: blocking specific dangerous directives (`core.sshCommand`, `core.gitproxy`) rather than fixing structural section-name escaping. The question is whether CVE-2026-69097's patch finally addresses the root cause or merely blocks another directive in an endless whack-a-mole. For defenders: audit your `.git/config` files for unexpected `core.*` directives, particularly in systems that process submodule data from external sources. If you use GitPython in CI pipelines, treat submodule names as untrusted input requiring format-level sanitization at the application layer until the library patch lands. Verify whether your SAST tooling detects configuration injection patterns—the standard command-injection signatures won't catch this. The detection logic for INI-style structural corruption exists in research but hasn't propagated into mainstream tooling, meaning your scanning may have a blind spot here.
Reviewed through automated stages and approved by a human before publication.