CVE-2026-42215GitPython是一个用于与Git仓库交互的Python库。在3.1.30至3.1.47之前的版本中存在安全绕过漏洞。尽管该库默认阻止了危险的Git选项,但攻击者可以通过特定的Python kwargs绕过安全检查。如果应用将攻击者控制的参数传递给特定函数,可能导致任意命令执行。
GitPython旨在通过过滤特定标志(如`--upload-pack`和`--receive-pack`)来缓解命令注入风险。然而,该库实现存在逻辑缺陷,它仅检查了显式的命令行字符串参数,却忽略了可以通过Python关键字参数(kwargs)传递等效配置。具体来说,`upload_pack`和`receive_pack`这两个kwargs可以直接映射到底层Git命令的危险选项中。如果开发者编写的代码允许用户输入通过kwargs流入`Repo.clone_from()`、`Remote.fetch()`、`Remote.pull()`或`Remote.push()`等API,攻击者即使未开启`allow_unsafe_options`,也能利用该绕过漏洞注入并执行任意系统命令,从而完全控制服务器。