
OPNsense 26.7.6 - 高 - リモート - 設定行インジェクション - WLAN WPA identity
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · opnsense-wlan-wpa-line
分類: 設定行インジェクション 到達範囲: リモート
OPNsense core 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 ではない。
| ID | CVE 未割当 |
| 分類 | 設定行インジェクション |
| 到達範囲 | リモート (認証済み WebGUI) |
| CWE | CWE-93 |
| CVSS | High: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 製品 | OPNsense core (Deciso B.V.) |
| 影響 | OPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) Wlan.xml identity / passphrase |
| 認証 | page-interfaces-wireless-edit を持つ WebGUI セッション |
| ライセンス | GNU Affero GPL v3.0 |
| ラボ | 127.0.0.1 のみ |
タグ 26.7.6 を固定した。ラボは固定された interfaces_wlan_configure の PHP ガジェットで、127.0.0.1:18840 上のループバック HTTP である。identity の CR/LF により追加の # OPNSENSE-WLAN-WPA-LINE-WITNESS が書き込まれた。SSID は 1 行のままだった。
| 手法 | シンク | 権限 |
|---|---|---|
| identity CR/LF | wpa_supplicant 設定に interfaces_wlan_configure の追加ディレクティブを固定 | 完全性 (ラボ実証): identity の後に追加の # OPNSENSE-WLAN-WPA-LINE-WITNESS。ラボ: identity-newline=yes extra-directive=yes。 |
追加の network / ssid / ap_scan / ctrl_interface の受理 | root としての wpa_supplicant / hostapd | 完全性 (推定): 追加のデーモンディレクティブ。ガジェットでは wpa_supplicant は起動されない。 |
| SSID CR/LF | AllowNewlines=N | 否定 (ラボ実証): SSID は 1 行のまま。ssid-control=single-line。 |
| passphrase / RADIUS secret CR/LF | hostapd_*.conf / wpa_supplicant | 完全性 (推定): 同じ分類。ガジェットは identity パスを実行した。 |
| 無効な追加ディレクティブ | 無線デーモン | 可用性 (推定): hostapd / wpa_supplicant が起動に失敗する可能性がある。 |
| このパス | なし | 偵察: config.xml のシークレットの追加読み取りはなし。 |
ラボ実証 vs 推定: identity 改行による追加ディレクティブと SSID の 1 行制御はラボで SUCCESS。hostapd およびライブデーモンへの適用は推定。
必要条件: 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 キー | ifconfig への escapeshellarg |
未認証はなし。SSID はすでに CR/LF を拒否する。完全な管理者は設計上すでに root を持つ。
cd lab
./run.sh
ループバック 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
SSID と同様に、identity、passphrase、および RADIUS シークレットに AllowNewlines=N を設定する。interfaces_wlan_configure 内で CR/LF と引用符を除去し、すべての呼び出し元がカバーされるようにする。追加の hostapd / wpa_supplicant ディレクティブは page-all の背後に属する。
a842fe48c21288d11a422cb944678e8eb308becfWlan.xmlinterfaces.inc interfaces_wlan_configureAllowNewlines=N