p PatchFirst

CVE-2026-87817

CVE-2026-87817 · GitPython before 3.1.60 Remote Code Execution via Git Directory Impersonation

This page contains facts from public vulnerability sources. Check the original advisory before updating.

GitPython before 3.1.60 fails to properly validate the git directory location, allowing attackers to impersonate the git directory using tracked files like gitdir, commondir, and HEAD. Attackers can execute arbitrary code by placing a malicious pre-commit hook in the tracked hooks directory that executes when a victim calls index.commit() on a cloned or opened repository.

CVSS 8.7 · High · EPSS 0.4% · Public exploit · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • gitpython

    Versions
    • ≥ 0, < 3.1.60: Affected (semver)
    • 3.1.60: Not affected (semver)

    Update to 3.1.60

  • python-git Debian:12

    Versions
    • 3.1.30-1
    • 3.1.30-1+deb12u2
    • 3.1.36-1
    • 3.1.37-1
    • 3.1.37-2
    • 3.1.37-3
    • 3.1.44-1
    • 3.1.45-1
    • 3.1.46-1
    • 3.1.50-1
    • 3.1.61-1
    • 3.1.62-1
    • 3.1.62-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Debian:13

    Versions
    • 3.1.44-1
    • 3.1.45-1
    • 3.1.46-1
    • 3.1.50-1
    • 3.1.61-1
    • 3.1.62-1
    • 3.1.62-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Debian:14

    Versions
    • 3.1.44-1
    • 3.1.45-1
    • 3.1.46-1
    • 3.1.50-1
    Affected ranges
    • ECOSYSTEM: < 3.1.61-1

    Update to 3.1.61-1

  • gitpython PyPI

    Versions
    • 0.1.7
    • 0.2.0-beta1
    • 0.3.0-beta1
    • 0.3.0-beta2
    • 0.3.1-beta2
    • 0.3.2
    • 0.3.2.1
    • 0.3.2.RC1
    • 0.3.3
    • 0.3.4
    • 0.3.5
    • 0.3.6
    • 0.3.7
    • 1.0.0
    • 1.0.1
    • 1.0.2
    • 2.0.0
    • 2.0.1
    • 2.0.2
    • 2.0.3
    • 2.0.4
    • 2.0.5
    • 2.0.6
    • 2.0.7
    • 2.0.8
    • 2.0.9
    • 2.0.9.dev0
    • 2.0.9.dev1
    • 2.1.0
    • 2.1.1
    • 2.1.10
    • 2.1.11
    • 2.1.12
    • 2.1.13
    • 2.1.14
    • 2.1.15
    • 2.1.2
    • 2.1.3
    • 2.1.4
    • 2.1.5
    • 2.1.6
    • 2.1.7
    • 2.1.8
    • 2.1.9
    • 3.0.0
    • 3.0.1
    • 3.0.2
    • 3.0.3
    • 3.0.4
    • 3.0.5
    • 3.0.6
    • 3.0.7
    • 3.0.8
    • 3.0.9
    • 3.1.0
    • 3.1.1
    • 3.1.10
    • 3.1.11
    • 3.1.12
    • 3.1.13
    • 3.1.14
    • 3.1.15
    • 3.1.16
    • 3.1.17
    • 3.1.18
    • 3.1.19
    • 3.1.2
    • 3.1.20
    • 3.1.22
    • 3.1.23
    • 3.1.24
    • 3.1.25
    • 3.1.26
    • 3.1.27
    • 3.1.28
    • 3.1.29
    • 3.1.3
    • 3.1.30
    • 3.1.31
    • 3.1.32
    • 3.1.33
    • 3.1.34
    • 3.1.35
    • 3.1.36
    • 3.1.37
    • 3.1.38
    • 3.1.4
    • 3.1.40
    • 3.1.41
    • 3.1.42
    • 3.1.43
    • 3.1.44
    • 3.1.45
    • 3.1.46
    • 3.1.47
    • 3.1.48
    • 3.1.49
    • 3.1.5
    • 3.1.50
    • 3.1.51
    • 3.1.52
    • 3.1.53
    • 3.1.54
    • 3.1.55
    • 3.1.56
    • 3.1.57
    • 3.1.58
    • 3.1.59
    • 3.1.6
    • 3.1.7
    • 3.1.8
    • 3.1.9
    Affected ranges
    • ECOSYSTEM: < 3.1.60

    Update to 3.1.60

  • python-git Ubuntu:Pro:14.04:LTS

    Versions
    • 0.3.2~RC1-2
    • 0.3.2~RC1-3
    • 0.3.2~RC1-3ubuntu0.1~esm1
    • 0.3.2~RC1-3ubuntu0.1~esm2
    • 0.3.2~RC1-3ubuntu0.1~esm3
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Ubuntu:Pro:16.04:LTS

    Versions
    • 1.0.1+git137-gc8b8379-1
    • 1.0.1+git137-gc8b8379-2
    • 1.0.1+git137-gc8b8379-2.1
    • 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm1
    • 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm2
    • 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Ubuntu:Pro:18.04:LTS

    Versions
    • 2.1.5-1
    • 2.1.6-1
    • 2.1.7-1
    • 2.1.8-1
    • 2.1.8-1ubuntu0.1~esm1
    • 2.1.8-1ubuntu0.1~esm2
    • 2.1.8-1ubuntu0.1~esm4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Ubuntu:Pro:20.04:LTS

    Versions
    • 2.1.11-1
    • 3.0.4-1
    • 3.0.5-1
    • 3.0.7-1
    • 3.0.7-1ubuntu0.1~esm1
    • 3.0.7-1ubuntu0.1~esm2
    • 3.0.7-1ubuntu0.1~esm4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Ubuntu:Pro:22.04:LTS

    Versions
    • 3.1.14-1
    • 3.1.23-1
    • 3.1.24-1
    • 3.1.24-1ubuntu0.1~esm1
    • 3.1.24-1ubuntu0.1~esm2
    • 3.1.24-1ubuntu0.1~esm3
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Ubuntu:Pro:24.04:LTS

    Versions
    • 3.1.30-1
    • 3.1.37-1
    • 3.1.37-3
    • 3.1.37-3ubuntu0.1~esm2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-git Ubuntu:Pro:26.04:LTS

    Versions
    • 3.1.44-1
    • 3.1.45-1
    • 3.1.46-1
    • 3.1.46-1ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →