pfSense CE 2.9.0-DEVELOPMENT - عالية - عن بُعد - RCE - معالج OpenVPN CRLF
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-openvpn-wizard-crlf
الفئة: RCE الوصول: عن بُعد
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
يقوم معالج OpenVPN بنسخ Default Domain / NetBIOS scope إلى dns_domain / netbios_scope دون أي تحقق is_domain()، ثم يكتبها openvpn_add_dhcpopts() في ملف config.ovpn الخاص بالخادم الذي يحتوي بالفعل على script-security 3. علامة اقتباس واحدة مع LF تُغلق سطر push "dhcp-option ..." وتضيف توجيهات الخادم بما في ذلك up. الصلاحية هي Wizard Subsystem، وليست OpenVPN advanced. شقيق لـ SA-26_07، الذي سمّى فقط vpn_openvpn_server.php.
| ID | لا يوجد CVE بعد |
| الفئة | RCE |
| الوصول | عن بُعد (WebGUI مُصادَق عليه) |
| CWE | CWE-74 / CWE-78 |
| CVSS | High: 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) معالج OpenVPN |
| المصادقة | جلسة WebGUI مع page-pfsensewizardsubsystem |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبّتُ الفرع العام master 9363ac5. المختبر هو تعيين المعالج المثبّت بالإضافة إلى openvpn_add_dhcpopts، ثم OpenVPN 2.6.14 على tun0. Loopback 127.0.0.1:18820. إذا أفلت 2.9.0-RELEASE من المساعد، فهذا هو نفس SA الخاص بـ SA-26_07.
| الطريقة | نقطة الوصول | الصلاحية |
|---|---|---|
إكمال معالج OpenVPN Remote Access؛ تعيين Default Domain (أو NetBIOS scope) إلى قيمة تُغلق سطر push وتضيف up | openvpn_add_dhcpopts في config.ovpn الخاص بالخادم (openvpn.inc:697-738) مع script-security 3 (:905) | السلامة (مُثبت مختبريًا): شغّل OpenVPN 2.6.14 ذلك up على tun0 وكتب الشاهد (up-exec=yes). بقي التحكم example.com كـ DOMAIN push واحد. |
| أوامر على نفس المضيف | OpenVPN up كمستخدم الخدمة (root على pfSense) | الاستطلاع (مُستنتج): نظام ملفات المضيف، config.xml، المفاتيح. |
| إعداد OpenVPN معطوب أو أوامر على المضيف | خادم OpenVPN | التوافر (مُستنتج): تعطيل OpenVPN / الجدار الناري. |
مُثبت مختبريًا مقابل مُستنتج: تعيين المعالج، dhcpopts up، script-security 3، التحكم النظيف، و tun0 up-exec مُثبتة مختبريًا. استطلاع نظام الملفات مُستنتج من عملية up. لم يُنفَّذ نفس التسميم في كتلة CCD (ccd-up-ignored=yes).
يتطلب: جلسة WebGUI مع page-pfsensewizardsubsystem. رمز CSRF. لا يتطلب page-openvpn-server أو page-openvpn-server-advanced.
| السطح | المختبر |
|---|---|
نطاق التحكم example.com | DOMAIN push واحد، control-clean=yes |
CCD up (مجموعة OpenVPN 2.6 الفرعية) | ccd-up-ignored=yes |
| غير مُصادَق / CSRF بدون رمز | مغلق |
OpenVPN custom_options | صلاحية advanced المقصودة |
| Diagnostics: Command | يبقى مغلقًا ما لم يُمنح أيضًا |
cd lab
./run.sh
Loopback 127.0.0.1:18820. مشروع Compose pfsense-openvpn-wizard-crlf. وسم الصورة pfsense-openvpn-wizard-crlf:2.9.0-dev. الشاهد PFSENSE-OPENVPN-WIZARD-CRLF-WITNESS. السطر الأخير:
SUCCESS PFSENSE-OPENVPN-WIZARD-CRLF wizard-assign=yes dhcpopts-up=yes script-security-3=yes control-clean=yes up-exec=yes PFSENSE-OPENVPN-WIZARD-CRLF-WITNESS
is_domain() (أو إزالة CR/LF/علامات الاقتباس) على defaultdomain / nbtscope الخاصة بالمعالج قبل أن تصبح dns_domain / netbios_scope، كما يفعل IPsec mobile بالفعل. التعقيم داخل openvpn_add_dhcpopts() بحيث يُغطّى كل مستدعٍ، بما في ذلك المعالج.
9363ac5b8651a1c7a333180425ce7719070f95f9openvpn_wizard.incopenvpn.inc openvpn_add_dhcpoptsfd301381 (غير موجود في هذه الشجرة العامة)