威胁动态

CVE-2026-45247 — Magento 扩展的 PHP 对象注入导致免认证 RCE(解析与对策)

CVE-2026-45247 是 Magento 2 扩展 Mirasvit Full Page Cache Warmer 1.11.12 之前版本的 PHP 对象注入漏洞,无需认证即可远程执行代码(CVSS 9.3)。说明影响范围与更新等对策。

发布于 2026-06-08 更新于 2026-10-23 最后核实 2026-07-08 2 分钟阅读
本页目录

这是一篇针对已确认被实际利用(收录于 CISA KEV)漏洞的速报解析。本文以防御视角、隐去攻击的复现步骤,梳理会发生什么、影响范围与对策。

速报摘要 — ADVISORY
CVE
CVE-2026-45247
严重度
Critical(CVSS 9.3 / v4.0)
类别
PHP 对象注入(对不可信数据进行反序列化・CWE-502)
影响
无需认证即可远程代码执行(RCE)
对象
Mirasvit Full Page Cache Warmer for Magento 2 — 1.11.12 之前的版本
首选对策
更新到 1.11.12 及以上
9.3
CVSS / 最严重一类
免认证
触发条件
RCE
可达成的影响
更新即可修复
首选对策

放任不管的危险程度

由于无需认证即可导致 RCE,它是自动化大规模扫描的重点目标(正因如此才被收录进 KEV)。「我们站点很小不会被盯上」并不成立。扫描器会机械地把整个互联网扫一遍。

这是什么样的漏洞(PHP 对象注入)

PHP 中有把数据转成字符串的 serialize,以及把它还原的 unserialize。如果把不可信输入直接 unserialize,攻击者就能传入「一旦被还原就会引发不良副作用的对象」。在还原的过程中(魔术方法等),本不应执行的处理被连锁触发,最终可能导致代码执行。这就是 PHP 对象注入(CWE-502)。

✗ 还原不可信输入

外部输入 → 用 unserialize 还原为对象 → 还原处理连锁触发 → 代码执行

✓ 当作值来处理

外部输入只用 JSON 等作为数据来接收 → 不还原成对象

对不可信输入进行反序列化时,攻击者预设的对象会被还原出来,触发连锁的非预期处理。只要当作值来处理就是安全的。

本次的对象是 Magento 2 的缓存加速扩展。攻击者无需经过认证即可到达,CVSS 被评为 9.3,属于最严重的一类。

影响范围

项目内容
对象扩展Mirasvit Full Page Cache Warmer for Magento 2
受影响的版本早于 1.11.12
修复版本1.11.12 及以上
前提条件无需认证(unauthenticated)
可达成的影响远程代码执行(RCE)

对策

1

将扩展更新到 1.11.12 及以上(最优先)

将对象扩展更新到最新版。这是真正修复 RCE 的唯一方法。更新后,确认正在运行的实际版本。
2

更新前的临时多层防御

如果无法立即更新,就用对相关功能端点的访问限制(IP 白名单・基本认证・切断到达路径)或 WAF 临时减少暴露面。这只是在更新完成前的过渡措施。
3

确认是否已被入侵

考虑到更新前可能已被到达,检查可疑文件・定时任务・外部通信・管理员账户的增减。对待 RCE 时应按「环境变量与整个数据库已泄露」为前提处理。
4

扩展清点+CVE 机器化监控

清点已安装的扩展与依赖,用机器(Dependabot / osv-scanner 等)监控 CVE。从结构上杜绝「人工漏看已公开的已知 CVE 而放任不管」。

本站的观点:在设计上不对不可信数据做反序列化

这类漏洞反复出现,原因是「因为方便,就把外部输入直接还原了」。本站的立场很明确,即不要制造出对不可信数据执行 unserialize 的场景。外部输入要用 json_decode 等仅作为数据来接收,不用于还原对象。这样一来,这一类漏洞在设计上就不会发生。

接着阅读

来源与确认范围

以下原始资料支持上文的配置、影响范围或应对措施,链接于2026年10月23日确认。请核对资料中的版本和配置条件。清单优先级及经验是本站的整理,不代表全文重新核验或安全保证。

FAQ

QCVE-2026-45247 会发生什么?
A

未经认证的攻击者可以在装有该扩展的 Magento 站点上执行任意代码(RCE)。这会直接导致站点被篡改、信息被窃取,并可能被用来进一步入侵其他系统,属于最严重的一类漏洞。

Q最可靠的对策是什么?
A

将扩展「Mirasvit Full Page Cache Warmer for Magento 2」更新到 1.11.12 及以上。只有更新才能真正修复漏洞,配置变更和 WAF 只是在更新完成前临时使用的多层防御。

Q什么是 PHP 对象注入?
A

它是一种把不可信输入直接反序列化(如 `unserialize` 等)、从而让攻击者预设的对象被创建出来,进而连锁触发本不应执行的处理的漏洞(CWE-502)。本质性的防御是「不要对不可信数据进行反序列化」。