
pfSense CE 2.9.0-DEVELOPMENT - عالية - عن بُعد - RCE - L2TP RADIUS mpd.conf
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-l2tp-radius-mpd
الفئة: تنفيذ تعليمات عن بُعد (RCE) الوصول: عن بُعد
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
يقوم vpn.inc بإدراج "{$radiussecret}" بين علامتي اقتباس لكن دون تهريب. يستخدم عميل PPP الدالة get_mpd_str()؛ بينما لا تفعل الخوادم ذلك. سكربت up-script الإضافي لـ set iface هو من يفوز. المشكلة #16128 تخص العميل فقط.
| المعرّف | لا يوجد 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-vpn-vpnl2tp (sibling page-services-pppoeserver-edit) |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبّتت الفرع العام الرئيسي 9363ac5. المختبر عبارة عن PHP gadget لنقطة الوصول المثبّتة، مع HTTP عبر loopback على 127.0.0.1:18960.
مقال السلسلة: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| الطريقة | نقطة الوصول | الصلاحية |
|---|---|---|
| POST vpn_l2tp.php radius secret | vpn.inc set radius server ... "{$radiussecret}" | السلامة: مُثبت مختبريًا: سرّ إغلاق علامة الاقتباس أضاف set iface up-script؛ ونفّذه stub mpd بأسلوب last-wins وكتب الشاهد. get_mpd_str غائبة في هذا المسار. |
| نفس البقايا | نفس نقطة الوصول | الاستطلاع: مُستنتج: يعمل up-script بصلاحيات root في جلسة L2TP التالية. |
| نفس البقايا | نفس نقطة الوصول | التوافر: مُستنتج: تعطيل تحليل mpd / خدمة VPN. |
يتطلب: page-vpn-vpnl2tp (sibling page-services-pppoeserver-edit). حماية CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحيات root.
يتطلب: page-vpn-vpnl2tp (sibling page-services-pppoeserver-edit). حماية CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحيات root. حماية CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحيات root.
عميل PPP يستخدم get_mpd_str بالفعل على هذا الإصدار المثبّت. سرّ CONTROL لا يكتب الشاهد.
لا يوجد Diagnostics: Command إلا إذا مُنحت تلك الصفحة أيضًا.
cd lab
./run.sh
Loopback 127.0.0.1:18960. مشروع Compose pfsense-l2tp-radius-mpd. الشاهد PFSENSE-L2TP-RADIUS-MPD-WITNESS. Loopback فقط: 127.0.0.1:18960. مشروع Compose pfsense-l2tp-radius-mpd. الشاهد PFSENSE-L2TP-RADIUS-MPD-WITNESS. PHP gadget للأسطر المثبّتة. يتم تفكيك الحزمة بعد التشغيل.
السطر الأخير:
SUCCESS PFSENSE-L2TP-RADIUS-MPD control-quoted-secret=1 control-extra-up-script=no control-witness=no trigger-extra-up-script=yes trigger-last-wins=yes trigger-witness=yes get_mpd_str=no PFSENSE-L2TP-RADIUS-MPD-WITNESS
مرّر أسرار RADIUS عبر get_mpd_str عند تهيئة خادم L2TP وPPPoE.
9363ac5b8651a1c7a333180425ce7719070f95f9