abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-unbound-sock-timeout
类别: RCE 可达性: 远程
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
sock_queue_timeout 以原始形式存储。unbound.inc 在此页面上未经过 test_unbound_config 检查即输出 sock-queue-timeout: {$sock_queue_timeout}。CRLF 可注入 include: / logfile: / python-script:。#16637 仅涉及 General Settings 的 checkconf。
| ID | 暂无 CVE |
| 类别 | RCE |
| 可达性 | 远程(除非另有说明,需已认证 WebGUI) |
| CWE | CWE-74 |
| CVSS | 高危: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) |
| 认证 | 具有 page-services-dnsresolver-advanced 权限的 WebGUI 会话 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
我固定了公共 master 分支 9363ac5。实验环境是该固定版本 sink 的 PHP gadget,在 127.0.0.1:19050 上提供回环 HTTP 服务。
系列文章:https://abraxaslabs.tech/research/pfsense-ce-leftovers
| 方法 | Sink | 权限影响 |
|---|---|---|
| POST services_unbound_advanced.php sock_queue_timeout | unbound.inc sock-queue-timeout: {$sock_queue_timeout} | 完整性: 实验验证:生成的配置中注入了额外的 include:;stub unbound 跟随 include 并导出了植入的见证文件。 |
| 同一遗留点 | 同一 sink | 侦察: 实验验证:Unbound 解析读取了被包含的主机文件。 |
| 同一遗留点 | 同一 sink | 可用性: 推断:被污染的配置可导致解析器启动失败。 |
需要: page-services-dnsresolver-advanced。除非另有说明,POST 受 CSRF-magic 保护。WebGUI PHP-FPM 以 root 运行。
需要: page-services-dnsresolver-advanced。除非另有说明,POST 受 CSRF-magic 保护。WebGUI PHP-FPM 以 root 运行。除非另有说明,POST 受 CSRF-magic 保护。WebGUI PHP-FPM 以 root 运行。
已记录的 custom_options 文本域是另一个遗留点。General Settings 的 checkconf 不覆盖此字段。
除非该页面也被授权,否则不存在 Diagnostics: Command。
cd lab
./run.sh
回环 127.0.0.1:19050。Compose 项目 pfsense-unbound-sock-timeout。见证文件 PFSENSE-UNBOUND-SOCK-TIMEOUT-WITNESS。仅回环:127.0.0.1:19050。Compose 项目 pfsense-unbound-sock-timeout。见证文件 PFSENSE-UNBOUND-SOCK-TIMEOUT-WITNESS。固定代码行的 PHP gadget。运行结束后栈会被拆除。
最后一行:
SUCCESS PFSENSE-UNBOUND-SOCK-TIMEOUT control-one-timeout=yes control-checkconf-pass=yes trigger-include=yes trigger-dump-witness=yes advanced-no-checkconf=yes PFSENSE-UNBOUND-SOCK-TIMEOUT-WITNESS
对 sock_queue_timeout 使用 is_numericint。在 Advanced 保存时运行 test_unbound_config。
9363ac5b8651a1c7a333180425ce7719070f95f9