SCTPhantomというLinuxカーネルの脆弱性、ローカル攻撃者がroot権限奪取・コンテナ脱出可能に

新たに公開されたLinuxカーネルの脆弱性「SCTPhantom」により、ローカル攻撃者はSCTPの動的アドレス再構成(ASCONF)コードに存在する18年前からの欠陥を悪用して、root権限への昇格およびコンテナからの脱出が可能になります。

CVE-2026-64564として追跡されているこの脆弱性は、CVSS v4.0基本値8.5(高)を記録しており、カーネルコミット9b2854f86f0bによって上流で修正済みです。

SCTPhantomは、ASCONFチャンク処理中に使用される2つの識別子の不一致に起因します。DEL-IP検証チェックに使われるIPv4パケットの送信元アドレス(S)と、実際のトランスポートを選択するために使われるアドレスパラメータ(L)です。

Linuxは検証にはSを使う一方、その後の処理ではLで選択されたトランスポートを操作するため、攻撃者は[Address Parameter L] [DEL-IP L] [DEL-IP 0.0.0.0]という順序のシーケンスを細工することで、アソシエーションのprimary_pathおよびactive_pathポインタがまだそのトランスポートを参照している状態のまま、稼働中のトランスポートを削除できます。

これによりダングリングポインタが残り、後続のソケット操作がこれを参照解決することで、典型的なuse-after-freeが発生します。この欠陥は2007年のコミット(Linux 2.6.25)にまで遡ります。この時、脆弱なワイルドカード処理ロジックが完成しており、つまりこのバグはほぼ20年間にわたり発見されないまま存在し続けていたことになります。

セキュリティ企業のCorvus AI(TencentOS Security TeamおよびTencent Zhuque Labと共同開発)は、自動化されたマルチエージェント型の脆弱性研究パイプラインを用いて、当初の発見を完全なエクスプロイトチェーンへと発展させました。

このチェーンは、マルチホームアソシエーション上でハートビート状態を慎重にタイミング制御することで実現される、生き残ったSCTPトランスポートのUAFから始まり、カーネルのダイレクトマップアドレスをリークするpg_vec(TPACKET V1リングバッファ)経由の再利用へと進みます。

その後、SCTP_STATUSsctp_assoc2idを用いて再現可能な4バイトのカーネル読み取りプリミティブが構築され、この読み取りプリミティブを使ってCPUエントリエリアのIDTマッピングを通じてKASLRが突破されます。

続いて、制御可能なSCTP認証キーデータを使って2つ目のUAFが再利用され、偽のカーネルオブジェクトグラフが構築されます。最終的にはデータ指向のcommit_creds()呼び出しに至り、シェルコードやROPチェーンを必要とせずにグローバルなroot権限が得られます。

Tencentは/etc/shadowへのアクセスやroot所有ファイルの作成を確認することで権限昇格を検証しており、見せかけのUID変更ではなく実際の権限昇格であることを確認しています。特筆すべき点として、このエクスプロイトはCAP_NET_ADMINCAP_SYS_ADMIN、sysctlの変更のいずれも必要としません。

ソケット単位でSCTP_ASCONF_SUPPORTEDSCTP_AUTH_SUPPORTEDを有効にし、有効なAUTHチャンクを含めることで、デフォルトのseccomp設定のコンテナ内にいる攻撃者も同じ共有カーネルのUAFを引き起こし、call_usermodehelper_exec()へとピボットして、ホストの初期ネームスペース内で操作を実行できます。

テストでは、8回のコンテナ脱出試行のうち6回でホストのroot権限に到達しました。残る2回は、カーネルパニックではなくポインタ探索の単純な失敗として安全に失敗しています。

この脆弱性はUbuntu 24.04、Debian 13、Rocky Linux/RHEL 9、OpenCloudOS系のビルド、およびメインラインの研究用カーネルに対して検証され、いずれもroot権限の取得に成功しています。

修正はカーネルブランチ6.6.148、6.12.101、6.18.42、7.1.6、およびメインラインの7.2-rc5で利用可能です。上流のパッチでは、ASCONFチャンクのために保持されているトランスポートの削除を拒否するよう変更されています。

管理者は、特にSCTPが有効になっているマルチテナント環境やコンテナホスティング基盤において、該当する安定版カーネルのパッチを直ちに適用すべきです。

カーネルバージョン文字列だけではベンダーカーネルにおけるパッチ適用状況を保証しないため、リスクが解消されたと判断する前に、ベンダーのアドバイザリを直接確認することが不可欠です。

ANY.RUNのブラウザ内データ検査で、検知・調査・対応をより迅速に。フィッシングの完全な可視性を獲得し、SOCを強化してMTTRを削減しましょう

翻訳元: https://cyberpress.org/sctphantom-linux-kernel-flaw/

ソース: cyberpress.org