Go 1.26 Released With Fixes for Multiple Vulnerabilities Causing Memory Exhaustion
2026/01/16 gbhackers — Go 開発チームが公表したのは、サービス拒否攻撃/任意のコード実行/不正なセッション再開を引き起こす可能性のある、6件の深刻なセキュリティ脆弱性を修正するバージョン 1.25.6/1.24.12 のリリースである。これらのマイナー・アップデートは Go セキュリティ・ポリシーに準拠しており、暗号化/ネットワーク/ツールチェーンといったコア・コンポーネント全体をカバーする重要な強化が含まれている。

最も影響が大きい脆弱性 CVE-2025-61726 は、”net/http” Request.ParseForm 関数のメモリ枯渇の欠陥に起因するものだ。URL エンコードされたフォームデータに対する検証が不十分な場合に、解析処理中に想定外のメモリ割り当てが発生する可能性がある。
具体的には、巨大なキーや再帰的な構造を持つフォームデータの送信により、サーバのメモリが一気に消費される状況などが想定される。したがって、この脆弱性を悪用する攻撃により、利用可能なシステム・メモリが枯渇し、アプリケーションが応答不能に陥る恐れがある。
| CVE | Component | Severity | Impact |
|---|---|---|---|
| CVE-2025-61728 | archive/zip | High | Denial of service via super-linear indexing algorithm |
| CVE-2025-61726 | net/http | High | Memory exhaustion and denial of service |
| CVE-2025-68121 | crypto/tls | High | Unauthorized session resumption and authentication bypass |
| CVE-2025-61731 | cmd/go | Critical | Arbitrary code execution through unsanitized compiler flags |
| CVE-2025-68119 | cmd/go | Critical | Remote code execution and arbitrary file writes |
| CVE-2025-61730 | crypto/tls | Medium | Minor information disclosure via network-local injection |
“archive/zip” における脆弱性 CVE-2025-61728 は、悪意の ZIP アーカイブを処理する際に使用される、超線形なファイル・インデックス・アルゴリズムに起因する。それにより、アーカイブを開く過程で、データ量に対して処理時間が指数関数的に増大する性能低下が発生し、サービス拒否のリスクが高まる。
“crypto/tls” モジュールの脆弱性 CVE-2025-68121 は、自動生成されたセッション・チケット・キーを、Config.Clone が異なるインスタンス間で誤ってコピーしてしまうという問題を引き起こす。セッション再開に関する深刻な設計上の欠陥であり、可用性に影響を及ぼす。この欠陥により、本来は分離されるべきコンフィグ間で、クライアントがセッションを再開できる状態となっていた。つまり、一方のサービスで認証されたセッションを悪用し、他のサービスへの未認証アクセスが継続されるリスクが生じていた。
さらに、サーバ側の実装では、セッション再開時に証明書チェーン全体の有効期限が検証されていなかった。その結果として、中間証明書やルート証明書の有効期限が失効していても、セッションが継続される可能性があった。これらの問題により、認証のバイパスや暗号化通信の整合性低下につながる条件が成立していた。
Google によると、”cmd/go” ツール・チェーンの脆弱性は、VCS 統合を介してリモートコード実行経路を許していた。
CgoPkgConfig フラグのサニタイズ回避により、サニタイズされていないコンパイラ・フラグが pkg-config に渡される可能性があった。また、Mercurial を利用する環境では、VCS コマンドのコンフィグにより、モジュールのダウンロード中に予期しないコマンド実行が発生する恐れがあった。
さらに、Git のインストール処理では、任意のファイルパスに書き込まれた悪意のバージョン文字列が悪用される可能性が確認されている。
開発者および運用者に求められるのは、影響を受ける環境に対して速やかにアップデートを適用し、これらの攻撃ベクターを排除することだ。
Go 言語の標準ライブラリや開発ツールにおいて、システムの停止や乗っ取りにつながる 6 件の脆弱性が公表され、修正版 (1.25.6/1.24.12) がリリースされました。今回の脆弱性の中で特に影響が大きいのは、Web サーバの基本機能であるフォームデータの解析 “net/http” と、ビルドツールである goコマンド “cmd/go” に関わるものです。原因の一つは、Webサーバが受信したデータに対する、メモリ割り当ての管理不足にあります。攻撃者が巨大なデータや複雑な構造を持つフォームを送信すると、サーバ側で過剰なメモリ消費が発生し、システム全体が応答不能になる (DoS攻撃) 恐れがあります。
また、開発ツール “cmd/go” においては、外部のライブラリ (Mercurial/Git など) と連携する際のコマンド実行処理に不備がありました。これにより、悪意のモジュールをダウンロード・ビルドしようとするだけで、開発者のマシン上で任意のコマンドが実行されてしまう (RCE) という、きわめて危険なリスクが存在していました。このほかにも、TLS 通信におけるセッション再開の不備など、認証のバイパスにつながる問題も修正されています。ご利用のチームは、ご注意ください。よろしければ、Golang での検索結果を、ご参照ください。
You must be logged in to post a comment.