セキュリティとプライバシー

Go 1.24のMPTCPデフォルト設定により、LinuxサーバーがカーネルRCEリスクにさらされる

深刻なLinuxカーネルの脆弱性により、MPTCPを介したリモートコード実行が可能になります。Go 1.24ではこのプロトコルがデフォルトで有効になるため、開発者は直ちに緩和策を実施する必要があります。

セキュリティ脆弱性を示唆するGoとLinuxのシンボルイラスト
この記事用に生成されたイラスト

英語の原文から自動翻訳されました。

CVE-2026-98432として特定されたLinuxカーネルの重大なセキュリティ脆弱性は、Goアプリケーションを実行しているサーバーに深刻なリスクをもたらします。この問題は、IPv4 TCP接続処理におけるuse-after-freeバグであり、リモートコード実行(RCE)につながる可能性があります。Goバージョン1.24はLinux上でMultipath TCP(MPTCP)をデフォルトで有効にするため、特定の緩和策を適用するかカーネルをパッチしない限り、多くの最新のGoサービスがこの攻撃経路に意図せずさらされています。

何が起きたか

Goチームは、CVE-2026-98432の開示を受けて緊急の勧告を発行しました。この脆弱性はLinuxカーネルに存在し、IPv4 TCP接続の処理方法に影響を与えます。Anthropicのセキュリティ研究者たちは、MPTCP接続を待機しているサーバーが侵害され、攻撃者が任意のコードをリモートで実行できる実用的なエクスプロイトを実証しました。概念実証(PoC)は具体的にアクティブなMPTCPリスナーを持つシステムを対象としていましたが、根本的なメモリ破損バグは厳密にはMPTCPトラフィックに限定されていません。これは、マルチパスネットワーク用に明示的に構成されていないシステムであっても、同様のエクスプロイト手法に対して脆弱なままである可能性があることを意味します。

Goコミュニティにとっての主要な懸念は、Go 1.24で導入された変更から生じています。このバージョンでは、ランタイムがLinuxシステム上のすべてのリスナーソケットに対して自動的にMPTCPを有効にします。このデフォルト動作はネットワークの耐障害性とパフォーマンス向上を目的としていましたが、カーネルの欠陥により現在は重大な攻撃面となっています。Goメンテナーは、アプリケーション層でMPTCPを無効化することは一時的な防御を提供するものの、完全な解決策ではないと強調しています。根本的な修正には、CVE-2026-98432のパッチを含むカーネルバージョンへホストオペレーティングシステムを更新することが必要です。

仕組み

Multipath TCPは標準TCPプロトコルの拡張機能で、単一の接続が複数のネットワークパスを同時に使用できるようにします。これにより、帯域幅の集約やパス障害時の切り替えを通じて信頼性とスループットが向上します。Go 1.24では、netパッケージがLinux上でリスナーを作成する際に、MPTCPを有効にするために必要なソケットオプションを自動的に設定します。これは透過的に発生するため、開発者はこれを有効にするために追加のコードを書く必要はありません。

脆弱性CVE-2026-98432は、カーネルのTCPスタックにおけるuse-after-freeエラーです。カーネルが特定のTCPパケットを処理する際、メモリオブジェクトを早々に解放してしまうにもかかわらず、その参照を継続することがあります。攻撃者はこの条件を引き起こすように特定の細工したパケットを送信し、メモリ構造を上書きして実行フローを制御する可能性があります。Go 1.24はデフォルトでMPTCPネゴシエーションへの道を開くため、公開インターフェースでリッスンしているGoサービスは、アプリケーションロジックが実際にマルチパス機能を使用しているかどうかに関係なく、このカーネルレベルのエクスプロイトに対する潜在的な標的となります。

重要な詳細

  • 脆弱性ID: CVE-2026-98432はLinuxカーネルのIPv4 TCP処理に影響します。
  • 影響: 細工したパケットによるリモートコード実行(RCE)が可能です。
  • Goバージョン: Go 1.24はLinux上のリスナーソケットに対してデフォルトでMPTCPを有効にします。
  • 主要な修正: Linuxカーネルを直ちにパッチ済みバージョンへアップグレードしてください。
  • ランタイム緩和策: 環境変数でGODEBUG=multipathtcp=0を設定してMPTCPを無効化します。
  • ビルド時緩和策: go.modファイルにgodebug multipathtcp=0を追加します。

なぜ重要なのか

ソフトウェアエンジニアや技術リードにとって、この事件はアプリケーションランタイムとオペレーティングシステムカーネル間の隠れた依存関係を浮き彫りにします。多くのチームは、言語ランタイムやアプリケーションコードを更新することでセキュリティが確保されると考えがちです。しかし、Go 1.24は低レベルのネットワークデフォルトを変更するため、未パッチのカーネルと危険な相互作用を起こします。これにより、安全なアプリケーションコードベースであっても、インフラレベルの脆弱性によって侵害される状況が生じます。DevOpsおよびプラットフォームチームは、すべての本番環境でカーネルパッチを緊急に調整する必要があります。

さらに、勧告ではアプリケーションレベルでの無効化だけに頼るべきではないと警告しています。GODEBUG=multipathtcp=0の設定は「脆い緩和策」と説明されています。もし単一のサービスインスタンスが誤って構成されている場合や、このフラグなしで新しいサービスがデプロイされた場合、ホスト全体がリスクにさらされます。加えて、このアプローチはすべてのエクスプロイトがアクティブなMPTCPリスナーを必要とするという前提に基づいていますが、use-after-freeバグの一般的な性質を考慮すると、必ずしも真実ではありません。この不確実性のため、MPTCPの無効化は場当たり的な措置であり、長期的なセキュリティ戦略ではありません。

実施すべきこと

  • CVE-2026-98432を解決するバージョンへLinuxカーネルのパッチ適用を優先してください。
  • 即時のカーネル更新が不可能な場合は、本番環境の変数でGODEBUG=multipathtcp=0を設定してください。
  • ビルド時に無効化を強制するために、go.modファイルにgodebug multipathtcp=0を追加してください。
  • レガシーサービスが誤ってMPTCPリスナーを公開していないか確認するため、インフラストラクチャを監査してください。
  • デフォルト動作の変更に関する今後の動向について、Goのイシュートラッカーでの議論を監視してください。
  • ソケットの挙動を明示的に管理するために、net.Dialer.SetMultipathTCPおよびnet.ListenConfig.SetMultipathTCPの使用を見直してください。
  • #go
  • #linux
  • #security
  • #mptcp
  • #kernel

Bytechapストアのツール

続きを読む

セキュリティとプライバシー

Alpine Linux、Ruby の正規表現エンジンにおける重大な脆弱性を悪用した攻撃を受け GitLab を再構築

Alpine Linux は、GitLab アップグレード後も残存していた Ruby の正規表現エンジンの CVSS 10.0 評価の重大な脆弱性を標的とした攻撃に対し、GitLab サーバーを完全に再構築し、すべてのパスワードをリセットしました。

セキュリティとプライバシー

Alpine Linux、Rubyの正規表現エンジンの重大な脆弱性を悪用する攻撃を受けGitLabを再構築

Alpine Linuxは、基盤となるRubyエンジンにある重大な脆弱性を悪用する攻撃を受けた後、GitLabインスタンスを一から再構築しました。この事件は、セルフホスト型CI構成におけるリスクを浮き彫りにしています。

すべての記事