
pfSense CE 2.9.0-DEVELOPMENT - عالية - عن بُعد - RCE - منطقة IPv6 إلى dpinger
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-gw-ipv6-zone
الفئة: RCE الوصول: عن بُعد
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
تقوم is_ipaddrv6() بإزالة %zone من أجل Net_IPv6::checkIPv6 ولا تتحقق أبدًا من مجموعة الأحرف في zone. تقوم start_dpinger بإدراج {$gateway['monitor']} في mwexec دون escapeshellarg. النسخ الفارغ من monitor ينسخ عنوان IP الخاص بالبوابة.
| المعرّف | لا يوجد CVE بعد |
| الفئة | RCE |
| الوصول | عن بُعد (WebGUI مُصادَق عليه ما لم يُذكر خلاف ذلك) |
| CWE | CWE-78 |
| CVSS | مرتفع: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| المنتج | pfSense CE |
| المتأثر | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| المصادقة | جلسة WebGUI مع page-system-gateways-editgateway then apply |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
قمت بتثبيت master العام 9363ac5. المختبر عبارة عن PHP gadget الخاص بالـ sink المثبّت، HTTP عبر loopback على 127.0.0.1:18930.
مقال السلسلة: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| الطريقة | الـ Sink | الصلاحية |
|---|---|---|
| POST system_gateways_edit.php gateway/monitor IPv6%zone | start_dpinger mwexec {$gateway['monitor']} | السلامة: مُثبت مختبريًا: fe80::1%eth0;w لا يزال يمر عبر is_ipaddrv6؛ mwexec /bin/sh -c نفّذ w إضافيًا. |
| نفس الثغرة المتبقية | نفس الـ sink | الاستطلاع: مُستنتج: يمكن لـ root shell قراءة ملفات المضيف. |
| نفس الثغرة المتبقية | نفس الـ sink | التوافر: مُستنتج: إيقاف أو استبدال مراقبة dpinger. |
يتطلب: page-system-gateways-editgateway then apply. CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root.
يتطلب: page-system-gateways-editgateway then apply. CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root. CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root.
اسم البوابة هو is_validaliasname. غير مُصادَق عليه: لا ينطبق.
لا يوجد Diagnostics: Command ما لم تُمنح تلك الصفحة أيضًا.
cd lab
./run.sh
Loopback 127.0.0.1:18930. مشروع Compose pfsense-gw-ipv6-zone. الشاهد PFSENSE-GW-IPV6-ZONE-WITNESS. Loopback فقط: 127.0.0.1:18930. مشروع Compose pfsense-gw-ipv6-zone. الشاهد PFSENSE-GW-IPV6-ZONE-WITNESS. PHP gadget الخاص بالأسطر المثبّتة. يتم تفكيك الـ stack بعد التشغيل.
السطر الأخير:
SUCCESS PFSENSE-GW-IPV6-ZONE control-no-extra=yes trigger-extra-exec=yes PFSENSE-GW-IPV6-ZONE-WITNESS
تحقق من مجموعة أحرف zone. استخدم escapeshellarg على monitor قبل mwexec. يُفضّل استخدام مصفوفات argv.
9363ac5b8651a1c7a333180425ce7719070f95f9