Bug 2517357

Summary: CVE-2026-42215 GitPython: GitPython: Arbitrary command execution due to bypass of dangerous Git option checks [fedora-43]
Product: [Fedora] Fedora Reporter: Yadnyawalk Tale <ytale>
Component: GitPythonAssignee: Lubomír Sedlář <lsedlar>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 43CC: athoscribeiro, carlwgeorge, code, igor.raits, lsedlar
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["4bb77853-a213-4f3f-bd6e-b86bc373e02e"]}
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-08-17 11:49:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2467802    

Description Yadnyawalk Tale 2026-08-17 11:05:15 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

GitPython is a python library used to interact with Git repositories. From version 3.1.30 to before version 3.1.47, GitPython blocks dangerous Git options such as --upload-pack and --receive-pack by default, but the equivalent Python kwargs upload_pack and receive_pack bypass that check. If an application passes attacker-controlled kwargs into Repo.clone_from(), Remote.fetch(), Remote.pull(), or Remote.push(), this leads to arbitrary command execution even when allow_unsafe_options is left at its default value of False. This issue has been patched in version 3.1.47.

Comment 1 Ben Beasley 2026-08-17 11:49:10 UTC
Previously fixed in https://bodhi.fedoraproject.org/updates/FEDORA-2026-7dfa949ea9.

This issue didn’t need to be filed because a simple version-number check could have confirmed that the fix had been shipped.