跳至主要內容
>_ITDITD網站資安平台

威脅情報

CVE-2026-45247 — Magento 擴充套件的 PHP 物件注入導致免認證 RCE(解析與對策)

CVE-2026-45247 是 Magento 2 擴充套件「Mirasvit Full Page Cache Warmer」1.11.12 以下版本中存在的 PHP 物件注入(對不可信資料進行反序列化・CWE-502)漏洞。無需認證即可導致遠端程式碼執行(RCE),CVSS 為 9.3。本文以防禦視角、隱去攻擊手法,講解會發生什麼、影響範圍,以及應立即採取的對策(更新・反序列化原則・擴充套件清點)。

發布於 2026-06-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僅作為資料來接收,不用於還原物件。這樣一來,這一類漏洞就在設計階段從結構上被消除了

接著閱讀

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)。本質性的防禦是「不要對不可信資料進行反序列化」。