PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-114145 gitpython-developers CVE debrief

GitPython clones a submodule into the repo's own `.git` directory before validating the path, allowing for code execution if the submodule's path is set to `.git/hooks`. This vulnerability affects GitPython installations that use submodules, particularly in environments where submodules are utilized, enabling attackers to execute code on the next Git operation (e.g., checkout). Defenders should assess exposure and prioritize remediation, focusing on updating GitPython to version 3.2.1 or later. The vulnerability stems from the `create_submodule` function, which clones a submodule into the repository's `.git` directory before validating the path. This allows for code execution if a

Vendor
gitpython-developers
Product
gitpython
CVSS
HIGH 7.5
CISA KEV
Not listed in stored evidence
Original CVE published
2026-10-22
Original CVE updated
2026-10-22
Advisory published
2026-10-22
Advisory updated
2026-10-22

Who should care

Defenders responsible for GitPython installations, especially in environments where submodules are used, should assess exposure and prioritize remediation. This includes verifying if GitPython is used, checking for vulnerable versions (<= 3.2.0), and updating to version 3.2.1 or later. Additionally, defenders should review compensating controls, monitor for suspicious activity, and track exceptions and retest remediated assets.

Why it matters

CVE-2026-114145 allows for code execution in GitPython installations that use submodules, requiring defenders to verify exposure and remediate vulnerable installations.

  • Code execution on the next Git operation (e.g., checkout).
  • Potential for unauthorized code execution in environments where submodules are used.
  • Need for verification of exposure and remediation of vulnerable GitPython installations.
  • Priority for updating GitPython to version 3.2.1 or later.

Technical summary

The `create_submodule` function in GitPython clones a submodule into the repository's `.git` directory before validating the path. This allows for code execution if the submodule's path is set to `.git/hooks`, as a file named `post-checkout` in the submodule becomes an executable `.git/hooks/post-checkout`. On GitPython versions 3.2.0 and earlier, the later index check raises a `ValueError` only after the clone has already written to disk, and it does not remove the planted hook. On version 3.1.x, there is no such check, and the call succeeds silently. Either way, the hook runs on the next Git operation (e.g., checkout), giving code execution. The vulnerability breaks the 'validate before mutation' invariant,

Defensive priority

Defenders should prioritize verifying exposure and remediating vulnerable GitPython installations, especially in environments where submodules are used.

Recommended defensive actions

  • Verify if GitPython is used in the environment and if submodules are utilized.
  • Check if the installed version of GitPython is vulnerable (<= 3.2.0).
  • Update GitPython to version 3.2.1 or later.
  • Monitor GitPython installations for suspicious activity.
  • Review compensating controls for exposed systems while remediation is scheduled and verified.
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented.
  • Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up.

Evidence notes

The source corpus provides details on the vulnerability, including a summary and technical details. However, it does not provide information on exploitation or affected versions beyond the vulnerable range.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-114145 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-114145

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-114145 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-114145

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • GitPython validates a submodule's ".git" path only after cloning into it (RCE)

    Unverified legacy reference

    URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-83vg-56qc-22m7.json

    osv_dev

  • Source reference

    Unverified legacy reference

    URL: https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-83vg-56qc-22m7

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/gitpython-developers/GitPython/pull/2264

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/gitpython-developers/GitPython/commit/97eadb888d2f99567e3113f4e455be4ca128f697

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/gitpython-developers/GitPython

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/gitpython-developers/GitPython/releases/tag/3.2.1

    Supplemental source

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.