Cyber Resilience

CVE-2023-40590

LPE in Gitpython Project Gitpython ≤ 3.1.32

Public PoCLPE
Published
28 August 2023
Modified
21 November 2024
Patch / advisory
CVSS Score v3.1 7.8
Click a component to see what it means
Raw vectorCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS Score 0.0046 38th percentile
Risk Priority 57 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2023-40590 is a high-severity Untrusted Search Path (CWE-426) vulnerability in Gitpython Project Gitpython. Its CVSS base score is 7.8 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Path Interception (T1034); ranked at the 38th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

GitPython is a python library used to interact with Git repositories. When resolving a program, Python/Windows look for the current working directory, and after that the PATH environment. GitPython defaults to use the `git` command, if a user runs GitPython…

more

from a repo has a `git.exe` or `git` executable, that program will be run instead of the one in the user's `PATH`. This is more of a problem on how Python interacts with Windows systems, Linux and any other OS aren't affected by this. But probably people using GitPython usually run it from the CWD of a repo. An attacker can trick a user to download a repository with a malicious `git` executable, if the user runs/imports GitPython from that directory, it allows the attacker to run any arbitrary commands. There is no fix currently available for windows users, however there are a few mitigations. 1: Default to an absolute path for the git program on Windows, like `C:\\Program Files\\Git\\cmd\\git.EXE` (default git path installation). 2: Require users to set the `GIT_PYTHON_GIT_EXECUTABLE` environment variable on Windows systems. 3: Make this problem prominent in the documentation and advise users to never run GitPython from an untrusted repo, or set the `GIT_PYTHON_GIT_EXECUTABLE` env var to an absolute path. 4: Resolve the executable manually by only looking into the `PATH` environment variable.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1034 Path Interception Persistence
**This technique has been deprecated.
T1574 Hijack Execution Flow Stealth
Adversaries may execute their own malicious payloads by hijacking the way operating systems run programs.
T1574.001 DLL Stealth
Adversaries may abuse dynamic-link library files (DLLs) in order to achieve persistence, escalate privileges, and evade defenses.
T1574.008 Path Interception by Search Order Hijacking Stealth
Adversaries may execute their own malicious payloads by hijacking the search order used to load other programs.
T1574.007 Path Interception by PATH Environment Variable Stealth
Adversaries may execute their own malicious payloads by hijacking environment variables used to load libraries.
T1574.009 Path Interception by Unquoted Path Stealth
Adversaries may execute their own malicious payloads by hijacking vulnerable file path references.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2024-22190Same product: Gitpython Project Gitpython
CVE-2023-41040Same product: Gitpython Project Gitpython
CVE-2023-40267Same product: Gitpython Project Gitpython
CVE-2026-44244Same product: Gitpython Project Gitpython
CVE-2026-44243Same product: Gitpython Project Gitpython
CVE-2026-42215Same product: Gitpython Project Gitpython
CVE-2026-42284Same product: Gitpython Project Gitpython
CVE-2023-22743Shared CWE-426
CVE-2024-41865Shared CWE-426
CVE-2024-45281Shared CWE-426

Affected Assets

gitpython project
gitpython
≤ 3.1.32

Mitigating Controls

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-05 full match
prevents

Preventing execution of unauthorized code directly blocks the malicious binaries that an untrusted search path would load.

PR.PS-06 mostly match
prevents

Secure development practices include avoiding or sanitizing externally influenced search paths in application code.

PR.PS-01 partial match
prevents

Hardened configuration baselines can enforce safe search paths and restrict environment variables that enable the weakness.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing can discover search-path issues but does not itself prevent them in production code.

degrades

Restricting software installation reduces the chance that untrusted binaries or libraries are placed in search paths.

prevents

Secure architecture principles include hard-coded or validated search paths and avoiding reliance on untrusted directories.

prevents

Secure coding standards require absolute paths or integrity-checked search paths, directly mitigating CWE-426.

References