
🫖 PoC للتحقق المباشر من ثغرة RCE في Gitea CVE-2026-60004 ضد هدف واحد
أداة تحقق مباشرة وموجهة لهدف واحد لثغرة تنفيذ الأوامر عن بُعد عبر خطاف Git في
diffpatchالخاص بـ Gitea.
يحتوي هذا المستودع على أداة التحقق المركزة AfterDark: سكربت واحد، هدف واحد، تشغيل واحد. لا توجد أوامر فرعية للاكتشاف أو الاستطلاع أو التحقق أو غيرها.
يُقدَّم هذا المشروع فقط لاختبارات الأمان المصرح بها، والتحقق الدفاعي، والبحث، والتعليم. استخدمه حصريًا على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها.
المؤلفون والمساهمون غير مسؤولين عن سوء الاستخدام أو الأضرار أو انقطاع الخدمة أو فقدان البيانات أو العواقب القانونية. أنت مسؤول عن الامتثال للقوانين والعقود وقواعد الاشتباك ومتطلبات الإفصاح المعمول بها.
هذا إثبات مفهوم نشط لتنفيذ الأوامر عن بُعد. يقوم بإنشاء حساب، وإنشاء مستودع خاص، وكتابة علامة عقد، وتنفيذ أمر كمستخدم نظام التشغيل الخاص بـ Gitea. تعامل معه وفقًا لذلك. 🛡️
تؤثر CVE-2026-60004 على سير عمل diffpatch للمستودعات في Gitea. يمكن للمهاجم الذي لديه صلاحيات كتابة على المستودع تقديم محتوى تصحيح مُتحكم فيه يقوم بتثبيت وتشغيل خطاف Git، مما يؤدي إلى تنفيذ أوامر بحساب خدمة Gitea.
| العنصر | التفاصيل |
|---|---|
| المنتج | Gitea |
| الإصدارات المتأثرة | >= 1.17.0, < 1.27.1 |
| الإصدار المُصحَّح | 1.27.1 |
| التأثير | تنفيذ أوامر عن بُعد كمستخدم نظام تشغيل Gitea |
| الاستشارة الرسمية | GHSA-rcr6-4jqh-j84m |
تتطلب Forgejo والفروع الأخرى مراجعة تنفيذية يدوية ولا تُعتبر متأثرة تلقائيًا.
كل تشغيل ينفذ سير عمل واحدًا ثابتًا:
post-index-change المُصمَّم عبر diffpatch.id افتراضيًا.تقبل الأداة هدفًا واحدًا فقط. لا تحتوي على وضع قائمة أهداف أو أحرف بدل أو مسح جماعي أو اكتشاف سلبي.
PATHيستخدم السكربت مكتبة Python القياسية فقط. لا حاجة إلى pip install.
git clone https://github.com/InfoSec-DB/CVE-2026-60004-Gitea-RCE-PoC.git
cd CVE-2026-60004-Gitea-RCE-PoC
python3 scanner.py --help
python3 scanner.py \
--contract-number ENG-2026-001 \
--username audit-eng-2026-001 \
--password 'use-a-unique-disposable-password' \
https://gitea.example
الخيارات المختصرة متاحة أيضًا:
python3 scanner.py \
-c ENG-2026-001 \
-u audit-eng-2026-001 \
-p 'use-a-unique-disposable-password' \
https://gitea.example
🚨 يتم توفير كلمة المرور عبر سطر الأوامر وتظهر في لوحة النتائج النهائية. استخدم فقط بيانات اعتماد اختبار فريدة وقابلة للاستخدام مرة واحدة. كن على علم بأن وسائط سطر الأوامر قد تُحتفظ بها في سجل الصدفة أو تكون مرئية مؤقتًا لأدوات فحص العمليات المحلية.
الأمر الافتراضي هو id. يمكن توفير أمر مخصص ضيق النطاق باستخدام --cmd:
python3 scanner.py \
-c ENG-2026-001 \
-u audit-eng-2026-001 \
-p 'use-a-unique-disposable-password' \
--cmd 'uname -a' \
https://gitea.example
الأوامر المخصصة لا تحتوي على مهلة زمنية عن قصد. تنتظر أداة التحقق حتى يخرج الأمر البعيد، لذا تجنب الأوامر التفاعلية أو طويلة التشغيل ما لم يتطلب التقييم ذلك تحديدًا.
افتراضيًا، يكتب كل تشغيل تحت:
afterdark-results/<contract>/<UTC timestamp>/
يمكنك اختيار جذر مختلف أو دليل تشغيل محدد:
python3 scanner.py \
-c ENG-2026-001 \
-u audit-eng-2026-001 \
-p 'use-a-unique-disposable-password' \
--results-root ./engagement-evidence \
https://gitea.example
python3 scanner.py \
-c ENG-2026-001 \
-u audit-eng-2026-001 \
-p 'use-a-unique-disposable-password' \
--output-dir ./engagement-evidence/run-01 \
https://gitea.example
ينشئ كل تشغيل ملفات خاصة بصلاحيات 0600 ويرفض الكتابة فوق النتائج الموجودة:
confirmation.json — الهدف، نتيجة الإصدار، اسم الحساب، الطوابع الزمنية، الأمر، رمز الإرجاع، والقطع الأثرية الملتقطةconfirmation.command-output.txt — مخرجات الأوامر البعيدة الكاملةقد تحتوي الأدلة على معلومات تقييم حساسة. لا تلتزم بها في Git. يستبعد ملف .gitignore المرفق مسارات النتائج الافتراضية وأسماء ملفات الأدلة الشائعة.
لا تحذف أداة التحقق القطع الأثرية على الخادم تلقائيًا. بعد التقييم، يجب على مسؤول مصرح به:
afterdark-*/tmp/gitea-validation-<contract>/client.txt1.27.1 أو أحدثالنتيجة الناجحة تثبت تنفيذ الأوامر بحساب خدمة Gitea. لا تثبت بحد ذاتها وصول الجذر أو الثبات أو الحركة الجانبية أو اختراق المضيف الكامل.
idتختبر الاختبارات التحليل وبناء إثبات المفهوم دون إجراء طلبات شبكة:
python3 -m unittest discover -s tests -v
التحسينات التي تجعل أداة التحقق أكثر أمانًا أو موثوقية أو أسهل في التنظيف مرحب بها. لا تقدم تفاصيل أهداف حقيقية أو بيانات اعتماد أو أدلة خاصة أو حمولات مدمرة.
بالنسبة للثغرات في هذه الأداة، اتبع SECURITY.md.
مُصمَّم للتحقق الأمني الدقيق المرتبط بالعقود. 🫖🛡️