
إثبات مفهوم ومختبر لكشف معلومات غير مُصادَق عليه في Gitea: واجهة برمجة تطبيقات المتابعين والمراقبين (stargazers and watchers API) تكشف أسماء المستخدمين التي تخفيها نقاط نهاية الملف الشخصي.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · gitea-stargazers-hidden
Gitea 1.27.3 - Gitea
من المفترض أن يختفي المستخدمون المحدودون والخاصون من أعين الزوار المجهولين. GetInfo يعيد بالفعل 404 لهم. قوائم المتابعين تطبق بالفعل isUserVisibleToViewerCond في SQL. GetStargazers هو ربط على star بدون أي مرشح للظهور. ثم يقوم ListStargazers بتحويل الكل عبر convert.ToUser. وListSubscribers له نفس الشكل بالنسبة للمراقبين.
بدون تسجيل الدخول، يكشف JSON الخاص بمُنجّمي النجوم (stargazers) لمستودع عام عن أسماء مستخدمين يخفيها GET /users/{name}.
| ID | لا يوجد CVE بعد |
| CWE | CWE-200 |
| CVSS | متوسط: 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| المنتج | Gitea |
| المتأثر | حتى v1.27.3 (146cc3e) |
| المصادقة | بدون مصادقة |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
بدون تسجيل الدخول، قراءة مُنجّمي النجوم والمراقبين لمستودع عام ومعرفة أسماء مستخدمين يخفيها GET /users/{name}. هذا استطلاع على حسابات محدودة وخاصة أضافت نجمة أو راقبت شيئًا عامًا: أشخاص ضبطوا الظهور بحيث لا يظهرون في البحث، ثم ضغطوا على النجمة على أي حال.
إنه اسم مستخدم، وليس بريدًا إلكترونيًا، ولا قراءة لـ git خاص، ولا RCE. مقترنًا بأوراكل Follow 204 مقابل 404، يمكنك تأكيد وجود تسجيل دخول مخفي حتى عندما يعيد الملف الشخصي 404.
كان الظهور موضوعًا في موجة GHSA الخاصة بـ 1.27.3. عندما يعيد منتج 404 لملف شخصي عن قصد، يصبح السؤال التالي هو أي نقاط نهاية للقوائم لا تزال تربط user بدون ذلك الشرط. النجوم والمراقبون يفعلون ذلك.
زرعت hidstar كمحدود، وأضفت نجمة وراقبت مستودعًا عامًا، وضربت النسخة بدون رمز. GET /api/v1/users/hidstar بدون مصادقة يعيد 404. JSON الخاص بمُنجّمي النجوم بدون مصادقة يتضمن hidstar. المراقبون بدون مصادقة يتضمنون hidstar. HTML الخاص بالمتابعين بدون مصادقة لا يتضمنه. الملف الشخصي خجول. جدول النجوم ليس كذلك.
المنعطفات الخاطئة المسجلة بالفعل: GET /users/hidstar بدون مصادقة يعيد 200 (عندها يكون الظهور معطلًا تمامًا - يتطلب المختبر 404)؛ HTML الخاص بالمتابعين يسرد hidstar (هذا المسار يطبق الشرط بالفعل)؛ اعتبار 200 على /stargazers مع أسماء عامة فقط نجاحًا؛ reverse shell. مسرح. التسريب هو تسجيل الدخول المحدود في JSON.
cd lab
./run.sh
استهدف فقط http://127.0.0.1:18133. يسمح Compose بظهور public,limited,private ويترك النجوم مفعلة.
unauth-user-get status=404
unauth-stargazers status=200 stargazer-names=['hidstar']
unauth-watchers leak=True
unauth-followers-web limited-in-html=False
SUCCESS GITEA-STARGAZERS-HIDDEN
طبّق isUserVisibleToViewerCond في GetStargazers / GetRepoWatchers. يجب أن يحذف مُنجّمو النجوم والمراقبون بدون مصادقة hidstar بنفس الطريقة التي يفعلها المتابعون بالفعل.
star.go · نموذج star.go · subscriber.go · GetInfo · GetUserFollowersGNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. بدون ضمان.