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 | 高危: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) |
| 认证 | 具有 a page that can call config_install / config_restore while Deny Config Write is set 的 WebGUI 会话 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
我固定了公共 master 9363ac5。该实验环境是固定接收点的 PHP gadget,在 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。 |
| 同一残留 | 同一接收点 | 侦察: 未展示。 |
| 同一残留 | 同一接收点 | 可用性: 推断:植入的配置可导致重启 / 锁定。 |
需要: a page that can call config_install / config_restore while Deny Config Write is set。除非另有说明,否则 POST 上启用 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
需要: a page that can call config_install / config_restore while Deny Config Write is set。除非另有说明,否则 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 gadget。运行后栈会拆除。
最后一行:
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