CVE 索引EN
L3 · 拉裤子了Go · cgo · CI · HTTP/1go-november-security

Go 修复多条构建时代码执行路径和一处 HTTP/1 服务崩溃漏洞

Go 1.27.4 和 1.26.11 修复 12 项漏洞。恶意构建输入可触发代码执行。另一处竞态可使使用 MaxBytesReader 或 MaxBytesHandler 并并发读取请求体与写入响应头的 HTTP/1 服务崩溃。

披露时间
2026年11月10日
公开披露日期
严重程度
拉裤子了
本页收录 12 个 CVE
波及范围
构建不可信 Go 包的环境,以及使用 Go 请求体大小限制辅助函数并并发读取请求体和写入响应头的 HTTP/1 服务
go
在野利用
未知
Go 发布公告和漏洞记录均未报告在野利用。

发生了什么

Go 于 11 月 10 日发布 1.27.4 和 1.26.11。其中 11 项修复涉及 cgo 指令、原生对象文件、编译或链接参数等构建输入。构建恶意包时,部分漏洞可让攻击者以构建用户身份执行代码。具体路径取决于输入和工具链,例如 GCC specs 文件、Apple 链接器插件或特制 .syso 对象。排查会编译不可信贡献或新引入依赖、同时可访问凭据或发布权限的 CI 作业。

另一项 net/http 漏洞影响使用 MaxBytesReader 或 MaxBytesHandler 的 HTTP/1 处理器。请求体超限时,并发读取请求体和写入响应头可能触发 panic 并使服务崩溃。升级用于生成部署产物的工具链并重新构建受影响服务。只更新构建机,已有二进制文件仍包含旧代码。

马桶里有什么

不安全的 cgo 编译参数

恶意 cgo 包可利用 --sysroot 或 -target 等编译或链接参数在构建时执行代码。

加载不可信 GCC specs 文件

使用 GCC 时,恶意 cgo 包可借特定链接选项加载由包控制的 specs 文件并执行命令。

绕过 Clang 和 GCC 参数检查

恶意 cgo 包可借 Clang -gen-* 或 GCC -gnat* 参数执行代码或向任意目录写文件。

Apple 链接器加载插件

在 Darwin 上,恶意 cgo 包可让 Apple 链接器合并 -l 和 to_library 来加载包指定的插件。

cgo 链接器脚本注入

恶意 cgo 包可利用分离的 -Wl, 参数及 GNU ld.bfd 接受的部分选项传入可执行代码的链接器脚本。

恶意链接输入文件

特制 .syso 文件或 cgo 链接输入可在链接时注入参数或执行代码。

绕过 pkg-config 参数检查

恶意包可通过 #cgo pkg-config: 指令加载不可信 .pc 文件或传入未经校验的编译和链接参数。

Go 对象文件伪装成 .syso

包可将 Go 对象文件伪装成 .syso,借此注入 cgo 链接指令。

ELF 链接参数注入

在 ELF 平台上,恶意包可利用特制 //go:cgo_* 指令向外部链接器注入任意参数。

不安全的动态导入

恶意包可通过 //go:cgo_import_dynamic 或 Windows 上的特制 PE 对象传入不安全的库参数。

用转义引号绕过 cgo 检查

恶意 cgo 包可借 //go:cgo_ldflag 中的转义引号在构建时执行代码,或使 go 命令触发 panic。

HTTP/1 响应头竞态

HTTP/1 服务的处理器使用 MaxBytesReader 或 MaxBytesHandler,并在请求体超限时并发读取请求体和写入响应头,可能导致服务崩溃。

你踩到了吗?

在每台机器上运行 go version,然后输入版本号,或者点一个最接近的。

修复版本(2026年11月10日)
分支安全版本状态
Go 1.271.27.4受支持
Go 1.261.26.11受支持
更早的 Go 版本none升级到受支持分支

案发时间线

  1. 11月10日 17:14 UTC

    Go 发布 1.27.4 和 1.26.11

    公告说明了 11 项工具链修复和 1 项 net/http 修复。

  2. 11月11日 02:51 UTC

    Go 发布漏洞记录

    12 条记录给出了受影响范围和两个修复版本。

各方说法

我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。