
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 を is_domain() チェックなしで dns_domain / netbios_scope にコピーし、その後 openvpn_add_dhcpopts() がそれらを、すでに script-security 3 が設定されているサーバーの config.ovpn に書き込みます。引用符と LF により push "dhcp-option ..." 行が閉じられ、up を含むサーバーディレクティブが追加されます。権限は OpenVPN アドバンストではなく、Wizard Subsystem です。vpn_openvpn_server.php のみを名指しした SA-26_07 の兄弟です。
| 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 ウィザード |
| 認証 | page-pfsensewizardsubsystem を持つ WebGUI セッション |
| ライセンス | GNU Affero GPL v3.0 |
| ラボ | 127.0.0.1 のみ |
公開 master 9363ac5 を固定しました。ラボは固定されたウィザードの割り当てと openvpn_add_dhcpopts、そして tun0 上の OpenVPN 2.6.14 です。ループバック 127.0.0.1:18820。2.9.0-RELEASE でこのヘルパーが修正されていれば、これは SA-26_07 と同じ SA です。
| 手法 | シンク | 権限 |
|---|---|---|
OpenVPN リモートアクセスウィザードを完了し、Default Domain (または NetBIOS scope) を push 行を閉じて up を追加する値に設定 | script-security 3 (:905) 付きで openvpn_add_dhcpopts がサーバーの config.ovpn (openvpn.inc:697-738) に書き込む | Integrity (ラボ実証済み): OpenVPN 2.6.14 が tun0 上でその up を実行し、証跡を書き込んだ (up-exec=yes)。コントロール example.com は単一の DOMAIN push のままだった。 |
| 同一ホストコマンド | デーモンユーザー (pfSense では root) としての OpenVPN up | Recon (推測): ホストファイルシステム、config.xml、鍵。 |
| OpenVPN 設定の破壊またはホストコマンド | OpenVPN サーバー | Availability (推測): OpenVPN / ファイアウォールの中断。 |
ラボ実証済み vs 推測: ウィザードの割り当て、dhcpopts up、script-security 3、コントロールクリーン、tun0 up-exec はラボ実証済みです。ファイルシステム偵察は up プロセスから推測されます。CCD ブロブ内の同じポイズンは実行されませんでした (ccd-up-ignored=yes)。
必要条件: page-pfsensewizardsubsystem を持つ WebGUI セッション。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 | 意図されたアドバンスト権限 |
| Diagnostics: Command | 別途付与されない限り閉じたまま |
cd lab
./run.sh
ループバック 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
ウィザードの defaultdomain / nbtscope が dns_domain / netbios_scope になる前に is_domain() (または CR/LF/引用符の除去) を適用します。IPsec mobile がすでに行っているのと同じです。openvpn_add_dhcpopts() 内でサニタイズして、ウィザードを含むすべての呼び出し元をカバーします。
9363ac5b8651a1c7a333180425ce7719070f95f9openvpn_wizard.incopenvpn.inc openvpn_add_dhcpoptsfd301381 (この公開ツリーには存在しない)