CVE-2026-44244GitPython是一个用于与Git仓库交互的Python库。在3.1.49版本之前,GitConfigParser.set_value()方法未对换行符进行验证,允许攻击者注入恶意配置。通过构造特殊 payload,攻击者可利用换行和缩进绕过限制,篡改core.hooksPath,导致在执行commit等Git操作时执行任意脚本。
该漏洞的核心在于GitPython在处理配置值时未过滤换行符。set_value()接收的值被传递给configparser,而内部的_write()方法会将换行符(\n)转换为缩进换行(\n\t)。由于Git将缩进的[core]视为有效的节头,攻击者可以构造形如“val\n\t[core]\n\thooksPath=/tmp/evil”的输入。这会将.git/config中的hooksPath重定向至攻击者控制的目录。当用户触发commit、merge或checkout时,Git将执行该目录下的恶意脚本,从而实现本地代码执行。