CVE-2025-54123
نظرة عامة
تنفيذ تعليمات برمجية عن بُعد بعد المصادقة في نقطة نهاية الوسيطة لواجهة برمجة التطبيقات في HoverFly بسبب عدم كفاية التحقق من المدخلات وتنفيذ أوامر غير آمن.
تسلسل الهجوم
-
المصادقة
- يصادق المهاجم على HoverFly باستخدام بيانات اعتماد صالحة أو رمز جلسة
- يحصل على رمز Bearer عبر نقطة النهاية
/api/token-auth
-
إنشاء الحمولة الخبيثة
- ينشئ المهاجم حمولة JSON تحتوي على:
binary: /bin/bash (يتحكم به المستخدم)
script: أمر شل عشوائي (مثل whoami أو شل عكسي)
-
تسليم الاستغلال
- يرسل طلب PUT إلى
/api/v2/hoverfly/middleware مع حمولة خبيثة
- يتضمن رمز Bearer في ترويسة Authorization
-
المعالجة الضعيفة
- يتلقى HoverFly الطلب ويستخرج معامِلي
binary وscript
- لا يحدث أي تحقق من المدخلات على معامل binary
- ينشئ ملف سكربت مؤقتًا بمحتوى السكربت المقدم من المستخدم
- ينفذ فورًا:
exec.Command(binary, scriptFile) أثناء التحقق من البرمجيات الوسيطة
-
تنفيذ الأكواد
- يُنفَّذ الأمر بصلاحيات عملية HoverFly
- يُعاد الإخراج في استجابة الخطأ (رمز الحالة 422)
- يمكن للمهاجم تنفيذ أوامر عشوائية أو إنشاء شل عكسي
الأسباب الجذرية
- السطر 94-96 (middleware.go): معامل binary يُقبل دون تحقق
- السطر 14-19 (local_middleware.go): binary المتحكم به من المستخدم يُمرَّر مباشرة إلى
exec.Command()
- السطر 173 (hoverfly_service.go): البرمجيات الوسيطة تُنفَّذ فورًا أثناء الاختبار
التفاصيل متاحة هنا: https://github.com/SpectoLabs/hoverfly/security/advisories/GHSA-r4h8-hfp2-ggmf