Advisory · CVE-2026-110858
GitPython pull flaw turns a crafted refspec into command execution
GitPython from 3.1.30 before 3.2.0 checks unsafe pull options only in keyword arguments, letting a positional refspec carry an upload-pack option into command execution. CVSS 3.1 8.1, CVSS 4.0 9.2.
- Vendor
- GitPython
- Product
- GitPython
- Identifier / CWE
- CVE-2026-110858
CWE-88 - Action timing
- Immediate
Explain it like I’m five
The guard checks the labelled pockets but not the parcel, so a command option rides through in the parcel.
- 01Pull called with attacker refspec
An application calls Remote.pull with a refspec an attacker controls.
- 02Guard misses position
The unsafe-option guard inspects keyword arguments, not the positional refspec.
- 03Option smuggled in
The refspec carries an upload-pack option into the underlying git command.
- 04Commands execute
Operating system commands run as the calling process over local-path or SSH transports.
What happened
The GitHub advisory for GitPython describes command execution in releases from 3.1.30 before 3.2.0 in Remote.pull. Its unsafe-option guard inspects only keyword arguments and not the positional refspec.
An attacker controlling the refspec can supply an upload-pack option and execute operating system commands as the calling process over local-path or SSH transports.
What to do
- Inventory applications that call GitPython Remote.pull with user or repository controlled refspecs.
- Upgrade GitPython to 3.2.0 or later using the project advisory guidance.
- Stop passing untrusted refspecs to pull operations until the upgrade is complete.
- Review process and git logs for pull operations containing upload-pack options or unexpected child processes.
- Verify the deployed library version and check credentials available to affected processes if abuse is suspected.
Management note
Library RCE flaws matter most where automation pulls from less trusted remotes. Upgrade, then look at what the calling process could reach with its credentials.