
OPNsense 26.7.6 - عالية - عن بُعد - حقن سطر التكوين - هوية WLAN WPA
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · opnsense-wlan-wpa-line
الفئة: حقن سطر الإعدادات الوصول: عن بُعد
نواة OPNsense 26.7.6 (a842fe48) - opnsense.org
بقايا من GHSA-fq94. حصل SSID اللاسلكي على AllowNewlines=N. بقي identity وpassphrase وRADIUS auth_server_shared_secret كـ TextField مجرّد (الأسطر الجديدة مفعّلة افتراضيًا) وتُفرَّغ في /var/etc/wpa_supplicant_*.conf و/var/etc/hostapd_*.conf. يُدرج interfaces.inc القيمة identity="{identity}" في مقطع wpa_supplicant. إضافة سطر جديد أو كسر علامة اقتباس يضيف توجيهات إضافية بصلاحيات root. الصلاحية هي page-interfaces-wireless-edit، وليست page-all.
| المعرّف | لا يوجد CVE بعد |
| الفئة | حقن سطر الإعدادات |
| الوصول | عن بُعد (WebGUI موثّق) |
| CWE | CWE-93 |
| CVSS | مرتفع: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| المنتج | نواة OPNsense (Deciso B.V.) |
| المتأثر | نواة OPNsense 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) Wlan.xml identity / passphrase |
| المصادقة | جلسة WebGUI مع page-interfaces-wireless-edit |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبّتُّ الوسم 26.7.6. المختبر عبارة عن أداة PHP مثبّتة لـ interfaces_wlan_configure، وHTTP عبر loopback على 127.0.0.1:18840. كتب identity CR/LF توجيهًا إضافيًا # OPNSENSE-WLAN-WPA-LINE-WITNESS. بقي SSID على سطر واحد.
| الطريقة | المخرج | الصلاحية |
|---|---|---|
| identity CR/LF | تثبيت توجيه إضافي لـ interfaces_wlan_configure في إعدادات wpa_supplicant | السلامة (مُثبت مختبريًا): # OPNSENSE-WLAN-WPA-LINE-WITNESS إضافي بعد identity. المختبر: identity-newline=yes extra-directive=yes. |
احترام network / ssid / ap_scan / ctrl_interface الإضافية | wpa_supplicant / hostapd بصلاحيات root | السلامة (مُستنتج): توجيهات daemon إضافية. لم يُشغَّل wpa_supplicant في الأداة. |
| SSID CR/LF | AllowNewlines=N | سلبي (مُثبت مختبريًا): بقي SSID على سطر واحد. ssid-control=single-line. |
| passphrase / RADIUS secret CR/LF | hostapd_*.conf / wpa_supplicant | السلامة (مُستنتج): نفس الفئة. شغّلت الأداة مسار identity. |
| توجيه إضافي غير صالح | wireless daemons | التوافر (مُستنتج): قد يفشل hostapd / wpa_supplicant في البدء. |
| هذا المسار | لا شيء | استطلاع: لا قراءة إضافية لأسرار config.xml. |
مُثبت مختبريًا مقابل مُستنتج: التوجيه الإضافي لسطر identity الجديد والتحكم أحادي السطر لـ SSID هما نجاح مختبري. أما hostapd وتطبيق daemon الحيّ فهما مُستنتجان.
يتطلب: page-interfaces-wireless-edit. POST /api/interfaces/wireless_settings/*. ليس page-all. رمز CSRF. لن يحتفظ <input type="text"> في المتصفح بـ CR/LF؛ لكن POST مباشر من تلك الجلسة سيفعل.
| السطح | المختبر |
|---|---|
| سطر جديد في SSID | مقيّد (ssid-control=single-line) |
| غير موثّق | مغلق |
مسؤول لاسلكي page-all | إعداد راديو مقصود؛ البقايا هي توجيهات إضافية لم يكن مقصودًا أن ينشئها محرّر مُفوَّض |
| CVE-2025-50989 bridge span cmdi | الآن configdRun بدون رمز طلب |
| مفاتيح WEP | escapeshellarg إلى ifconfig |
لا وصول غير موثّق. SSID يرفض بالفعل CR/LF. المسؤول الكامل يملك root بالفعل بحكم التصميم.
cd lab
./run.sh
Loopback 127.0.0.1:18840. مشروع Compose opnsense-wlan-wpa-line. الشاهد OPNSENSE-WLAN-WPA-LINE-WITNESS. السطر الأخير:
SUCCESS opnsense-wlan-wpa-line identity-newline=yes extra-directive=yes ssid-control=single-line OPNSENSE-WLAN-WPA-LINE-WITNESS
اضبط AllowNewlines=N على identity وpassphrase وأسرار RADIUS، تمامًا كما في SSID. أزل CR/LF وعلامات الاقتباس داخل interfaces_wlan_configure حتى يُغطّى كل مستدعٍ. التوجيهات الإضافية لـ hostapd / wpa_supplicant يجب أن تكون خلف page-all.
a842fe48c21288d11a422cb944678e8eb308becfWlan.xmlinterfaces.inc interfaces_wlan_configureAllowNewlines=N