pfSense CE 2.9.0-DEVELOPMENT - 高 - リモート - 権限の残留 - 読み取り専用 config_install
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-config-readonly-restore
分類: 権限の取り残し 到達範囲: リモート
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
write_config は user-config-readonly を尊重する。config_install と config_restore はそのチェックなしで config.xml を置き換える。
| ID | CVE 未採番 |
| 分類 | 権限の取り残し |
| 到達範囲 | リモート (特に断りのない限り認証済み WebGUI) |
| CWE | CWE-863 |
| CVSS | High: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L |
| 製品 | pfSense CE |
| 影響を受けるバージョン | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| 認証 | Deny Config Write が設定されている状態で config_install / config_restore を呼び出せるページ を持つ WebGUI セッション |
| ライセンス | GNU Affero GPL v3.0 |
| ラボ | 127.0.0.1 のみ |
公開 master 9363ac5 を固定した。ラボは固定したシンクの PHP ガジェットで、127.0.0.1:19200 上のループバック HTTP である。
シリーズ解説: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| 手法 | シンク | 権限 |
|---|---|---|
| Deny Config Write ユーザーとしての config_install / config_restore | config_install が config.xml にコピーする | 完全性: ラボで実証: write_config は拒否されたが、config_install と config_restore は依然として config.xml を置き換えた。 |
| 同じ取り残し | 同じシンク | 偵察: 示されたものはなし。 |
| 同じ取り残し | 同じシンク | 可用性: 推測: 仕込まれた設定により再起動 / ロックアウトが可能。 |
必要条件: Deny Config Write が設定されている状態で config_install / config_restore を呼び出せるページ。特に断りのない限り POST に CSRF-magic。WebGUI PHP-FPM は root。
必要条件: Deny Config Write が設定されている状態で config_install / config_restore を呼び出せるページ。特に断りのない限り POST に CSRF-magic。WebGUI PHP-FPM は root。特に断りのない限り POST に CSRF-magic。WebGUI PHP-FPM は root。
通常の設定書き込みは拒否されたままである。
そのページも許可されていない限り、Diagnostics: Command はない。
cd lab
./run.sh
ループバック 127.0.0.1:19200。Compose プロジェクト pfsense-config-readonly-restore。ウィットネス PFSENSE-CONFIG-READONLY-RESTORE-WITNESS。ループバックのみ: 127.0.0.1:19200。Compose プロジェクト pfsense-config-readonly-restore。ウィットネス PFSENSE-CONFIG-READONLY-RESTORE-WITNESS。固定した行の PHP ガジェット。スタックは実行後に破棄される。
最終行:
SUCCESS PFSENSE-CONFIG-READONLY-RESTORE write-denied=yes install-replace=yes restore-replace=yes PFSENSE-CONFIG-READONLY-RESTORE-WITNESS
config_install と config_restore で user-config-readonly を尊重する。
9363ac5b8651a1c7a333180425ce7719070f95f9