Skip to content
Fencer Intel
medium 5.9

CVE-2026-100689 json

GitPython before 3.1.62 Path Traversal via gitmodules path

published last mo. modified last mo. also EUVD-2026-87662 , GHSA-59cr-6r3x-644w

cvss
5.9
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 34%
public exploits
0
none known

Summary

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.

Patch / fix

  • pypi gitpython 3.1.62
  • gitpython-developers GitPython 3.1.62
  • python-git Debian 12 3.1.30-1+deb12u3
  • python-git Debian 13 3.1.44-1+deb13u1
  • python-git Debian 14 3.1.62-1

debian advisories DEBIAN-CVE-2026-100689

  • python-GitPython openSUSE Tumbleweed 3.2.0-1.1

opensuse advisories openSUSE-SU-2026:11971-1

Is CVE-2026-100689 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-100689 updated cvss 5.9

GitPython: GitPython: Directory traversal via untrusted submodule path

  • Red Hat Exploit Intelligence exploit-intelligence/vulnerability-analysis-rhel9 Red Hat Migration Toolkit for Applications 8 mta/mta-solution-server-rhel9
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat AI Inference Server rhaiis/vllm-cpu-rhel9, rhaiis/vllm-tpu-rhel9
    affected: workaround, no fix available “Fix deferred”
  • Red Hat Ansible Automation Platform 2 python-gitpython 3.1.40-1.el9ap, python3x-gitpython 3.1.40-1.el8ap, python3.11-gitpython 3.1.41-1.el9ap, python3.12-gitpython 3.1.60-1.el9ap, automation-controller 4.7.17-1.el9ap, ansible-automation-platform-24/hub-rhel8, +7 more
    affected: workaround, no fix available, no fix planned “Out of support scope”
  • Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-gaudi-rhel9, rhelai3/disk-image-cuda-rhel9 Red Hat OpenShift AI (RHOAI) rhoai/odh-mlflow-rhel9, rhoai/odh-feature-server-rhel9, rhoai/odh-th-torch-cpu-py312-rhel9, rhoai/odh-th-torch-cuda-py312-rhel9, rhoai/odh-th-torch-rocm-py312-rhel9, rhoai/odh-th06-cpu-torch210-py312-rhel9, +23 more
    affected: workaround, no fix available “Fix deferred”
  • Red Hat OpenStack Platform 13 (Queens) GitPython 1.0.1-5.el7ost Red Hat OpenStack Platform 16.2 python3-GitPython, rhosp-rhel8/openstack-mistral-api, rhosp-rhel8/openstack-mistral-base, rhosp-rhel8/openstack-tripleoclient, rhosp-rhel8/openstack-mistral-engine, rhosp-rhel8/openstack-nova-scheduler, +2 more Red Hat OpenStack Platform 17.1 python3-GitPython, GitPython 1.0.1-5.el7ost, rhosp-rhel9/openstack-tripleoclient
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat Satellite 6 satellite/iop-vmaas-rhel9, python-gitpython 3.1.40-1.el9ap, python3.12-gitpython 3.1.60-1.el9ap, satellite/iop-vulnerability-engine-rhel9
    affected: workaround, no fix available “Fix deferred”
  • Red Hat Hardened Images rust 1.98.1-1.hum1, llvm21 21.1.8-10.hum1, swift-lang 6.4.0-0.5.hum1
    not affected: component not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
last mo.

Exploit prediction

0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-09).

CVSS scores

assigned by version score vector
CNA 4.0 8.7 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
CNA 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:L
CNA 4.0 8.7 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Affected packages

ecosystem package affected fixed in
pypi gitpython
<3.1.62
3.1.62

Affected products

  • gitpython-developers GitPython

Classification

Weakness
  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory
  • CWE-73 External Control of File Name or Path

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.