漏洞概述 漏洞名称: bypass via case-insensitive config key enables RCE 漏洞描述: 库中的 函数未能阻止 协议覆盖参数,当配置键以大写或混合大小写形式传递时。 攻击者可以通过传递 来启用 协议,从而在主机上执行任意操作系统命令。 影响范围 受影响版本: >= 3.15.0 修复版本: 3.32.3 严重程度: 高(CVSS v3 基础评分 9.8/10) 攻击向量: 网络 攻击复杂度: 低 特权要求: 无 用户交互: 无 范围: 未改变 机密性: 高 完整性: 高 可用性: 高 修复方案 修复方法: 在正则表达式中添加 标志,使其不区分大小写。 修复代码: POC 代码 测试结果 1. Vector 1 — Original CVE-2022-25912 ( , lowercase) - 结果: 已阻止 - 说明: 原始 Snyk PoC 载荷使用小写 被 正确拦截。 2. Vector 2 — Uppercase bypass ( ) - 结果: 绕过,RCE 确认 - 说明: 正则表达式 是区分大小写的。 (大写)通过检查而无错误。Git 将配置键名规范化为小写,启用 协议。注入的 shell 命令在 git 因缺少存储库流而报错之前执行。 3. Vector 3 — Real-world scenario (target: https://github.com/CodeAnt-AI/codeant-quality-gates) - 结果: 绕过,RCE 确认 - 说明: 应用程序传递用户控制的 到 。攻击者注入 并将恶意 URL 替换为预期的存储库 URL。插件未阻止大写变体;git 启用 并在应用程序检测到失败之前执行载荷。 总结 区分大小写的正则表达式 阻止 ,但未考虑大写或混合大小写变体。Git 将所有变体视为相同,由于配置键名称不敏感规范化,允许完全绕过保护。所有携带 2022 年修复的 版本均受影响。 是通过 协议由 git 子进程创建的。 以下所有情况均绕过检查: 影响 任何将用户控制的值传递给 、 、 、 或类似 方法的任何应用程序都容易受到主机上的任意命令执行。 git 协议执行任意二进制文件作为远程助手。启用 后,攻击者可以以进程用户身份运行任何操作系统命令——完全读取、写入和执行主机上的访问权限。