| 插件名稱 | Cloudflare 圖片調整 |
|---|---|
| 漏洞類型 | 遠端代碼執行 |
| CVE 編號 | CVE-2025-8723 |
| 緊急程度 | 高 |
| CVE 發布日期 | 2025-08-18 |
| 來源 URL | CVE-2025-8723 |
緊急安全公告:Cloudflare 圖片調整 (cf-image-resizing) <= 1.5.6 — 透過 rest_pre_dispatch 進行未經身份驗證的 RCE (CVE-2025-8723)
日期: 2025年8月18日
嚴重性: 嚴重 (CVSS 10.0) — 遠程代碼執行 (RCE)
受影響的插件: Cloudflare 圖片調整 (插件標識:cf-image-resizing)
易受攻擊的版本: <= 1.5.6
修復於: 1.5.7
CVE: CVE-2025-8723
摘要 (香港安全專家觀點)
這是一個關鍵的未經身份驗證的遠程代碼執行漏洞,存在於 Cloudflare 圖片調整 WordPress 插件 (版本 ≤ 1.5.6),該漏洞濫用 WordPress REST API 的預處理鉤子 (rest_pre_dispatch),未經適當身份驗證。該漏洞被分配為 CVE-2025-8723,並在版本 1.5.7 中修復。將此視為緊急情況 — 攻擊者可能會自動化利用嘗試。如果您管理香港或亞太地區的網站,請立即採取行動以修補或控制風險,並在有任何異常活動跡象時進行取證檢查。.
執行摘要
攻擊者可以通過 rest_pre_dispatch 觸發未經身份驗證的代碼路徑,導致執行攻擊者提供的輸入或包含不安全內容,從而在易受攻擊的網站上實現完全的 RCE。後果包括網站接管、後門、數據盜竊、垃圾郵件/SEO 黑名單,以及在共享主機上的潛在橫向移動。請立即更新至 1.5.7。如果無法立即修補,請應用伺服器級別的限制或虛擬修補,並執行以下事件響應步驟。.
出了什麼問題 (技術背景)
- 該插件鉤入 rest_pre_dispatch,該鉤子在 REST 請求處理的早期運行,並可以短路正常路由。.
- 在受影響的版本中,從該鉤子可達的代碼接受未經身份驗證的輸入並執行邏輯,而不驗證其真實性或能力,從而實現 RCE。.
- 根本原因:缺少身份驗證/授權檢查,並結合在伺服器的執行上下文中不安全地處理用戶控制的輸入。.
因為 rest_pre_dispatch 在標準 REST 身份驗證之前執行,未能驗證請求允許未經身份驗證的訪問特權操作。利用只需向插件目標的 REST 端點發送 HTTP 請求。.
影響
- 完全網站妥協 (RCE → 後門 → 管理員創建 → 數據盜竊)。.
- 如果 PHP 進程和主機允許特權提升,則可能獲得伺服器級別的訪問。.
- 數據外洩、內容篡改、垃圾郵件分發、加密挖礦或僵屍網絡/承運人活動。.
- 搜索引擎黑名單和聲譽損害。.
鑑於其未經身份驗證的特性和 CVSS 10.0,預期會有快速自動掃描和利用。.
立即行動(現在該做什麼)
- 立即將插件更新至 1.5.7 或更高版本。.
從 WP 管理員:插件 → 已安裝的插件 → 更新 Cloudflare 圖像調整。.
或通過 WP-CLI:wp plugin list --format=table - 如果您無法立即更新,請在伺服器或 WAF 層阻止對插件的 REST 端點的訪問。. 拒絕或限制對插件的 /wp-json/… 路徑的流量,並阻止可疑的有效負載。.
- 如果您懷疑被利用:
- 將網站置於維護模式或暫時阻止外部流量。.
- 創建完整的文件和數據庫備份,保留日誌(寫保護)。.
- 旋轉 WordPress 管理員密碼、數據庫憑證、主機控制面板密碼,以及任何可能暴露的 API 密鑰或 SSH 密鑰。.
- 搜索妥協指標(IoCs)— 請參見檢測部分。.
- 暫時禁用插件 如果您無法應用可靠的虛擬補丁:
wp 插件停用 cf-image-resizing注意:如果您依賴該插件,這可能會影響圖像調整功能。.
- 增加監控 — 監視網絡伺服器訪問日誌、錯誤日誌,以及任何 WAF 或 IDS 警報中的激增或可疑請求。.
WAF / 虛擬修補指導
如果修補因測試或維護而延遲,請使用虛擬修補作為緊急措施。目標是阻止對插件命名空間的未經身份驗證請求,並檢測/拒絕與 RCE 一致的有效負載(編碼的 PHP、PHP 包裝器、可疑的函數名稱)。.
採用分層方法:
- 阻止針對插件命名空間或端點的 REST API 請求。.
- 阻止常用於 RCE 的有效負載模式(base64 編碼的 PHP、php://、system(、exec(、反引號、帶有意外類名的序列化 PHP)。.
- 如果可行,限制對伺服器級別(nginx/Apache)敏感 REST 路徑的訪問,僅允許受信 IP。.
ModSecurity 示例(示意)
SecRule REQUEST_URI "@beginsWith /wp-json/cf-image-resizing" "id:100001,phase:1,deny,log,status:403,msg:'阻止可疑的 REST 請求到 cf-image-resizing',severity:2"
Nginx 片段 — 限制插件 REST 端點
location ~* ^/wp-json/cf-image-resizing/ {
或僅允許受信 IP 範圍:
location ~* ^/wp-json/cf-image-resizing/ {
Apache (.htaccess) — 拒絕訪問插件 REST 路徑
<If "%{REQUEST_URI} =~ m#^/wp-json/cf-image-resizing/#">
Require all denied
</If>
WordPress 級別過濾器(臨時 mu-plugin)
創建 wp-content/mu-plugins/block-cf-rest.php 拒絕未經身份驗證的訪問插件命名空間:
<?php
add_filter('rest_authentication_errors', function($result) {
if ( ! empty($result) ) {
return $result;
}
$request = rest_get_server()->get_request();
$route = $request->get_route();
if (strpos($route, '/cf-image-resizing/') === 0) {
return new WP_Error('rest_forbidden', 'Access to this endpoint is temporarily disabled', array('status' => 403));
}
return $result;
}, 90);
更新插件並驗證網站功能後,刪除此臨時過濾器。.
偵測:妥協指標(IoCs)和日誌模式
尋找可能表明被利用的這些跡象:
- 請求到
/wp-json/cf-image-resizing/*來自不尋常的 IP 或在短時間內大量不同的 IP。. - 包含編碼/混淆負載的 JSON 主體的 POST 請求(base64, gzinflate, php://input)。.
- 可寫目錄中的新或修改的 PHP 文件(uploads, wp-content/uploads, wp-includes, plugins) — 假裝為媒體但包含 PHP 代碼的文件。.
- 未經授權的管理用戶創建。.
- 新的 cron 任務或意外的計劃任務。.
- 從網絡服務器到可疑 IP 或域的出站連接。.
- 提升的錯誤日誌顯示 eval()、include() 與意外路徑,或 shell 命令的痕跡。.
建議的日誌查詢
# 在過去 7 天內查找插件路徑的 REST 請求 .
法醫檢查清單(如果您懷疑被入侵)
- 保留證據:快照磁碟和數據庫,保留完整日誌(寫保護副本)。.
- 隔離網站:下線或阻止不受信任的流量。.
- 確定範圍:哪些文件和用戶被更改;活動時間線。.
- 移除後門和惡意文件:檢查並移除 webshell 和未知的 PHP 文件。.
- 旋轉憑證:WordPress 管理員、數據庫、主機控制面板、SSH 密鑰、API 令牌。.
- 掃描和清理:使用多種工具和手動驗證。.
- 如有必要,從已知良好的備份恢復。.
- 應用補丁 (1.5.7+),加固環境,並監控重現情況。.
- 如果敏感數據被暴露,遵循法律/監管披露程序。.
如果您缺乏內部事件響應能力,立即聘請可信的安全專業人員——時間至關重要。.
加固建議(更新後)
- 保持 WordPress 核心、主題和插件更新。啟用自動小版本更新,並為重大更改安排受控維護。.
- 限制插件安裝為受信任的、積極維護的插件。移除未使用的插件和主題。.
- 限制文件系統權限——避免為網頁伺服器用戶提供廣泛的寫入權限。.
- 限制 REST API 訪問:阻止不需要公開的端點。.
- 為 WordPress 用戶實施最小權限;避免每日使用管理員帳戶。.
- 維持監控和事件檢測(日誌聚合,對可疑活動的警報)。.
- 定期備份代碼和數據庫並測試恢復程序。.
建議的緩解方法(典型回應)
採用分層防禦策略:
- 緊急隔離:更新插件或對易受攻擊的 REST 路徑應用伺服器級拒絕規則。.
- 虛擬修補:臨時 WAF 或伺服器規則以阻止利用模式。.
- 偵測和清理:掃描 webshell,移除後門,輪換憑證。.
- 事件後加固:權限、監控、限制 REST 曝露。.
現在要添加的威脅獵捕和監控規則
- 對 POST 請求發出警報到
/wp-json/cf-image-resizing/其主體包含base64_解碼,評估,gzinflate,php://input,<?php,系統(,exec(. - 標記在計劃變更窗口之外創建的新管理用戶。.
- 將 REST 端點上的 403/5xx 響應的激增相關聯——通常在掃描/利用期間出現。.
- 監視
wp-content/uploads或具有雙重擴展名的文件(例如,,image.jpg.php). - 監控來自網頁伺服器到新外部 IP 和域的出站連接。.
恢復和事件後行動
- 從乾淨的備份恢復或完全清理網站和主機。.
- 更換任何被洩露的憑證(資料庫、WordPress、主機、API 金鑰)。.
- 將插件更新至 1.5.7 或更高版本。.
- 在環境中執行全面掃描:容器、主機操作系統、計劃任務和資料庫以檢查後門。.
- 如果私鑰可能已被暴露,請重新發行 TLS 證書。.
- 根據當地合規要求通知主機提供商和受影響方。.
- 改善監控和保護措施,以檢測重新感染的嘗試。.
快速檢測命令和檢查
# 檢查插件版本
常見問題
問:我更新到 1.5.7 — 我安全嗎?
答:更新到 1.5.7 修復了潛在的漏洞。然而,如果您的網站在更新之前已經被攻擊,後門和未經授權的更改可能仍然存在。請遵循取證檢查清單並掃描網站。.
問:如果我無法更新(自定義代碼依賴)怎麼辦?
答:應用虛擬修補(伺服器/WAF 規則)以阻止對插件的 REST 端點的訪問,或在測試和計劃更新時暫時停用插件。.
問:阻止 REST 請求會破壞合法的圖像功能嗎?
答:激進的阻止可能會影響合法功能。目標是阻止對插件特定 REST 路徑的未經身份驗證的調用,並在可能的情況下在僅檢測模式下明確測試規則,然後再進行全面阻止。.
最終檢查清單(可複製)
- [ ] 立即將 cf-image-resizing 更新至 1.5.7(或更高版本)。.
- [ ] 如果無法更新,請應用伺服器級別或 WAF 規則以阻止 /wp-json/cf-image-resizing/ 和可疑的有效載荷。.
- [ ] 檢查日誌以查看 REST API 的訪問和可疑的請求主體。.
- [ ] 搜尋新創建的管理員用戶、修改的文件和意外的計劃任務。.
- [ ] 如果懷疑遭到攻擊,請備份並保留證據。.
- [ ] 旋轉憑證並加強您的環境。.
- [ ] 實施監控和檢測規則以發現重新感染的嘗試。.
如果您需要協助實施這些遏制措施、進行取證檢查或進行恢復,請立即聘請合格的事件響應或安全專業人員。在香港及更廣泛的亞太地區,及時的遏制和證據保存對於限制損害和滿足監管義務至關重要。.
保持警惕 — 現在就進行修補並驗證您的環境。.