Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
gitea-user-keys-idor — إثبات مفهوم ومختبر لثغرة Gitea IDOR (CWE-639) في GET /api/v1/user/keys/{id}، تتيح لرمز read:user الموثّق تعداد مفاتيح SSH ومفاتيح النشر الخاصة بمستخدمين آخرين. | Kitploit
أدوات/GitHubGitHub/abraxas/gitea-user-keys-idor
تحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الويباختبار الاختراقأمن واجهات برمجة التطبيقاتمختبرات وتدريب عملي
GitHubabraxas/gitea-user-keys-idor

gitea-user-keys-idor

إثبات مفهوم ومختبر لثغرة Gitea IDOR (CWE-639) في GET /api/v1/user/keys/{id}، تتيح لرمز read:user الموثّق تعداد مفاتيح SSH ومفاتيح النشر الخاصة بمستخدمين آخرين.

عرض المستودع
6منذ 15 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - gitea-user-keys-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-user-keys-idor

gitea-user-keys-idor

Gitea 1.27.3 - Gitea

GET /api/v1/user/keys/{id} يقع في مجموعة المستخدم الحالي (reqToken، rejectPublicOnly). لا يزال المعالج يحمّل السجل بواسطة المعرّف الرقمي دون أي تحقق من المالك. الجدول نفسه يحتوي على مفاتيح المستخدمين، ومفاتيح النشر، والهويات. نظير GPG يفعلها بشكل صحيح: GetGPGKeyForUserByID(ctx, ctx.Doer.ID, id). الحقول الخاصة محمية. أما مادة المفتاح العام، والعنوان، والبصمة فليست كذلك. المعرّفات متسلسلة.

رمز read:user يتنقل عبر 1، 2، 3 ويحصي مفاتيح SSH ومفاتيح النشر الخاصة بالآخرين. التسجيل المفتوح يجعل من ذلك ثغرة حساب جديد.

IDلا يوجد CVE بعد
CWECWE-639
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProductGitea
Affectedحتى v1.27.3 (146cc3e)
Authمصادَق عليه (رمز read:user)
LicenseGNU Affero GPL v3.0
Lab127.0.0.1 فقط

ما يمكن للمهاجم فعله

التسجيل (التسجيل المفتوح افتراضيًا)، وإنشاء رمز read:user، والتنقل عبر /api/v1/user/keys/{id}. يحصلون على العناوين، والبصمات، ومادة المفتاح العام لمفاتيح لا يملكونها، بما في ذلك مفاتيح النشر. لا يحصلون على المفتاح الخاص. لا يحصلون على shell. يحصون من لديه صلاحية الوصول إلى ماذا.

كانت ثغرة GHSA الخاصة بالمفاتيح في 1.27.3 عبارة عن قائمة محددة بنطاق اسم المستخدم بالإضافة إلى individualPermsChecker. لم يكن هذا هو هذا الاستعلام.

من نفس الإصدار: git HTTP redirect SSRF.

كيف وجدتها

أغلق الإصدار v1.27.3 موجة GHSA لعام 2026. جلست على ذلك الإصدار على أي حال وقرأت معالج مفاتيح المستخدم الحالي بجانب GPG. GPG يعيد 404 لمعرّف غريب. SSH لا يفعل ذلك.

seed.sh يزرع عنوان مفتاح الضحية GHSA-GITEA-KEY-IDOR-WITNESS ومفتاح مهاجم. قائمة المهاجم الخاصة لا تحتوي على الشاهد. GET /user/keys/1 بصفت المهاجم تحتوي عليه. GPG مع معرّف غريب يعيد 404. هذه هي الحجة كاملة.

المنعطفات الخاطئة مسجلة بالفعل: اعتبار قائمة المهاجم الخاصة هي التسريب (ليست كذلك - القائمة محددة النطاق، أما GET-by-id فليس كذلك)؛ reverse shell. مسرحية.

أخطاء العميل تبدو كأخطاء المنتج. مساعد يحجب http.client لا يرسل أي حزمة أبدًا. .recv() على HTTPResponse ليس .read(). أذكر ذلك مرة واحدة لأنه كلف وقتًا وبدا، لدقيقة، وكأن 1.27.3 قد أنهى المهمة.

المختبر

cd lab
./run.sh

استهدف فقط http://127.0.0.1:18101.

add-key user=victim status=201 title=GHSA-GITEA-KEY-IDOR-WITNESS id=1
add-key user=attacker status=201 id=2
attacker-list status=200 ids=[2] (no witness)
get id=1 status=200 snippet contains GHSA-GITEA-KEY-IDOR-WITNESS
SUCCESS Gitea #1 user/keys IDOR

الإصلاح

404 إلا إذا كان key.OwnerID == ctx.Doer.ID (أو مسؤول الموقع). ارفض أنواع deploy/principal. طابق GPG.

المراجع

  • github.com/go-gitea/gitea tag v1.27.3
  • GetPublicKey
  • قريب مُرقّع (ليس هذا الاستعلام): CVE-2026-60004 · CVE-2026-59774
  • نفس الإصدار: gitea-git-redir-ssrf
  • CWE-639

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. لا ضمان.

تنزيل الأداة