2026年3月4日,Wiz安全研究团队向GitHub提交了一份重磅漏洞报告——一个编号为CVE-2026-3854的严重命令注入漏洞,攻击者只需执行一次简单的git push操作,就能在GitHub服务器上实现远程代码执行(RCE)。该漏洞影响范围极广,涵盖GitHub企业云服务(含数据驻留版、企业托管用户版)以及GitHub Enterprise Server全系列产品。
GitHub官方安全公告将其定性为“特殊元素不当中和漏洞”,攻击者只要持有代码仓库的推送权限,就能利用该漏洞在目标服务器上执行任意命令。问题根源在于GitHub内部服务在处理用户提交的git push选项时,未对输入进行充分净化,直接将其嵌入到内部服务通信的元数据头中。由于内部协议使用的分隔符可被用户输入操控,攻击者因此能够构造恶意push选项,向协议注入额外的元数据字段,诱使下游服务把恶意内容当成可信数据处理。
攻击原理:内部协议信任链的崩塌
当开发者执行git push时,GitHub后台多个服务会通过内部协议交换操作元数据。该漏洞的致命之处体现在三个环节:
- 输入未净化:用户提交的push选项值未经过滤就被嵌入到内部服务头中
- 分隔符滥用:攻击者利用分隔符注入额外字段,篡改内部通信内容
- 信任链断裂:下游服务默认信任内部元数据,从而执行恶意指令
Wiz团队披露的攻击链显示,攻击者可以通过以下步骤实现完整的远程代码执行:
- 注入
rails_env字段,绕过沙箱保护,强制钩子程序在不安全模式下运行
- 重定向钩子目录,利用路径遍历执行任意文件
- 以git服务用户身份运行命令,获取系统完全控制权,包括文件系统访问和内部配置修改
在GitHub.com的多租户环境中,攻击者还能通过注入enterprise-mode标志,绕过自定义钩子禁用限制,在共享存储节点上执行代码,理论上可访问数百万个仓库的数据。
修复与影响:两小时紧急响应,88%实例仍暴露风险
GitHub安全团队展现了惊人的响应速度,在漏洞报告提交后2小时内就完成了修复,并发布了企业服务器版本的安全补丁。修复措施主要是对用户输入进行严格净化,阻断分隔符注入路径。
已确认的安全版本包括:
- GitHub Enterprise Server 3.14.24
- 3.15.19
- 3.16.15
- 3.17.12
- 3.18.6
- 3.19.3
然而,Wiz团队的监测数据显示,截至报告发布时,88%的GitHub企业服务器实例仍未升级,处于高风险状态。值得庆幸的是,GitHub官方调查确认,该漏洞在修复前仅被研究人员用于测试,未发现真实世界中的利用案例,也未造成用户数据泄露。
这次漏洞发现引出了两个值得关注的技术趋势:
- AI驱动漏洞挖掘:Wiz团队透露,该漏洞是通过AI工具在GitHub闭源代码中发现的,这标志着漏洞挖掘技术正从人工审计向智能分析转变
- 内部协议安全隐患:漏洞揭示了复杂系统内部服务间数据流转的安全风险——当多种语言编写的服务通过共享协议传递数据时,每个服务对数据的假设都可能成为攻击面
GitHub安全团队提醒,企业应立即升级受影响系统,并加强对用户可控数据在内部协议中流转的安全防护,避免类似信任链断裂问题重演。
资讯来源:Wiz Security Research & GitHub Security Advisory
本文由云栈社区整理发布。
|