資安雷達 2026 年 10 月 9 日

2026-10-09 — Go 1.27.2 與 1.26.9 修補 15 個漏洞,聚焦 net/http

primary=https://www.openwall.com/lists/oss-security/2026/10/08/9 primary=https://go.dev/doc/devel/release primary=https://github.com/golang/go/issues/81744

Go 1.27.2 與 1.26.9 修補 15 個漏洞,net/http 的 CONNECT 與 HTTP/2 佔多數

oss-security(轉載 golang-announce)· 2026-10-08

Go 一次修掉 15 個安全問題,其中 net/http 就占 9 個,主軸是 HTTP/1 的 CONNECT 連線狀態處理錯誤,以及 HTTP/2 的資源耗盡。這不是只改 bug 的 patch release,任何對外提供 Go HTTP 服務或反向代理的人都該升級。

修補版本為 Go 1.27.2 與 Go 1.26.9,兩者都在 2026-10-08 發布,見 官方 release 頁。公告未列各 CVE 的受影響版本範圍,也未提及 golang.org/x/net,本文不推測。

漏洞機制:CONNECT 之後仍當成 HTTP

CVE-2026-94439(Go issue 81744):handler 對 HTTP/1 的 CONNECT 請求回 2xx 後若沒有 hijack,伺服器仍繼續把這條連線當 HTTP 解析。2xx 的 CONNECT 回應其實代表連線已變成隧道,位元組不該再被解讀為請求。

若前面有代理把後續位元組視為隧道資料、Go 卻當成新請求處理,就形成 request smuggling。修法是伺服器對 CONNECT 回應後一律關閉連線,不論狀態碼。

同類問題出現在用戶端與代理:CVE-2026-56866(issue 81740)是 HTTP/1 用戶端在 CONNECT 被拒後連線不同步,ReverseProxy 現在對 CONNECT 回 405。

修補前修補後
伺服器收到 CONNECT 並回 2xx繼續讀取並服務連線上的請求回應後一律關閉連線
ReverseProxy 收到 CONNECT可能造成連線不同步回 405

HTTP/2 與資源耗盡

HTTP/2 方面有幾項,影響都是讓伺服器崩潰或耗盡資源:

  • CVE-2026-97032:HPACK 編碼器表大小的競態,造成伺服器崩潰。
  • CVE-2026-78659:宣告大量 Trailer 欄位造成記憶體耗盡。
  • CVE-2026-78669:反覆變更 SETTINGS_INITIAL_WINDOW_SIZE 造成過高 CPU。
  • CVE-2026-78660:HTTP/2 transport 接受格式錯誤的 framing 標頭,經反向代理可走私回應。

另一項是 CVE-2026-78667:Range 標頭含大量範圍會吃光 CPU,現在加上 200 個範圍的上限,可用 GODEBUG httpservecontentmaxranges 調整。若你的服務靠大量範圍請求運作,升級後行為會改變。

影響範圍

其餘修補涵蓋 crypto/tls 的 ECH 外層擴充重複引用造成記憶體放大(CVE-2026-97031)、cmd/go 對 golang.org/fips140 與 golang.org/toolchain 的校驗繞過(CVE-2026-94444、CVE-2026-94447)、html/template 兩項、net/textproto 與 mime/multipart 的記憶體限制繞過,以及 Windows 上 os.Root.Mkdir 可經 junction 離開根目錄(CVE-2026-56857)。完整清單見 公告。

  • 對外 Go HTTP 服務與反向代理:升級到 1.27.2 或 1.26.9,並重建二進位檔與容器映像,因為標準函式庫是靜態編進程式的。
  • 在代理後面使用 CONNECT 的服務:確認升級後關閉連線的行為不會破壞既有隧道流程。
  • CI 與 Windows 使用者:cmd/go 的校驗繞過牽涉惡意 module proxy,內部 proxy 的來源需要核對。

各漏洞的嚴重度分數與受影響版本,公告未說明。

原始來源:oss-security 公告、Go release history、Go issue 81744


End of article
0
Would love your thoughts, please comment.x
()
x