CVE-2025-29306 – FoxCMS v1.2.5 通过反序列化注入实现未授权远程代码执行
概述
CVE-2025-29306 是一个影响 FoxCMS 版本 1.2.5 的严重远程代码执行(RCE)漏洞。该漏洞源于对 id 参数的不安全处理,该参数未经验证直接传递给 PHP 的 unserialize() 函数。攻击者可以提供恶意的序列化 PHP 对象,通过 system() 触发任意命令执行。
CVE ID: CVE-2025-29306
严重性: 严重
CVSS 评分: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
EPSS 评分: 71.52%
受影响版本: FoxCMS ≤ 1.2.5
已修补版本: 截至撰写时尚未发布
需要认证: 否
影响: 远程代码执行
技术分析
FoxCMS 直接对用户提供的 id 参数使用 unserialize()。当提供恶意的序列化 PHP 对象时,FoxCMS 无意中执行了攻击者控制的 PHP 代码。
典型的负载可能注入 PHP 代码,例如:
|
|
当反序列化并评估时,这会导致任意操作系统命令执行。这种技术被称为 PHP 对象注入(POI),利用 unserialize() 作为初始注入向量。
利用条件
- FoxCMS v1.2.5 已安装且可公开访问
- 无需登录或认证
- 环境中存在 PHP 反序列化小工具
- PHP 具有 shell 访问权限(在许多配置中默认)
利用步骤
要利用此漏洞,攻击者会向易受攻击的案例显示页面制作一个 POST 请求,注入随后被写入 .php 文件的 PHP 代码。
简单浏览器 PoC
已知的漏洞利用只需调用 phpinfo():将 TARGET 替换为目标 URL 或 IP。访问该 URL 会显示完整的 phpinfo 输出,确认代码执行。
|
|
使用 curl 的 PoC
将 phpinfo() 替换为操作系统命令,例如 id:
|
|
这确认了漏洞,并演示了通过基于反序列化的注入在 FoxCMS v1.2.5 中实现远程代码执行。
缓解措施
目前尚无官方补丁。用户应:
- 移除或替换 unserialize() 的使用,采用更安全的方法(例如 JSON 解码)
- 过滤或验证所有输入参数
- 阻止对易受攻击页面的公共访问
- 部署 WAF 签名以检测序列化负载
- 如果不需要,禁用危险的 PHP 函数,如 system()