Bug 2517356

Summary: CVE-2026-44244 GitPython: GitPython: Arbitrary code execution via injected newlines in Git configuration [fedora-44]
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: 44CC: athoscribeiro, carlwgeorge, code, igor.raits, lsedlar
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["9327528c-58d0-419b-9b9a-3fd38454d6ea"]}
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-08-17 12:16:07 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: 2467804    

Description Yadnyawalk Tale 2026-08-17 11:01:47 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. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.

Comment 1 Ben Beasley 2026-08-17 12:16:07 UTC
Previously fixed in https://bodhi.fedoraproject.org/updates/FEDORA-2026-8e8273f18f.

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