Go 1.25.7 and Go 1.24.13 Released With Patches for Multiple Security Vulnerabilities
2026/02/06 gbhackers — Go チームは、公式に Go 1.25.7 および Go 1.24.13 をリリースした。これらのマイナー・リリースは、cmd/cgo コマンドおよび crypto/tls ライブラリに影響する、2 件のセキュリティ脆弱性 CVE-2025-61732/CVE-2025-68121に対処するものである。これらのバージョンでは、コード・スマグリングや認証バイパスといった潜在的リスクの修正が行われているため、すべての利用者に速やかなアップデートが推奨される。

脆弱性の概要
cmd/cgo:コメント解析を悪用したコード・スマグリング
1 つ目の脆弱性 CVE-2025-61732 は、C コードを呼び出す Go パッケージを作成するための cmd/cgo ツールに影響を及ぼす。
この問題は、Go コンパイラと C/C++ コンパイラにおけるコメント解析方法の差異に起因する。この解析差異を悪用する攻撃者は、生成される cgo バイナリ内へコードを密かに混入させることが可能となる。
特定のコメント構造を細工することで、悪意ある命令がドキュメンテーション文字列内に隠蔽され、開発者がコメントとして無視されると想定しているものが、コードとして実行され得る。
今回の修正により、新バージョンの cgo コンパイラでは、cgo Abstract Syntax Trees (ASTs) において、ユーザー提供のドキュメンテーション・コメントを解析しない仕様になった。この問題は、GMO Flatt Security Inc. の RyotaK により報告された。
crypto/tls:セッション再開における認証バイパス
2 つ目の問題は crypto/tls パッケージに関するものであり、CVE-2025-68121 が割り当てられている。この脆弱性は、Config.GetConfigForClient を使用した場合に、予期しない挙動を引き起こすものだ。
明示的に上書きされない限り、デフォルトの GetConfigForClient は、オリジナルのコンフィグにおけるセッション・チケット・キーを使用する。そのときに返されるコンフィグが、ClientCAs などの認証パラメータを変更した場合に、この問題が発生する。
この状況では、親コンフィグで確立された接続が再開され、新しいコンフィグで設定された認証要件がバイパスされる可能性がある。
今回のパッチにより、接続を再開する際の crypto/tls は、以前に検証された証明書チェーンのルートが ClientCAs または RootCAs に存在するかどうかを、能動的に検証するようになった。
ClientAuth が VerifyClientCertIfGiven または RequireAndVerifyClientCert にコンフィグされている場合に、この検証ロジックは適用される。
この脆弱性は、Coia Prant により発見/報告された。
| CVE ID | Component | Severity / Type | Description |
|---|---|---|---|
| CVE-2025-61732 | cmd/cgo | Code Injection | Discrepancy in comment parsing between Go and C/C++ allows code smuggling in cgo binaries. |
| CVE-2025-68121 | crypto/tls | Auth Bypass | Session resumption using GetConfigForClient may bypass updated authentication parameters (e.g., ClientCAs). |
開発者は、Go 環境を直ちに更新すべきである。バイナリおよびソース配布物は、公式 Go ダウンロード・ページで提供されている。
この問題の原因は、プログラムを組み立てるツールや安全な通信を守る仕組みの中に、解釈のズレやチェックの漏れが生じていたことにあります。具体的には、Go から C 言語を呼び出すための cgo ツールにおいて、Go と C/C++ で異なるコメント注釈という隙を突かれ、コメントに見せかけた悪意のコードをバイナリに紛れ込ませる、コード・スマグリングが可能になっていました。また、TLS 暗号通信においては、一度確立した接続を再開する際に、新しい設定で証明書の認証要件を正しく引き継げず、古い許可証で認証をすり抜けられてしまう、認証バイパスのリスクが存在していました。ご利用のチームは、ご注意ください。よろしければ、Golang での検索結果も、ご参照ください。

You must be logged in to post a comment.