WordPress 6.4版本才刚发布【WordPress 6.4版本“Shirley”发布 大量性能提升更新】,结果由于 Requests 库中的一个改动出现了一个关键错误,导致运行旧版 cURL 的服务器在更新时出现问题,WordPress 的贡献者们在过去的 24 小时内迅速开展工作,准备发布 6.4.1 维护版本。
![图片[1]-WordPress 6.4.1版本修复严重的cURL/Requests错误-搬主题](https://cdn.banzhuti.com/2023/04/20230430160204459.jpg)
托管公司开始报告该漏洞的广泛影响。来自丹麦最大托管公司之一的 Tom Sommer 在 GitHub 上提交了一个问题,概述了 cURL 超时是如何影响网站的:
- 当使用 Curl 7.29.0(或许还有其他版本)时,会破坏向 https://api.wordpress.org/ 和许多其他网站的下载
Error: RuntimeException: Failed to get url 'https://api.wordpress.org/core/version-check/1.7/?locale=en_US': cURL error 28: Operation timed out after 10000 milliseconds with 807 out of -1 bytes received.- 它还会导致网站健康中的 REST API 出现错误:
REST API response: (http_request_failed) cURL error 28: Operation timed out after 10005 milliseconds with XXX out of XXX bytes received” - 它还会阻止 WordPress 插件和核心更新,基本上是任何依赖 WordPress 内部 Curl 处理程序的更新。
由于不清楚如何才能让用户收到更新,这个问题成了重中之重。
“萨默说:”即使你现在解决了这个问题,也会阻止未来自动升级到 6.4.1,因为它破坏了 Curl 请求,所以人们更新的唯一方法就是手动升级。”等待的时间越长,问题就会越严重。
据 Nexcess 报告,受该漏洞影响的网站数以万计。这个问题超出了大多数用户自己手动打补丁的能力范围,导致主机必须想办法更新客户。
“Javier Martín González 报告说:”更新到 WordPress 6.4 后,我的所有网站都锁定了。”没有更新的网站则正常运行。
据报告,该错误还可能导致 Stripe API、WP-Admin 和性能问题。
Liquid Web/Nexcess 产品经理 Tiffany Bridge 总结了问题出现的原因:
看起来是这样:
- 有人报告了一个与入侵保护系统和 WordPress 之间的交互有关的错误
- 然后他们向 WordPress 提交了自己的补丁程序
- 该领域的项目负责人要求提交者编写测试,但他没有这样做
- 然后,尽管没有测试,他们还是合并了 PR
- 与此同时,所有主机都必须在自己的机群中恢复这一变更,以便我们的客户在运行受影响的 cURL 版本时仍能获得核心和插件更新等小功能。(7.29 已确认,可能还有其他版本)
WordPress 的核心贡献者必须通过事后总结或其他讨论来弄清这个漏洞是如何被允许通过的,以防止这种情况今后在如此大的范围内发生。
WordPress 6.4.1 将请求库从 2.0.8 版更新到 2.0.9 版,作为一个热修复版本来缓解这一问题。它还原了有问题的更改。6.4.1 版还包括对其他三个独立问题的修复。对于拥有支持后台自动更新的网站的用户,自动更新已于今晚发布。
























暂无评论内容