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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-60004-PoC — Gitea قبل الإصدار 1.27.1 يسمح بتنفيذ التعليمات البرمجية عن بُعد عبر واجهة diffpatch API من خلال تثبيت Git hook. | Kitploit
أدوات/GitHubGitHub/erberkan/cve-2026-60004-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالالمحاكاة الافتراضية للأماناختبار الاختراقالفريق الأحمرأداة الوصول عن بعد
GitHuberberkan/cve-2026-60004-poc

CVE-2026-60004-PoC

Gitea قبل الإصدار 1.27.1 يسمح بتنفيذ التعليمات البرمجية عن بُعد عبر واجهة diffpatch API من خلال تثبيت Git hook.

عرض المستودع
منذ يوم واحدلم تتم المراجعة بعد
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-60004: تنفيذ تعليمات برمجية عن بُعد عبر واجهة Gitea Diffpatch API

[!WARNING] هذا المستودع مخصص حصريًا لأبحاث الأمن المصرّح بها والاختبار المخبري المُتحكَّم به. لا تشغّل إثبات المفهوم ضد أنظمة لا تملكها أو لا تملك إذنًا صريحًا بتقييمها.

نظرة عامة

CVE-2026-60004 هو ثغرة حرجة لتنفيذ تعليمات برمجية عن بُعد في واجهة diffpatch API الخاصة بـ Gitea. يمكن لمستخدم مُصادَق عليه يملك صلاحية إنشاء مستودع أو الكتابة فيه أن يرسل رقعة (patch) مُصمَّمة تؤدي إلى إنشاء خطاف Git قابل للتنفيذ داخل مستودع bare مؤقت. وعند تفعيل الخطاف، تُنفَّذ أوامر يتحكم بها المهاجم بصلاحيات حساب خدمة Gitea.

إذا كان التسجيل العام مُفعَّلًا، فقد يتمكن مهاجم غير مُصادَق عليه من إنشاء حساب والوصول إلى النقطة النهائية المُصادَق عليها المعرّضة للثغرة.

السمةالتفاصيل
المعرّفCVE-2026-60004
الإشعارGHSA-rcr6-4jqh-j84m
الخطورةحرجة — CVSS 3.1: 9.8
نقطة الضعفCWE-94: التحكم غير السليم في توليد التعليمات البرمجية
الإصدارات المتأثرةGitea 1.17.0 حتى 1.27.0
الإصدار المُصلَّحGitea 1.27.1
الوصول المطلوبصلاحية الكتابة في المستودع
سياق التنفيذحساب نظام تشغيل Gitea
تاريخ CISA KEV2026-08-25

محتويات المستودع

الملفالوصف
gitea_diffpatch_rce.pyإثبات مفهوم يعتمد على المكتبة القياسية فقط، يقوم بالمصادقة وإنشاء مستودع خاص وإرسال الرقعة المُصمَّمة واسترجاع مخرجات الأوامر.
payload.patchرقعة نموذجية تُنشئ خطافًا قابلًا للتنفيذ باسم hooks/post-index-change.
poc.pngلقطة شاشة مُلتقطة أثناء التحقق المخبري.
README.mdملاحظات البحث الأصلية.

البيئة المُختبرة

تم التحقق من إثبات المفهوم في البيئة المعزولة التالية:

المكوّنالإعداد
Gitea1.27.0
Git2.47.2
النشرحاوية Docker باسم gitea-lab
عنوان الخدمة192.168.184.128:3000
الهوية الملاحظةuid=1000(git) gid=1000(git)

أنتج الاستغلال الناجح مخرجات أوامر مشابهة لما يلي:

root@kitploit:~
uid=1000(git) gid=1000(git) groups=1000(git)
Linux 6.12.20-amd64 x86_64
/data/gitea/tmp/local-repo/upload.git630501597
[exit-status=0]

Proof-of-concept output

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

  • Python 3.8 أو أحدث
  • وصول شبكي إلى نسخة Gitea المستهدفة
  • حساب Gitea صالح يملك صلاحيات إنشاء المستودعات والكتابة فيها، أو نسخة مخبرية مستهدفة مع تفعيل التسجيل العام
  • بيئة اختبار مُصرَّح بها صراحةً

يستخدم السكربت مكتبة Python القياسية فقط ولا يتطلب حزمًا إضافية.

الاستخدام

root@kitploit:~
python3 gitea_diffpatch_rce.py <base_url> <username> <password> "<command>"

مثال لنسخة مخبرية محلية:

root@kitploit:~
python3 gitea_diffpatch_rce.py \
  http://127.0.0.1:3000 \
  pocuser \
  'P@ssw0rd!' \
  'id; uname -a'

يحاول السكربت أولًا التسجيل عبر الويب، ثم يُصادِق باستخدام بيانات الاعتماد المُقدَّمة. وهذا يسمح للأمر نفسه بالعمل مع حساب جديد على نسخة ذات تسجيل مفتوح أو مع حساب موجود.

التحليل التقني

تتكوّن سلسلة الاستغلال من أربع مراحل:

  1. إرسال رقعة يتحكم بها المهاجم
    يقوم POST /api/v1/repos/{owner}/{repo}/diffpatch بتطبيق محتوى الرقعة المُقدَّم باستخدام git apply --index --recount --cached --binary --ignore-whitespace --whitespace=fix -3 داخل نسخة مؤقتة.

  2. وضع مسار الخطاف
    يُنشأ المستودع المؤقت كنسخة bare مشتركة. وفي مستودع bare، يكون جذر المستودع هو أيضًا $GIT_DIR؛ وبالتالي، يُحلّ مسار الرقعة hooks/post-index-change داخل دليل الخطافات النشط في Git.

  3. إنشاء الخطاف القابل للتنفيذ
    تُرسَل الرقعة نفسها مرتين. يُنتج التطبيق الثاني تعارضًا من نوع add/add، مما يؤدي إلى أن يُنشئ الاحتياط ثلاثي الاتجاهات المسار على القرص بالوضع 100755، رغم استخدام --cached. ويؤدي تحديث الفهرس اللاحق إلى استدعاء post-index-change، مُنفِّذًا شيفرة shell المُحقونة بصلاحيات حساب خدمة Gitea.

  4. استرجاع المخرجات بطريقة Git الأصلية
    يحدّد الخطاف المستودع الأصلي عبر objects/info/alternates، ويخزّن مخرجات الأوامر كـ Git blob، ويُنشئ شجرة (tree) وإيداعًا (commit)، ويُحدّث refs/heads/output-leak. ثم يسترجع إثبات المفهوم النتيجة عبر واجهة raw-file API الخاصة بـ Gitea. لا تتطلب هذه التقنية اتصالًا صادرًا مباشرًا من الهدف.

التأثير

يمنح الاستغلال الناجح تنفيذ أوامر بصلاحيات حساب خدمة Gitea. واعتمادًا على إعدادات النشر، قد يتمكن المهاجم من الوصول إلى:

  • app.ini وبيانات اعتماد قاعدة البيانات
  • SECRET_KEY وINTERNAL_TOKEN والأسرار المتعلقة بـ LFS
  • المستودعات المُثبَّتة أو القابلة للقراءة بواسطة عملية Gitea
  • متغيرات بيئة العملية
  • الخدمات الداخلية التي يمكن الوصول إليها من مضيف أو حاوية Gitea

تم التأكد من أن الحساب المخبري يملك صلاحية قراءة app.ini.

مؤشرات الاختراق

ينبغي للمدافعين التحقيق في الآثار وأنماط الطلبات التالية:

  • طلبان متطابقان أو شبه متطابقين إلى /api/v1/repos/*/*/diffpatch بتتابع سريع
  • فرع باسم output-leak
  • إيداعات منسوبة إلى poc <[email protected]>
  • ملفات قابلة للتنفيذ غير متوقعة باسم hooks/post-index-change في مستودعات bare أو أدلة النسخ المؤقتة
  • نشاط مشبوه تحت مسارات مثل /data/gitea/tmp/local-repo/upload.git*

تصف هذه المؤشرات إثبات المفهوم المُضمَّن وليست شاملة؛ فقد يستخدم استغلال مُعدَّل مسارات أو مراجع أو هويات أو قنوات مخرجات مختلفة.

المعالجة والتخفيف

  1. الترقية إلى Gitea 1.27.1 أو أحدث. هذه هي المعالجة الموصى بها. يُغيِّر الإصلاح سير العمل المتأثر لاستخدام نسخة مؤقتة غير bare.
  2. تقييد واجهة diffpatch API على الوكيل العكسي (reverse proxy) حتى اكتمال الترقية، على سبيل المثال برفض الوصول إلى مسارات /api/v1/.../diffpatch المطابقة. تحقق من القاعدة مقابل التكاملات المشروعة قبل النشر.
  3. تعطيل التسجيل العام عبر ضبط DISABLE_REGISTRATION=true إذا لم يكن مطلوبًا تشغيليًا. يقلل هذا من إمكانية الوصول غير المُصادَق عليه لكنه لا يحمي من المستخدمين الحاليين الذين يملكون صلاحية الكتابة في المستودع.
  4. مراجعة السجلات ومراجع المستودعات بحثًا عن المؤشرات المذكورة أعلاه، وتدوير بيانات الاعتماد أو الأسرار التي يمكن لحساب Gitea الوصول إليها إذا اشتبه في الاختراق.

بالنسبة لحاوية المختبر المستخدمة في هذا البحث، يمكن إجراء الإزالة عبر:

root@kitploit:~
docker rm -f gitea-lab

الاستخدام المسؤول

تُقدَّم هذه المواد لمساعدة المدافعين على إعادة إنتاج الثغرة وفهمها واكتشافها ومعالجتها. ينبغي للمشغّلين الاختبار في بيئات معزولة فقط واتباع متطلبات التصريح والإفصاح الخاصة بمؤسساتهم.

تنزيل الأداة