WordPress 6.4.1 修復了一個關鍵的 cURL/Requests 錯誤。

WordPress 貢獻者在過去的 24 小時內迅速準備了一個 6.4.1 維護版本,之前出現了一個關鍵的錯誤,是由於 Requests 庫的更改導致伺服器上執行舊版本 cURL 的更新問題。

託管公司開始報告這個錯誤的廣泛影響。來自丹麥最大的一家託管公司之一的 Tom Sommer 在 GitHub 上提交了一個問題,詳細說明了 cURL 超時如何影響網站:

  • #657 在使用 Curl 7.29.0(以及可能其他版本) 時破壞了對 https://api.wordpress.org/和許多其他站點的下載
  • 错误:RuntimeException:获取网址'https://api.wordpress.org/core/version-check/1.7/?locale=en_US'失败:cURL 错误 28:10000 毫秒后操作超时,已接收 807 个字节,共-1 个字节。
  • 這也導致了站點健康中的 REST API 錯誤:REST API 响应:(http_request_failed)cURL 错误 28:10005 毫秒后操作超时,已接收 XXX 个字节,共 XXX 个字节
  • 這也阻止了 WordPress 外掛和核心更新,基本上是依賴 WordPress 內部 Curl 處理程式的任何東西。

這個問題成為了首要任務,因為不清楚使用者如何接收更新。

「即使現在您修復了這個問題,該問題也會阻止任何將來自動升級到 6.4.1 的操作,因為它破壞了 Curl 請求,所以人們更新的唯一方式是手動更新,」 Sommer 說。 「您等待的時間越長,問題就會變得越大。」

Nexcess 報告稱,數以萬計的站點受到了這個錯誤的影響。這個問題超出了大多數使用者自行修補的範圍,因此託管提供商必須找出如何更新他們的客戶。

「在升級到 WordPress 6.4 後,我的所有網站都被鎖住了,」Javier Martín González 報告說。 「沒有更新的網站正常工作。」

據報告,這個錯誤還導致了可能引起 Stripe API 、 WP-Admin 和效能問題。

Liquid Web/Nexcess 產品經理 Tiffany Bridge 總結了這個問題是如何出現的:

看起來像這樣:

  • 有人報告了一個關於入侵保護系統和 WordPress 之間互動的錯誤
  • 然後他們提交了自己的補丁給 WordPress
  • 該領域的專案負責人要求提交者編寫測試,但他沒有這樣做
  • 儘管缺乏測試,他們仍然合併了 PR
  • 與此同時,如果我們執行受影響的 cURL 版本 (已確認為 7.29,可能還有其他版本),則所有託管提供商都必須自己恢復更改,以確保我們的客戶仍然可以獲得核心和外掛更新等小事情。

WordPress 核心貢獻者必須弄清楚這個錯誤是如何透過的,透過事後分析或其他討論,以防止將來發生類似的大規模問題。

WordPress 6.4.1 更新了 Requests 庫,從版本2.0.82.0.9,作為一個快速修復版本,以減輕問題。它撤銷了有問題的更改。版本 6.4.1 還包括針對其他三個獨立問題的修復。對於支援自動後臺更新的站點,自動更新已於今晚釋出。

文章目錄



發表評論

發表回覆

您的郵箱地址不會被公開。 必填項已用 * 標註