{"id":"GHSA-9xx9-hw38-h2w9","kind":"vulnerability","aliases":["GHSA-9xx9-hw38-h2w9"],"related":[],"title":"Duplicate Advisory: GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand RCE)","description":"# Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-3rp5-jjmw-4wv2. This link is maintained to preserve external references.\n\n# Original Description\nGitPython before 3.1.53 fails to properly escape section names in git config files, allowing attackers to inject arbitrary configuration directives through malicious submodule names. Attackers can inject core.sshCommand or other dangerous config keys into the victim's .git/config via create_submodule or clone_from operations, achieving remote code execution when git performs ssh operations.","summary":"GitPython before 3.1.53 does not escape section names when writing git config files, so a malicious submodule name can inject arbitrary config keys such as core.sshCommand. An attacker can get code run on the machine when git performs an ssh operation.","severity":"high","cvss":7.0,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"gitpython","fixed":["3.1.53"],"affected":"<= 3.1.52","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["cwe-74","gitpython","package","python"],"not_affected_if":["gitpython-3.1.53-or-later"],"how_to_check":"Run pip show gitpython and check whether the version is 3.1.52 or lower.","fix":"Upgrade gitpython to 3.1.53 or later; this advisory is withdrawn as a duplicate, so see GHSA-3rp5-jjmw-4wv2 for the live record.","status":"withdrawn","published_at":"2026-08-03T15:32:49+00:00","first_seen_at":"2026-10-23T21:51:54+00:00","triaged_at":"2026-10-23T21:52:57+00:00","updated_at":"2026-10-23T21:52:57+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-23T21:52:57Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade gitpython to 3.1.53 or later; this advisory is withdrawn as a duplicate, so see GHSA-3rp5-jjmw-4wv2 for the live record.","reach":"unknown","impact":"high","summary":"GitPython before 3.1.53 does not escape section names when writing git config files, so a malicious submodule name can inject arbitrary config keys such as core.sshCommand. An attacker can get code run on the machine when git performs an ssh operation.","category":"package","who_cares":["python","gitpython"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Attacker runs arbitrary commands via injected core.sshCommand config","analyst_note":"","how_to_check":"Run pip show gitpython and check whether the version is 3.1.52 or lower.\nunknown\nunknown","needs_analyst":false,"not_affected_if":["gitpython-3.1.53-or-later"],"user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000477,"input_tokens":2941,"output_tokens":365,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-74':29B '3.1.53':35B,104C '3rp5':89C '4wv2':91C '9xx9':19A,24A 'achiev':147C 'advisori':2A,75C,77C 'allow':115C 'arbitrari':12A,53B,119C 'attack':60B,116C,126C 'clone':144C 'code':63B,149C 'config':6A,13A,44B,54B,113C,133C 'configur':120C 'core.sshcommand':15A,58B,129C 'creat':141C 'cwe':28B 'danger':132C 'descript':101C 'direct':14A,121C 'duplic':1A,74C,85C 'enabl':11A 'escap':38B,108C 'execut':150C 'extern':98C 'fail':105C 'file':45B,114C 'get':62B 'ghsa':18A,23A,88C 'ghsa-3rp5-jjmw-4wv2':87C 'ghsa-9xx9-hw38-h2w9':17A,22A 'git':5A,43B,69B,112C,152C 'git-config':4A 'git/config':139C 'gitpython':3A,27A,30B,33B,102C 'h2w9':21A,26A 'hw38':20A,25A 'inject':10A,52B,118C,128C 'jjmw':90C 'key':55B,134C 'link':93C 'machin':67B 'maintain':95C 'malici':48B,123C 'name':9A,40B,50B,110C,125C 'oper':73B,146C,155C 'origin':100C 'packag':31B 'perform':70B,153C 'preserv':97C 'proper':107C 'python':32B 'rce':16A 'refer':99C 'remot':148C 'run':64B 'section':8A,39B,109C 'section-nam':7A 'ssh':72B,154C 'submodul':49B,124C,142C 'via':140C 'victim':137C 'withdrawn':80C 'write':42B","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-08-03T15:32:49+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-9xx9-hw38-h2w9","url":"https://github.com/advisories/GHSA-9xx9-hw38-h2w9","severity":"high","published_at":"2026-08-03T15:32:49+00:00","modified_at":"2026-10-23T21:46:55+00:00","first_seen_at":"2026-10-23T21:51:54+00:00","fetched_at":"2026-10-23T21:51:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}