Go (Golang) 标准库中发现严重漏洞:威胁数百万台服务器
Go (Golang) 开发者社区因标准库 net/http 中发现严重漏洞而震动。该漏洞编号为 CVE-2023-XXXX(示例编号),影响 HTTP 请求的处理,可能导致严重后果——从绕过安全策略到完全入侵服务器。
该问题属于 HTTP 请求走私 攻击类别。它源于 Go HTTP 请求解析器对 Transfer-Encoding 和 Content-Length 头部的错误处理。攻击者可以发送一个特制的请求,该请求被 Go 服务器解析的方式与位于其前的代理服务器或负载均衡器不同。
危险在哪里?
利用此漏洞,攻击者可以:
- 绕过授权和身份验证——注入恶意请求,服务器将其视为来自其他用户的合法操作。
- 拦截会话数据——“毒化”代理服务器缓存并访问受保护资源。
- 发起 XSS 攻击——在服务器响应中注入脚本,这些脚本将在受害者的浏览器中执行。
- 实现拒绝服务 (DoS)——发送导致应用程序挂起或崩溃的请求。
该漏洞尤其危险,因为 net/http 是 标准库,被绝大多数 Go 项目使用,从简单的 API 到大型微服务架构。据专家估计,全球数百万台服务器面临威胁。
谁面临风险?
该漏洞影响 1.20.6 和 1.21.0 之前的所有 Go 版本。处于风险中的包括:
- 使用 Go 编写且未使用反向代理的 Web 服务器和 API。
- 使用
net/http内置功能处理请求的应用程序。 - 在负载均衡器或 WAF 后面运行的服务器,这些设备可能以不同方式解析头部。
如何保护?
Go 语言开发者已迅速发布补丁。为保护您的项目,请立即采取以下步骤:
- 更新 Go 到版本 1.20.6 或 1.21.0(取决于您的主版本分支)。
- 使用新版本编译器重新构建所有二进制文件。
- 检查依赖项——如果您使用第三方库或
net/http的封装,请确保它们也已更新且兼容。 - 部署 WAF(Web 应用防火墙)作为额外的安全层,能够过滤可疑请求。
PythonLib 团队强烈建议所有 Go 开发者不要推迟更新。该漏洞是严重