Joomla 3.4.6存在远程代码执行漏洞,成因是session处理不当导致反序列化攻击,攻击者可伪造session触发__destruct等魔术方法,执行任意PHP代码并写入webshell。

PHP 5.5.38 本身不是漏洞版本,而是 Joomla 3.4.6 等旧系统常搭配使用的运行环境。它不直接存在“PHP 5.5.38 反序列化漏洞”,但在这个版本上运行的第三方应用(如 Joomla、自定义 session 处理逻辑或插件)若存在反序列化缺陷,就可能被利用,造成严重后果。
会话反序列化导致远程代码执行
典型场景是 Joomla 3.4.6 漏洞:攻击者通过访问 configuration.php 获取部分配置信息后,结合 session 反序列化机制,伪造恶意 session 数据。当服务端用 unserialize() 解析时,触发魔术方法(如 __destruct() 或 __wakeup()),进而调用危险函数(如 file_put_contents、system),实现任意 PHP 代码执行。
- 攻击者可在服务器上写入 Webshell,完全接管网站后台
- 可读取数据库配置文件、用户密码哈希、敏感业务数据
- 以 Web 进程权限(如 www-data)执行系统命令,横向渗透内网
session.serialize_handler 混用引发解析污染
PHP 5.5.38 支持两种 session 序列化方式:php(默认,用 | 分隔键值)和 php_serialize(用完整 serialize 格式)。若应用在不同环节混用两者(例如前端写入用 php_serialize,后端读取用 php),攻击者可在 session 值中注入 |,诱导解析器错误切分键值对,把可控字符串当作对象名或属性反序列化。
- 可能导致未预期的对象实例化,绕过身份校验
- 配合含危险逻辑的类,直接触发 RCE 或信息泄露
- 这类问题不依赖特定 PHP 版本,但在 5.5.x 中因配置普遍宽松而更易得手
影响范围不限于 Joomla,也波及其他组件
除 CMS 外,使用 PHP 5.5.38 的旧版 phpMyAdmin、Roundcube、自研后台系统等,只要存在以下任一情况,都可能成为入口:
立即学习“PHP免费学习笔记(深入)”;
- 将用户输入(如 cookie、POST 参数)未经校验传入
unserialize() - session 存储路径可被普通用户写入(如 tmp 目录权限过大)
- 启用了
session.upload_progress.enabled=1且未做上传来源限制
为什么现在仍需重视 PHP 5.5.38 环境
该版本早已停止官方支持(2016 年末),不再接收安全更新。当前暴露的风险主要来自遗留系统:
- 无法升级 PHP 版本的老旧业务系统仍在运行
- 攻击者已掌握成熟 PoC,扫描工具可批量识别并利用
- 与近期披露的 PHP Core RCE 漏洞(CVE-2026-109618/109619)无直接关联,但攻击面叠加后危害加剧



















