介紹
2024 年 5 月 7 日,領先的安全諮詢組織 WP-Firewall 發布了一份有關 Uncode Core 插件中發現的關鍵漏洞的詳細報告。如果您是 Uncode 用戶,請將核心外掛程式更新至至少版本 2.8.9 以保護您的 WordPress 網站免受潛在攻擊至關重要。這篇文章將深入探討這些漏洞的具體情況、其影響以及緩解這些漏洞所採取的步驟。
關於取消編碼核心插件
Uncode Core 外掛程式由 Undsgn 開發,是 Uncode 主題的重要組成部分,Uncode 主題是 WooCommerce 網站非常受歡迎的高級主題,在 ThemeForest 上的銷量超過 110,000 個。 Uncode 主題以其完美的像素設計而聞名,非常適合各種網站,包括作品集、代理商、自由工作者、部落格和線上商店。
安全漏洞
WP-Firewall 的安全研究人員在 Uncode Core 外掛程式中發現了兩個重大漏洞:
1.經過驗證的任意檔案和目錄刪除
描述:此漏洞允許任何至少具有訂閱者角色的經過驗證的使用者刪除伺服器上的任意目錄。問題在於“delete_download”函數,該函數缺乏適當的權限和隨機數檢查。此函數附加到“wp_ajax_uncodefont_delete_download”操作,使經過身份驗證的使用者可以利用它。
技術細節:
function delete_download() {
if (isset($_REQUEST['font_family'])) {
$font_family = $_REQUEST['font_family'];
$font_dir = Trailingslashit($this->font_directory).$font_family;
$fontkit_zip = $font_dir.'.zip';
if (@file_exists($fontkit_zip)) {
if (!@unlink($fontkit_zip)) {
echo json_encode(array(
'error' => sprintf( esc_html__( 'Failed to delete @fontface kit zip %1$s.', 'uncode-core' ), $fontkit_zip )
));
die();
}
}
// 無法刪除目錄,因為建立該目錄的 unzip_file 使用 WP_Filesystem。所以我們使用WP_Filesystem來刪除它。
$this->setup_wp_filesystem();
global $wp_filesystem;
if (isset($wp_filesystem)) {
$delete_dir = $wp_filesystem->delete($font_dir, true);
if (!$delete_dir) {
echo json_encode(數組('錯誤' => $delete_dir['錯誤']));
die();
}
}
echo json_encode(array('success' => "Download deleted"));
}
die();
}
includes/font-system/font-system.php, function delete_download()
函數根據使用者輸入建構「$font_dir」變數(「$_REQUEST['font_family']」),無需清理,允許目錄遍歷和任意刪除。
2. 認證提權
描述:此漏洞允許任何具有最低訂閱者角色的經過驗證的使用者將其權限升級到 WordPress 網站上的任何角色。這是由於「save_option」函數中的 WP Option 更新不安全,缺乏適當的權限檢查。
技術細節:
public function save_option() {
if ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], &#x-27.uncode);
if ( isset( $_POST['值'] ) && $_POST['值'] && isset( $_POST['] && isset( $_POST[&15Tx27); 5Tx2 7;option_id'] ) {
$autoload = isset( $_POST['自動載入'] ) && $_POST['自動載入'] === &#xTP5Tx27;自動載入'] === &#xTP27; ?真假;
update_option( $_POST['option_id'], $_POST['值'], $autoload );
---------- CUT HERE ----------
includes/core-settings/class-core-settings.php, function save_option()
任何有權存取 wp-admin 區域的經過驗證的使用者都可以檢索此函數中使用的隨機數,從而允許對選項進行未經授權的更新和權限升級。
補丁
為了解決這些漏洞,Uncode Core 外掛程式開發人員發布了版本 2.8.9,其中包括以下修復:
– 經過驗證的任意檔案和目錄刪除:在「delete_download」函數中實作了權限和隨機數檢查。
– 經過身份驗證的權限升級:在「save_option」函數中套用了權限和隨機數檢查,並新增了選項鍵的白名單檢查。
結論
確保 WordPress 網站的安全性需要及時更新最新的修補程式和安全性建議。 Uncode Core 外掛程式中的漏洞強調了對任何敏感操作實施適當的權限和隨機數檢查的重要性。始終清理使用者輸入並限制可以透過使用者操作更新或刪除的內容的範圍。
有關更多詳細信息,您可以閱讀 WP-Firewall 網站上的完整安全建議 這裡.
保持安全
WP-Firewall 為 WordPress 安全性提供各種解決方案,包括外掛程式審核、漏洞監控和回應以及託管 WordPress 安全服務。如果您是外掛開發人員或安全研究人員,請考慮加入 WP-Firewall。