| 插件名稱 | WPBakery 頁面生成器 |
|---|---|
| 漏洞類型 | 儲存的跨站腳本攻擊 |
| CVE 編號 | CVE-2025-11160 |
| 緊急程度 | 低 |
| CVE 發布日期 | 2025-10-15 |
| 來源 URL | CVE-2025-11160 |
WPBakery 頁面生成器 <= 8.6.1 — 自訂 JS 模組中的儲存型 XSS (CVE-2025-11160)
摘要:一個儲存的跨站腳本攻擊 (XSS) 問題影響 WPBakery 頁面生成器版本至 8.6.1。攻擊向量是插件的自訂 JS 模組,該缺陷可以被具有貢獻者級別權限的已驗證用戶利用。供應商在版本 8.7 中發布了修復。這篇文章 — 由香港安全專業人士撰寫,重點在於清晰和實用 — 解釋了問題的運作方式、誰面臨風險、如何檢測和移除有效載荷,以及應用哪些立即的緩解措施。.
- 漏洞:WPBakery 自訂 JS 模組中的儲存 XSS
- 受影響的版本:WPBakery <= 8.6.1
- 修復於:WPBakery 8.7
- CVE:CVE-2025-11160
- 所需權限:貢獻者(已驗證)
- 報告的 CVSS:6.5(依上下文而定)
- 主要影響:在訪客和潛在管理員的瀏覽器中持久執行 JavaScript(竊取 cookie、重定向、持久性破壞、樞紐轉換)
什麼是儲存的 XSS 以及它對 WordPress 的重要性
儲存的 XSS 發生在攻擊者將惡意 JavaScript 儲存在網站上(在文章、文章元數據、小工具或插件管理的字段中),而網站後來在沒有適當輸出編碼的情況下提供該內容。每當任何人(包括管理員)查看受影響的頁面時,有效載荷就會執行。.
為什麼 WordPress 網站是高價值目標:
- 管理員面向的頁面和預覽可以執行有效載荷,從而實現憑證竊取或會話捕獲。.
- 持久性腳本可以添加後門、注入 SEO 垃圾郵件,或執行重定向和內容操控。.
- 擁有用戶註冊或貢獻者工作流程的網站特別脆弱,因為低權限帳戶足以儲存有效載荷。.
在這種情況下,該插件暴露了一個用於合法前端腳本的自訂 JS 模組;不充分的輸入約束和清理允許貢獻者持久化一個惡意腳本,該腳本將在訪客的瀏覽器中執行。.
技術概述:這個 WPBakery 漏洞是如何工作的
- 自定義 JS 模組將內容存儲在數據庫中(短代碼、文章元數據或插件特定存儲)。.
- 來自貢獻者級別用戶的輸入在保存和後續渲染之前沒有得到適當的約束或清理。.
- 惡意貢獻者可以注入 JavaScript,該 JavaScript 被存儲並在任何查看該頁面的訪問者中返回。.
可能的攻擊場景:
- 當管理員預覽或訪問受感染的頁面時,竊取管理員的 cookies 或會話令牌,然後將其外洩到外部伺服器。.
- 執行持久重定向到攻擊者域,加載外部惡意軟件或插入垃圾鏈接。.
- 使用 DOM 操作來捕獲表單提交或通過 REST API 或 AJAX 調用升級到其他操作。.
注意:該漏洞至少需要一個貢獻者帳戶。許多網站允許註冊或有弱驗證——這是攻擊者的常見路徑。.
誰面臨風險?
- 運行 WPBakery Page Builder ≤ 8.6.1 的網站。.
- 允許用戶註冊或接受來自不受信任貢獻者內容的網站。.
- 允許貢獻者角色的多作者博客和社區或會員網站。.
- 任何管理員在登錄時預覽頁面的網站(常見做法)。.
即使 CVSS 中等,單個暴露的貢獻者啟用網站如果目標是管理員,也可能導致嚴重的安全漏洞。.
立即行動(前 1-2 小時)
-
確認插件版本
儀表板:插件 > 已安裝的插件,並驗證 WPBakery 版本。.
WP-CLI:
wp plugin list --format=csv | grep js_composer || wp plugin get js_composer --field=version -
如果可以,更新到 8.7+
如果您的許可證和相容性矩陣允許,請通過儀表板或 WP-CLI 更新:
wp 插件更新 js_composer --清除插件快取如果您無法立即更新,請應用虛擬修補(請參見下面的 WAF 建議),同時安排更新。.
-
暫時限制貢獻者訪問
在您能夠更新和掃描之前,移除或限制貢獻者角色。移除低權限角色添加自定義 JS 模組的能力。.
- 掃描注入的
- 行內事件處理器:
onerror=,onclick=,onload= - 在盜竊/外洩中使用的 API 和函數:
document.cookie,XMLHttpRequest,fetch,new Image() - 混淆:
base64,eval(atob(...)), 長編碼字符串 - 旋轉憑證: 重置可能已用於注入內容的任何帳戶的密碼。.
- 強制重置密碼: 如果存在可疑活動,要求所有管理員和編輯重置密碼。.
- 手動檢查插件/主題: 審查任何允許存儲 JavaScript 的插件或主題;優先對這些組件進行手動代碼審查。.
- 加強註冊和角色:
- 如果不需要,禁用開放註冊。.
- 將未經驗證的貢獻者帳戶轉換為更安全的角色或暫停它們。.
- 使用基於批准的工作流程來處理用戶生成的內容。.
- 審查伺服器日誌: 尋找在惡意內容出現時對 admin-ajax.php、REST API 端點或其他內容端點的 POST 請求。.
- 如有需要,恢復: 如果感染範圍不明,請從已知乾淨的備份中恢復,更新到修復的插件版本,並在掃描後重新引入內容。.
數據庫搜索示例(小心轉義特殊字符):
SELECT ID, post_title'
使用管理的 WAF 進行短期緩解(虛擬修補)
如果無法立即更新,則通過網絡應用防火牆(WAF)進行虛擬修補可以減少暴露。其目的是阻止利用嘗試和已知的有效負載模式,直到您能夠更新和清理網站。.
概念性 WAF 規則示例(通過您的 WAF 或網關實施):