2021 年 7 月 13 日在 WooCommerce 中檢測到的嚴重漏洞——你需要知道的

已發表: 2021-07-15

最後更新時間:2021 年 7 月 23 日

2021 年 7 月 13 日,安全研究員 Josh 通過我們的 HackerOne 安全計劃發現並負責任地披露了一個與 WooCommerce 和 WooCommerce Blocks 功能插件有關的嚴重漏洞。

得知該問題後,我們的團隊立即進行了徹底調查,審核了所有相關代碼庫,並創建了一個補丁來修復每個受影響的版本(90 多個版本)的問題,該補丁自動部署到易受攻擊的商店。

我有一家 WooCommerce 商店——我應該採取什麼措施?

WooCommerce 5.5.1 的自動軟件更新於 2021 年 7 月 14 日開始向所有運行每個插件受影響版本的商店推出,但我們仍然強烈建議您確保使用最新版本。 對於 WooCommerce,這是5.5.2 * 或您的發布分支中可能的最高數字。 如果您還運行 WooCommerce Blocks,您應該使用該插件的 5.5.1 版本。

重要提示:隨著 2021 年 7 月 23 日 WooCommerce 5.5.2 的發布,上述自動更新過程已停止。

更新到補丁版本後,我們還建議:

  • 更新您網站上任何管理員用戶的密碼,特別是如果他們在多個網站上重複使用相同的密碼
  • 輪換您網站上使用的任何支付網關和 WooCommerce API 密鑰。

下面有關於這些步驟的更多信息。

* WooCommerce 5.5.2 於 2021 年 7 月 23 日發布。此版本中包含的修復與最近的安全漏洞無關。

我如何知道我的版本是否是最新的?

下表包含 WooCommerce 和 WooCommerce 塊的修補版本的完整列表。 如果您正在運行不在此列表中的 WooCommerce 或 WooCommerce Blocks 版本,請立即更新到您發布分支中的最高版本。

已修補的 WooCommerce 版本已修補的 WooCommerce 塊版本
3.3.6 2.5.16
3.4.8 2.6.2
3.5.9 2.7.2
3.6.6 2.8.1
3.7.2 2.9.1
3.8.2 3.0.1
3.9.4 3.1.1
4.0.2 3.2.1
4.1.2 3.3.1
4.2.3 3.4.1
4.3.4 3.5.1
4.4.2 3.6.1
4.5.3 3.7.2
4.6.3 3.8.1
4.7.2 3.9.1
4.8.1 4.0.1
4.9.3 4.1.1
5.0.1 4.2.1
5.1.1 4.3.1
5.2.3 4.4.3
5.3.1 4.5.3
5.4.2 4.6.1
5.5.1 4.7.1
5.5.2 4.8.1
4.9.2
5.0.1
5.1.1
5.2.1
5.3.2
5.4.1
5.5.1

為什麼我的網站沒有自動更新?

您的站點可能由於多種原因沒有自動更新,其中一些最有可能是:您正在運行受影響的版本之前的版本(WooCommerce 3.3 以下),您的站點上已明確禁用自動更新,您的文件系統是只讀,或者存在阻止更新的潛在衝突擴展。

在所有情況下(除了第一個示例,您不受影響),您應該嘗試手動更新到發布分支上的最新修補版本(例如 5.5.2、5.4.2、5.3.1 等),如上表。

是否有任何數據被洩露?

根據當前可用的證據,我們認為任何利用都是有限的。

如果商店受到影響,則暴露的信息將特定於該站點存儲的內容,但可能包括訂單、客戶和管理信息。

如何檢查我的商店是否被利用?

由於此漏洞的性質,以及 WordPress(以及 WooCommerce)允許處理 Web 請求的極其靈活的方式,沒有確定的方法來確認漏洞利用。 您可以通過查看您的網絡服務器的訪問日誌(或從您的網絡主機獲得幫助)來檢測一些利用嘗試。 從 2019 年 12 月到現在,出現以下格式的請求可能表明存在攻擊企圖:

  • REQUEST_URI 匹配正則表達式/\/wp-json\/wc\/store\/products\/collection-data.*%25252.*/
  • REQUEST_URI 匹配正則表達式/.*\/wc\/store\/products\/collection-data.*%25252.*/ (請注意,此表達式效率不高/在大多數日誌記錄環境中運行緩慢)
  • /wp-json/wc/store/products/collection-data/?rest_route=/wc/store/products/collection-data的任何非 GET(POST 或 PUT)請求

我們看到利用此漏洞的請求來自以下 IP 地址,超過 98% 來自列表中的第一個。 如果您在訪問日誌中看到這些 IP 地址中的任何一個,則應假定該漏洞已被利用:

  • 137.116.119.175
  • 162.158.78.41
  • 103.233.135.21

我需要更改哪些密碼?

您的密碼不太可能被洩露,因為它是經過哈希處理的。

WordPress 用戶密碼使用鹽進行哈希處理,這意味著生成的哈希值很難破解。 這種加鹽哈希方法可以保護您作為管理員用戶的密碼,以及您網站上任何其他用戶(包括客戶)的密碼。 雖然存儲在數據庫中的密碼的哈希版本可能已通過此漏洞被訪問,但哈希值應該是難以辨認的,並且仍然可以保護您的密碼免遭未經授權的使用。

這假設您的網站正在為用戶使用標準的 WordPress 密碼管理。 根據您在站點上安裝的插件,您的密碼或其他敏感信息可能以不太安全的方式存儲。

如果您網站上的任何管理員用戶可能在多個網站上重複使用了相同的密碼,我們建議您更新這些密碼,以防他們的憑據在其他地方被洩露。

我們還建議更改存儲在 WordPress/WooCommerce 數據庫中的任何私人或秘密數據。 這可能包括 API 密鑰、支付網關的公鑰/私鑰等,具體取決於您的特定商店配置。

作為擴展開發者或服務提供商,我們應該提醒我們的 WooCommerce 商家嗎?

如果您與任何實時 WooCommerce 商店或商家合作,我們鼓勵您與他們合作,以確保他們了解此問題,和/或將他們的商店更新為安全版本。

如果您構建了依賴於 WooCommerce API 的擴展程序或提供 SaaS 服務,我們鼓勵您幫助商家重置密鑰以連接到您的服務。

作為店主,我應該提醒我的顧客嗎?

是否提醒客戶最終取決於您。 您通知客戶或重置密碼等內容的義務將根據您的站點基礎設施、您和您的客戶所在的地理位置、您的站點正在收集的數據以及您的站點是否已被入侵等詳細信息而有所不同。

您可以採取的保護客戶的最重要措施是將您的 WooCommerce 版本更新為已修復此漏洞的版本。

更新後,我們建議:

  • 更新站點上任何管理員用戶的密碼,尤其是當您在多個網站上重複使用相同的密碼時
  • 輪換您網站上使用的任何支付網關和 WooCommerce API 密鑰。

作為店主,您最終決定是否要採取額外的預防措施,例如重置客戶密碼。 WordPress(以及 WooCommerce)用戶密碼使用鹽進行哈希處理,這意味著生成的哈希值很難破解。 這種加鹽哈希方法適用於您網站上的所有用戶密碼,包括您客戶的密碼。

WooCommerce 仍然可以安全使用嗎?

是的。

像這樣的事件並不常見,但不幸的是有時會發生。 我們的意圖始終是立即響應並以完全透明的方式運作。

自從得知該漏洞以來,該團隊一直在夜以繼日地工作,以確保修復已經到位,並且我們的用戶已被告知。

我們對平台安全性的持續投資使我們能夠防止絕大多數問題 - 但在可能影響商店的極少數情況下,我們努力快速修復,主動溝通,並與 WooCommerce 社區合作。

如果我還有問題怎麼辦?

如果您對此問題有任何進一步的疑慮或疑問,我們的幸福工程師團隊隨時為您提供幫助 - 打開支持票。