CVE-2026-100689
Last modified
CVE-2026-100689 is a medium-severity vulnerability rated 5.9/10 on the CVSS scale. GitPython before 3.1.62 does not validate the `path` field read from an untrusted .gitmodules file when updating submodules. While a prior fix (GHSA-hmq2-w58f-27jc) added Submodule._validated_name() to constrain the `name` field, and GitPython's own containment guard Submodule._to_relative_path() is applied in add() and move(), Submodule.update() derives the absolute checkout location from the raw `path` value without that guard.
Description
GitPython before 3.1.62 does not validate the `path` field read from an untrusted .gitmodules file when updating submodules. While a prior fix (GHSA-hmq2-w58f-27jc) added Submodule._validated_name() to constrain the `name` field, and GitPython's own containment guard Submodule._to_relative_path() is applied in add() and move(), Submodule.update() derives the absolute checkout location from the raw `path` value without that guard. A .gitmodules entry containing directory traversal components (e.g., path = ../../../tmp/escaped) can therefore cause directories to be created via os.makedirs() outside the repository working tree, populated from the submodule URL on the clone path, and removed via shutil.rmtree() when force_remove is used. Exploitation requires an application flow that updates submodules at a non-HEAD commit (such as a historical-commit API); the common clone-then-update flow re-derives the path from a canonical tree lookup and is not affected. The issue is fixed in GitPython 3.1.62.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| gitpython-developers | GitPython | < 3.1.62 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-100689?
How severe is CVE-2026-100689?
How do I fix CVE-2026-100689?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-100683Budibase (@budibase/server) before 3.45.0 builds MySQL and M…8
- CVE-2026-100684Budibase versions 3.41.0 before 3.45.0 contain an authentica…8.1
- CVE-2026-100685Budibase before 3.45.0 fails to properly scope the GET /api/…7.7
- CVE-2026-100686Budibase versions before 3.45.0 fail to validate per-app aut…8.1
- CVE-2026-100687Budibase Server before 3.45.0 fails to redact plaintext data…5.5
- CVE-2026-100688Budibase server before 3.45.0 contains a cross-tenant inform…6.5
- CVE-2026-10069A vulnerability has been found in Shibby Tomato 1.28. The im…8.7
- CVE-2026-100690Hugo versions from v0.161.0 through v0.165.0 run Node.js too…7.5
- CVE-2026-100691Hugo versions 0.75.0 through 0.165.x contain a stored cross-…5.4
- CVE-2026-100692Hugo is a static site generator. In versions after v0.123.0 …7.5
- CVE-2026-100693Hugo versions from v0.162.0 before v0.166.0 contain a case-s…8.4
- CVE-2026-100694Hugo is a static site generator. In versions from v0.56.0 th…6.1
Are you affected by CVE-2026-100689?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
