近期 WordPress 的熱門地圖插件 WP Maps Pro 被發現存在一個極為嚴重的安全漏洞,編號為 CVE-2026-8732。該漏洞的 CVSS 評分高達 9.8 分,屬於最高危險等級,因為它允許完全沒有帳號的外部攻擊者,直接在目標網站上創建一個具有最高權限的管理員帳號,進而接管整個網站。
漏洞成因與技術脈絡
這個問題的核心在於插件為了方便技術支援而設計的臨時存取功能。通常,當使用者遇到問題需要官方客服協助時,插件會提供一種機制讓支援人員能暫時登入客戶的網站進行排錯。然而,開發者在實作這個功能時,在身分驗證與權限控管上出現了嚴重疏失。
在 WordPress 的開發環境中,AJAX 請求通常分為兩種:一種是僅限登入使用者使用的 wp_ajax,另一種則是允許未登入使用者調用的 wp_ajax_nopriv。WP Maps Pro 的臨時存取功能錯誤地將其註冊在 wp_ajax_nopriv 下,這意味著任何訪問網站的人都可以嘗試觸發這個功能。
為了防止隨意調用,開發者使用了 Nonce 機制。Nonce 是一種一次性安全令牌,用來確保請求是來自合法來源且非重複提交。但在本案例中,該 Nonce 被透過 wp_localize_script 函數直接嵌入到前端頁面的 JavaScript 物件中。這導致任何人只要打開網頁,就能在原始碼中直接看到這個令牌,使 Nonce 失去了身分驗證的保護作用。
攻擊路徑與影響
攻擊者可以利用上述缺陷,向後端發送一個特定的 AJAX 請求,觸發 wpgmp_temp_access_support 處理程序,並將參數 check_temp 設為 false。
由於後端缺乏對請求者身分的實質檢查,系統會直接執行 wp_insert_user 函數,在資料庫中創建一個權限被硬編碼為管理員的新使用者。隨後,系統會回傳一個特殊的魔法登入連結。攻擊者只要點擊該連結,系統會自動調用 wp_set_auth_cookie 並完成認證,讓攻擊者無需密碼即可直接以管理員身分登入後台。
這種漏洞在實務上極其危險,因為它跳過了所有登入防線,直接賦予攻擊者最高控制權,他們可以隨意修改內容、竊取用戶數據或植入惡意程式。
修復方案與實務建議
該漏洞影響所有 6.1.0 及其之前的版本。官方已在 6.1.1 版本中修復此問題,核心改動是將該端點的存取權限限制為僅限已驗證的管理員可以使用,徹底切斷了未登入使用者觸發該功能的路徑。
對於維護 WordPress 網站的工程師或管理員,建議立即將 WP Maps Pro 更新至最新版本。此外,在開發類似的支援功能時,應避免將敏感的認證令牌暴露在前端,且絕對不能將涉及權限變更的操作開放給未經認證的用戶。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。