
pfSense CE 2.9.0-DEVELOPMENT - عالي - عن بُعد - RCE - wireless clone ifconfig
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-wireless-clone
الفئة: RCE الوصول: عن بُعد
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
يقوم interfaces_wireless_edit.php بتخزين $_POST['if'] دون قائمة سماح. تقوم interface_wireless_clone بإدراج interface_get_wireless_base($wlcfg['if']) داخل exec("/sbin/ifconfig wlan create wlandev {$baseif} {$mode} bssid 2>&1"). تُزال اللاحقة _wlan؛ أما الفاصلة المنقوطة قبلها فتبقى. الوضع ثابت. يُولَّد cloneif المخفي ولا يُؤخذ من POST.
| ID | لا يوجد 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-interfaces-wireless-edit |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبَّتُّ الفرع العام master 9363ac5. المختبر عبارة عن PHP gadget للحوض المثبَّت، HTTP عبر loopback على 127.0.0.1:18910.
مقال السلسلة: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| الطريقة | الحوض | الصلاحية |
|---|---|---|
| POST interfaces_wireless_edit.php if | interfaces.inc interface_wireless_clone exec ifconfig wlan create wlandev {$baseif} | السلامة: مُثبَت مختبريًا: POST if=ath0;w شغَّل w إضافيًا عبر /bin/sh -c وكتب الشاهد. أوامر مضيف بصلاحية root من wireless-edit فقط. |
| نفس البقايا | نفس الحوض | الاستطلاع: مُستنتَج: نفس صدفة root يمكنها قراءة config.xml والمفاتيح. هذه الصفحة لا تطبع مخرجات exec. |
| نفس البقايا | نفس الحوض | التوافر: مُستنتَج: ifconfig عدائي على نسخ wireless. |
يتطلب: page-interfaces-wireless-edit. حماية CSRF على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root.
يتطلب: page-interfaces-wireless-edit. حماية CSRF على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root. حماية CSRF على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root.
الوضع ليس هو أداة الحقن. cloneif المخفي لا يُنسخ من POST. غير موثَّق غير منطبق. التشخيصات: Command غير مطلوب وغير ممنوح.
لا Diagnostics: Command ما لم تُمنح تلك الصفحة أيضًا.
cd lab
./run.sh
Loopback 127.0.0.1:18910. مشروع Compose pfsense-wireless-clone. الشاهد PFSENSE-WIRELESS-CLONE-WITNESS. Loopback فقط: 127.0.0.1:18910. مشروع Compose pfsense-wireless-clone. الشاهد PFSENSE-WIRELESS-CLONE-WITNESS. PHP gadget للأسطر المثبَّتة. تُفكَّك الحزمة بعد التشغيل.
السطر الأخير:
SUCCESS PFSENSE-WIRELESS-CLONE control-wlandev=yes trigger-exec=yes hidden-cloneif-copied=no PFSENSE-WIRELESS-CLONE-WITNESS
قائمة سماح لـ POST if مقابل الآباء اللاسلكيين الحاليين. escapeshellarg $baseif قبل ifconfig.
9363ac5b8651a1c7a333180425ce7719070f95f9