Learn about CVE-2023-29007, a high-severity vulnerability in Git versions prior to 2.40.1, allowing arbitrary configuration injection and potential remote code execution.
This article provides detailed information about CVE-2023-29007, an arbitrary configuration injection vulnerability via
git submodule deinit
in Git.
Understanding CVE-2023-29007
This section delves into the vulnerability's description, impact, affected systems, exploitation mechanism, and mitigation strategies.
What is CVE-2023-29007?
CVE-2023-29007 is an arbitrary configuration injection vulnerability in Git versions prior to 2.40.1. It allows attackers to inject malicious configuration into a user's configuration file, potentially leading to remote code execution.
The Impact of CVE-2023-29007
The vulnerability poses a high risk with a CVSS base score of 7, impacting the availability, confidentiality, and integrity of affected systems.
Technical Details of CVE-2023-29007
This section covers the vulnerability description, affected systems and versions, as well as the exploitation mechanism.
Vulnerability Description
A specially crafted
.gitmodules
file with long submodule URLs can exploit a bug in config.c::git_config_copy_or_rename_section_in_file()
to inject arbitrary configuration values into a user's configuration file.
Affected Systems and Versions
Git versions prior to 2.40.1 are affected, including 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, and 2.39.3.
Exploitation Mechanism
Attackers can manipulate submodule URLs to execute remote code by injecting configuration values that specify executables to run.
Mitigation and Prevention
This section outlines immediate steps to take, long-term security practices, and the importance of patching and updates.
Immediate Steps to Take
Avoid running
git submodule deinit
on untrusted repositories or without inspecting submodule sections in the configuration file.
Long-Term Security Practices
Regularly update Git to patched versions and ensure secure configuration management practices to prevent arbitrary configuration injections.
Patching and Updates
Apply the available fix by updating to Git versions 2.40.1 or higher to mitigate the CVE-2023-29007 vulnerability.