Forminator Forms,一個擁有超過 60 萬活躍安裝量的 WordPress 外掛,被揭露一個嚴重的安全漏洞,可能被利用來在易受攻擊的網站上實現任意程式碼執行。

此漏洞,追蹤代碼為 CVE-2026-15748,在 CVSS 評分系統中獲得 9.8 的高分。它是由一位化名為「daroo」的安全研究員發現並報告的。

Wordfence 在今天發布的報告中表示:「此漏洞使得未經驗證的攻擊者能夠將包括可執行 PHP 檔案在內的任意檔案上傳到易受攻擊的網站,這可能導致遠端程式碼執行和網站被完全控制。」

不過,成功利用此漏洞的一個關鍵先決條件是,網站必須有一個同時包含檔案上傳欄位和下拉選單欄位的表單。此漏洞影響外掛 1.56.1 及之前的所有版本。該問題已在 2026 年 7 月 31 日發布的 1.56.2 版本中得到修復。

根據這家 WordPress 安全公司稱,該漏洞屬於任意檔案上傳,存在於「handle_file_upload()」函數中,源於對使用者提供的輸入缺乏足夠的檔案類型驗證。

因此,未經驗證的攻擊者可以利用這個漏洞,透過提交表單並上傳一個特製的 PHP 檔案到易受攻擊的網站,從而實現遠端程式碼執行。一旦獲得此能力,攻擊者就可以完全控制網站。

Wordfence 解釋說:「這是由於 handle_file_upload 中檔案類型驗證不足,其中危險副檔名封鎖清單執行的是精確鍵匹配,但可以透過管道替代的 MIME 類型鍵繞過,再加上一個公開的提交處理器,它信任透過偽造的下拉選單欄位值注入的攻擊者控制的檔案上傳欄位配置。」

另一個值得注意的方面是,在預設配置下,檔案會上傳到一個受 .htaccess 檔案保護的目錄,該檔案可防止 PHP 執行。但如果網站管理員配置了自訂檔案上傳儲存根目錄,則可能沒有相同的保護措施,因為檔案「僅在首次需要時創建,在前端請求期間,負責寫入 .htaccess 檔案的 WordPress 助手未被載入。」

因此,僅僅請求上傳的檔案就足以讓網頁伺服器執行攻擊者控制的 PHP 程式碼。

Wordfence 指出:「這是由於 wppb_log_in_user() 函數在執行 is_wp_error() 檢查之前,對 wp_insert_user() 的返回值呼叫了 absint() — 當提交註冊時,如果使用者名稱長度為 61-70 個字元,WordPress 核心會以 WP_Error 物件拒絕它,但 absint() 在錯誤檢查能夠短路執行之前,將該物件強制轉換為整數 1,導致外掛綁定並返回一個與使用者 ID 1 相關聯的、基於暫存器的自動登入 nonce。」

建議擁有這兩個外掛之一的網站所有者應盡快套用更新,並確保其安裝是最新版本。