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代码。
典型payload可能注入如下PHP代码:
|
|
当反序列化并评估时,这将导致任意操作系统命令执行。这种技术被称为PHP对象注入(POI),利用unserialize()作为初始注入向量。
利用条件
- FoxCMS v1.2.5已安装且可公开访问
- 无需登录或认证
- 环境中存在PHP反序列化gadgets
- PHP具有shell访问权限(许多配置中的默认设置)
利用步骤
要利用此漏洞,攻击者需要向易受攻击的案例展示页面构造POST请求,注入随后被写入.php文件的PHP代码。
简单浏览器PoC 已知的漏洞利用只需调用phpinfo():将TARGET替换为目标URL或IP。访问该URL将显示完整的phpinfo输出,确认代码执行。
|
|
使用curl的PoC 将phpinfo()替换为操作系统命令,例如id:
|
|
这确认了漏洞,并演示了通过FoxCMS v1.2.5中基于反序列化的注入实现远程代码执行。
缓解措施
目前尚无官方补丁。用户应:
- 移除或替换unserialize()的使用,采用更安全的方法(例如JSON解码)
- 过滤或验证所有输入参数
- 阻止对易受攻击页面的公共访问
- 部署WAF签名以检测序列化payload
- 如果不需要,禁用危险的PHP函数如system()