Local file disclosure via unguarded diff options
Published Sep 9, 2026 · Updated Sep 9, 2026
Argument injection in GitPython 3.1.59 allows remote authenticated users to infer local file contents through the high-level diff API. The API permits --no-index under the default unsafe-option guard, converting caller-supplied paths into arbitrary filesystem operands; --ignore-matching-lines then turns Git's success or error result into a content oracle. Exploitation requires an embedding application to expose attacker-controlled diff options, both paths, and repeated distinguishable responses, limiting disclosure to files readable by the application process.
Summary
What happened
Argument injection in GitPython 3.1.59 allows remote authenticated users to infer local file contents through the high-level diff API. The API permits --no-index under the default unsafe-option guard, converting caller-supplied paths into arbitrary filesystem operands; --ignore-matching-lines then turns Git's success or error result into a content oracle. Exploitation requires an embedding application to expose attacker-controlled diff options, both paths, and repeated distinguishable responses, limiting disclosure to files readable by the application process.
The record
- CVE
- CVE-2026-87818
- Published
- Sep 9, 2026
- Updated
- Sep 9, 2026
- Vendor
- GitPython Developers
- Product
- GitPython
- Classifications
- CWE-88, CWE-200, T1005
- Attack vector
- network
- Privileges
- authenticated
Timeline
How it unfolded
- Sep 9, 2026CVE publishedPublication date reported by the CVE source.
- Sep 9, 2026Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=3.1.59 <3.1.60
What conditions does exploitation require?
What is affected?
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- GitPython 3.1.59 maintainer evidence packageproof of concept · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo