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.
2025-07-08T19:15:42.800
2025-11-06T14:52:47.590
Analyzed
CVSSv3.1: 8.0 (HIGH)
| Type | Vendor | Product | Version/Range | Vulnerable? |
|---|---|---|---|---|
| Application | git-scm | git | < 2.43.7 | Yes |
| Application | git-scm | git | < 2.44.4 | Yes |
| Application | git-scm | git | < 2.45.4 | Yes |
| Application | git-scm | git | < 2.46.4 | Yes |
| Application | git-scm | git | < 2.47.3 | Yes |
| Application | git-scm | git | < 2.48.2 | Yes |
| Application | git-scm | git | < 2.49.1 | Yes |
| Application | git-scm | git | < 2.50.1 | Yes |
| Operating System | debian | debian_linux | 11.0 | Yes |
| Application | apple | xcode | < 26.0 | Yes |