
OPNsense 26.7.6 - Alta - Remota - Iniezione di riga di configurazione - Identità WLAN WPA
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · opnsense-wlan-wpa-line
Classe: Iniezione di riga di configurazione Portata: Remota
OPNsense core 26.7.6 (a842fe48) - opnsense.org
Residuo di GHSA-fq94. L'SSID wireless ha ottenuto AllowNewlines=N. identity, passphrase e il auth_server_shared_secret RADIUS sono rimasti TextField nudi (newline attive di default) e finiscono in /var/etc/wpa_supplicant_*.conf e /var/etc/hostapd_*.conf. interfaces.inc interpola identity="{identity}" nella stanza wpa_supplicant. Una newline o una rottura di virgolette aggiunge direttive extra come root. Il privilegio è page-interfaces-wireless-edit, non page-all.
| ID | nessuna CVE al momento |
| Classe | Iniezione di riga di configurazione |
| Portata | Remota (WebGUI autenticata) |
| CWE | CWE-93 |
| CVSS | Alto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| Prodotto | OPNsense core (Deciso B.V.) |
| Affetto | OPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) Wlan.xml identity / passphrase |
| Auth | Sessione WebGUI con page-interfaces-wireless-edit |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 |
Ho fissato il tag 26.7.6. Il lab è un gadget PHP del interfaces_wlan_configure fissato, HTTP su loopback su 127.0.0.1:18840. L'identity con CR/LF ha scritto una direttiva extra # OPNSENSE-WLAN-WPA-LINE-WITNESS. L'SSID è rimasto su una riga.
| Metodo | Sink | Privilegio |
|---|---|---|
| identity CR/LF | fissa la direttiva extra di interfaces_wlan_configure nel file di conf wpa_supplicant | Integrità (provata in lab): # OPNSENSE-WLAN-WPA-LINE-WITNESS extra dopo identity. Lab: identity-newline=yes extra-directive=yes. |
rispetto di network / ssid / ap_scan / ctrl_interface extra | wpa_supplicant / hostapd come root | Integrità (inferita): direttive extra del daemon. wpa_supplicant non avviato nel gadget. |
| SSID CR/LF | AllowNewlines=N | Negativo (provato in lab): l'SSID è rimasto su una riga. ssid-control=single-line. |
| passphrase / segreto RADIUS CR/LF | hostapd_*.conf / wpa_supplicant | Integrità (inferita): stessa classe. Il gadget ha eseguito il percorso identity. |
| direttiva extra non valida | daemon wireless | Disponibilità (inferita): hostapd / wpa_supplicant possono non avviarsi. |
| questo percorso | nessuno | Recon: nessuna lettura extra dei segreti di config.xml. |
Provato in lab vs inferito: la direttiva extra da newline in identity e il controllo single-line dell'SSID sono SUCCESS in lab. hostapd e l'applicazione sul daemon live sono inferiti.
Richiede: page-interfaces-wireless-edit. POST /api/interfaces/wireless_settings/*. Non page-all. Token CSRF. Il <input type="text"> del browser non manterrà CR/LF; un POST diretto da quella sessione sì.
| Superficie | Lab |
|---|---|
| Newline nell'SSID | vincolata (ssid-control=single-line) |
| Non autenticato | chiuso |
Admin wireless page-all | configurazione radio prevista; il residuo sono direttive extra che un editor delegato non avrebbe dovuto creare |
| cmdi bridge span CVE-2025-50989 | ora configdRun senza token di richiesta |
| Chiavi WEP | escapeshellarg in ifconfig |
Nessun accesso non autenticato. L'SSID rifiuta già CR/LF. L'admin completo ha già root per design.
cd lab
./run.sh
Loopback 127.0.0.1:18840. Progetto Compose opnsense-wlan-wpa-line. Witness OPNSENSE-WLAN-WPA-LINE-WITNESS. Ultima riga:
SUCCESS opnsense-wlan-wpa-line identity-newline=yes extra-directive=yes ssid-control=single-line OPNSENSE-WLAN-WPA-LINE-WITNESS
Impostare AllowNewlines=N su identity, passphrase e i segreti RADIUS, come per l'SSID. Rimuovere CR/LF e virgolette all'interno di interfaces_wlan_configure così che ogni chiamante sia coperto. Le direttive extra di hostapd / wpa_supplicant appartengono dietro page-all.
a842fe48c21288d11a422cb944678e8eb308becfWlan.xmlinterfaces.inc interfaces_wlan_configureAllowNewlines=N