CVE-2025-48384
Git allows arbitrary code execution through broken config quoting
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. When reading a config value, Git strips any trailing carriage return and line feed (CRLF). When writing a config entry, values with a trailing CR are not quoted, causing the CR to be lost when the config is later read. When initializing a submodule, if the submodule path contains a trailing CR, the altered path is read resulting in the submodule being checked out to an incorrect location. If a symlink exists that points the altered path to the submodule hooks directory, and the submodule contains an executable post-checkout hook, the script may be unintentionally executed after checkout. This vulnerability is fixed in v2.43.7, v2.44.4, v2.45.4, v2.46.4, v2.47.3, v2.48.2, v2.49.1, and v2.50.1.
Avi Halachmi discovered that Git incorrectly managed file modification constraints with Gitk. An attacker could possibly use this issue to create or write to arbitrary files on the system. Avi Halachmi discovered that Git incorrectly handled arguments when invoking the Gitk utility. If a user were tricked into cloning a malicious Git repository, an attacker could possibly use this issue to run arbitrary commands. This issue only affected Ubuntu 24.04 LTS, Ubuntu 24.10, and Ubuntu 25.04.
CVSS Scores
SSVC
- Decision:Track*
Timeline
- 2025-05-19 CVE Reserved
- 2025-07-08 CVE Published
- 2025-07-08 CVE Updated
- 2025-07-12 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-59: Improper Link Resolution Before File Access ('Link Following')
- CWE-436: Interpretation Conflict
CAPEC
References (1)
URL | Tag | Source |
---|---|---|
https://github.com/git/git/security/advisories/GHSA-vwqx-4fm8-6qc9 | X_refsource_confirm |
URL | Date | SRC |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | < 2.43.7 Search vendor "Git" for product "Git" and version " < 2.43.7" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.44.0 < 2.44.4 Search vendor "Git" for product "Git" and version " >= 2.44.0 < 2.44.4" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.45.0 < 2.45.4 Search vendor "Git" for product "Git" and version " >= 2.45.0 < 2.45.4" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.46.0 < 2.46.4 Search vendor "Git" for product "Git" and version " >= 2.46.0 < 2.46.4" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.47.0 < 2.47.3 Search vendor "Git" for product "Git" and version " >= 2.47.0 < 2.47.3" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.48.0 < 2.48.2 Search vendor "Git" for product "Git" and version " >= 2.48.0 < 2.48.2" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.49.0 < 2.49.1 Search vendor "Git" for product "Git" and version " >= 2.49.0 < 2.49.1" | en |
Affected
| ||||||
Git Search vendor "Git" | Git Search vendor "Git" for product "Git" | >= 2.50.0 < 2.50.1 Search vendor "Git" for product "Git" and version " >= 2.50.0 < 2.50.1" | en |
Affected
|