git: Improper Limitation of a Pathname to a Restricted Directory
CVE-2023-25652 is a high-severity improper limitation of a pathname to a restricted directory vulnerability in git, with a CVSS 3.1 base score of 7.5 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. Affected git versions: < 2.30.9; >= 2.31.0, < 2.31.8; >= 2.32.0, < 2.32.7, and others listed below. The record does not name a fixed version, so check the vendor advisory. There is no confirmed exploitation so far. EPSS estimates a 51.9% chance of exploitation within 30 days, which is in the top 1.03% of all scored CVEs.
Exploitation in the next 30 days is more likely than not, according to EPSS.
What to do
- Check which version of git you run against the affected versions below, and install the vendor's latest release.
- Read the advisory on github.com for workarounds and exact fixed builds.
- Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Git | git | < 2.30.9; >= 2.31.0, < 2.31.8; >= 2.32.0, < 2.32.7; >= 2.33.0, < 2.33.8; >= 2.34.0, < 2.34.8; >= 2.35.0, < 2.35.8; >= 2.36.0, < 2.36.6; >= 2.37.0, < 2.37.7; and 3 more ranges | Not stated |
| Fedora Project | Fedora | 37; 38 | Not stated |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- NetworkCan be exploited remotely over a network, including the internet.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- NoneNo account or login is needed.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- NoneNo data is disclosed.
- Integrity
- HighData or code can be modified at will.
- Availability
- NoneAvailability is not affected.
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N. Scored by NVD.
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 3.1 | 7.5 | High | CNA (github.com) |
| CVSS 3.1 | 7.5 | High | NVD |
Official 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, by feeding specially crafted input to `git apply --reject`, a path outside the working tree can be overwritten with partially controlled contents (corresponding to the rejected hunk(s) from the given patch). 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 using `git apply` with `--reject` when applying patches from an untrusted source. Use `git apply --stat` to inspect a patch before applying; avoid applying one that create a conflict where a link corresponding to the `*.rej` file exists.
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Improper Limitation of a Pathname to a Restricted Directory
The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
How developers prevent this class of flaw
- For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
- Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
- Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth.
More Improper Limitation of a Pathname to a Restricted Directory vulnerabilities (CWE-22)
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: partial).
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
Third-party and government advisories
- openwall.com/lists/oss-security/2023/04/25/2Mailing List, Third Party Advisory
- lists.fedoraproject.org/archives/list/[email protected]/message/PI7FZ4NNR5S5J5K6AMVQBH…Mailing List, Third Party Advisory
- lists.fedoraproject.org/archives/list/[email protected]/message/YFZWGQKB6MM5MNF2DLFTD7…Mailing List, Third Party Advisory
Other references
- lists.debian.org/debian-lts-announce/2024/06/msg00018.html
- lists.fedoraproject.org/archives/list/[email protected]/message/BSXOGVVBJLYX26IAYX6PJS…
- lists.fedoraproject.org/archives/list/[email protected]/message/RKOXOAZ42HLXHXTW6JZI4L…
- security.gentoo.org/glsa/202312-15
- lists.debian.org/debian-lts-announce/2024/09/msg00009.html
Other vulnerabilities in git
- 7.5 High severity
- 8.6 High severity
- 8.0 High severity
Git Link Following Exploited
- 8.8 High severity
- 7.5 High severity
- 7.8 High severity
Recent Improper Limitation of a Pathname to a Restricted Directory vulnerabilities
- 9.8 Critical severity
- 8.1 High severity
- 7.2 High severity
- 7.8 High severity
- 7.5 High severity
- 7.5 High severity
Spotted an error? Tell us.