Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-3854-PoC — 通过 X-Stat 推送选项注入实现 GitHub RCE | Kitploit
工具/GitHubGitHub/lysophavin18/cve-2026-3854-poc
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHublysophavin18/cve-2026-3854-poc

CVE-2026-3854-PoC

通过 X-Stat 推送选项注入实现 GitHub RCE

查看仓库
224个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-3854 PoC — GitHub RCE via X-Stat Push Option Injection

仅用于教育和授权安全研究目的。
未经明确书面许可,请勿对任何系统使用。


概述

CVE-2026-3854 是 GitHub Enterprise Server(及 GitHub.com)git 推送管道中的一个远程代码执行漏洞。

当客户端提供推送选项(git push -o)时,GitHub 的内部 Ruby 代码会通过将每个选项值以分号作为字段分隔符拼接起来,构建一个 X-Stat 头。由于值被原样插入(未经清理),攻击者可以在推送选项中嵌入分号,向头中注入任意键值字段并覆盖安全关键设置——最终以 git 用户身份实现非沙箱 RCE。

漏洞根本原因

root@kitploit:~
X-Stat: repo_id=12345;user_id=alice;rails_env=production;...;push_option_0=<USER INPUT>

将 normal_value;rails_env=staging 作为推送选项值进行注入会变成:

root@kitploit:~
...;push_option_0=normal_value;rails_env=staging

解析器会取每个键的最后一次出现,因此 rails_env 现在为 staging(非沙箱),覆盖了先前设置的合法 production 值。


环境要求

  • Python 3.10 或更高版本(使用内置的 list[str] / dict[str, str] 类型提示)
  • 无需第三方包

使用方法

root@kitploit:~
python3 exploi-git.py

该脚本完全在内存中连续运行三个演示——无网络连接、无 shell 命令、无文件写入:

DemoWhat it shows
1覆盖 rails_env 的基本分号注入
2完整的三步概念性 RCE 链
3修复后的行为——分号被百分号编码,注入被中和

修复补丁

GitHub 通过在将推送选项值插入 X-Stat 头之前对分号进行百分号编码来修复该漏洞:

root@kitploit:~
normal_value;rails_env=staging  →  normal_value%3Brails_env=staging

这使得分号成为值的字面组成部分,从而破坏了注入。


参考资料

  • Wiz Research 博客文章
  • GitHub 安全博客
  • NVD — CVE-2026-3854

免责声明

本仓库仅用于教育目的并支持授权安全研究。作者对滥用不承担任何责任。在针对任何非您所有的系统进行测试之前,务必获得明确的书面许可。

下载工具