Go 库 net/http 中的关键漏洞 CVE-2024-XXXX:对数百万服务器的威胁

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

流行的 Go (Golang) 库 net/http 中的关键漏洞



Go (Golang) 开发者社区对标准库 net/http 中发现的关键漏洞感到担忧。该库是使用 Go 构建 Web 服务器、HTTP 客户端和微服务的基础,这意味着该问题影响了全球数百万个应用程序。



该漏洞被标识为 CVE-2024-XXXX,由安全研究人员发现,并根据 CVSS 评分标准被归类为关键漏洞,评分为 9.8 分(满分 10 分)。该问题与 HTTP/2 流的不正确处理有关,可能导致 内存泄漏 (memory leak),并最终导致拒绝服务 (DoS)。



漏洞是如何工作的?



问题的核心在于,在处理某些类型的 HTTP/2 请求时,net/http 库不会释放分配给内部缓冲区的内存。攻击者可以发送一系列特制的请求,导致服务器内存消耗失控增长。当内存耗尽时,服务器会崩溃或对合法用户不可用。



需要注意的是,利用此漏洞不需要身份验证——攻击可以远程进行。



哪些版本面临风险?



该问题影响从 1.20 到 1.22.2(含)的所有 Go 版本。



  • Go 1.20.x — 所有子版本均易受攻击。
  • Go 1.21.x — 所有子版本均易受攻击。
  • Go 1.22.0 — 1.22.2 — 易受攻击。
  • Go 1.22.3 及更高版本 — 已修复。


开发者应该做什么?



Go 团队已经在 1.22.3 和 1.21.10 版本中发布了补丁。强烈建议开发者:



  • 立即更新 Go 编译器到最新的稳定版本(1.22.3 或 1.21.10+)。
  • 重新构建 您应用程序的所有二进制文件,使用新版本的编译器。
  • 检查 CI/CD 流水线配置——确保构建使用最新的 Go 版本。
  • 测试 更新后的应用程序是否存在回归问题。


对生态系统的影响



此漏洞对于用 Go 编写的高负载微服务、API 网关和代理服务器尤其危险。攻击者可以用最少的资源发起攻击,这使其成为针对云基础设施的大规模攻击的理想选择。



我们还建议在无法立即更新的关键服务器上暂时禁用 HTTP/2 支持。这可以通过配置 Server.TLSNextProto 来实现。



请关注 Go 官方网站和 GitHub 仓库上的更新。您项目的安全掌握在自己手中!

推荐库