30秒で判断
対応すべき人:
- Linux カーネルを使用していてネットワーク機能で SCTP を有効にしている環境
- SCTP を使う通信システム(5G コア、テレコム系など)
対応不要な人:
- SCTP カーネルモジュール(
sctp.ko)を無効化・ブロックリスト登録済みの場合 - 影響を受ける SCTP コードパスが修正済みのカーネルバージョンを利用中の場合
- コンテナ環境でホストカーネルのアップデートが完了済みの場合
確認コマンド:
# SCTP モジュールがロードされているか確認
lsmod | grep sctp
# カーネルバージョン確認
uname -r
# 各ディストリの修正状況はベンダーのセキュリティ情報を参照
概要
Linux カーネルの SCTP(Stream Control Transmission Protocol)実装において、Stale Cookie ERROR の処理に use-after-free 脆弱性が存在します。
SCTP では、Stale Cookie ERROR を受信した際に sctp_sf_do_5_2_6_stale() が呼ばれ、アソシエーションを COOKIE_ECHOED 状態から COOKIE_WAIT 状態へロールバックします。このロールバック処理の中で sctp_stream_update() が古いストリームテーブルを解放して新しいテーブルをインストールしますが、stream->out_curr ポインタが無効化されません。
その結果、SCTP スケジューラのデキューパス(FCFS・RR・PRIO など)が stream->out_curr->ext を参照した際に、解放済みのメモリへのアクセス(use-after-free)が発生し、カーネルクラッシュや、条件によっては任意コード実行につながる可能性があります。
実際に以下のような KASAN レポートが報告されています:
BUG: KASAN: slab-use-after-free in sctp_sched_fcfs_dequeue+0x13a/0x140
Read of size 8 at addr ff1100004d4d3208 by task mini_poc/9312
修正は、Stale Cookie ケースでアソシエーションのアウトキュー全体をパージすることで、スケジューラのキャッシュポインタも無効化されるようにしたものです。
CVSSベクトル
| 項目 | 値 | 説明 |
|---|---|---|
| Attack Vector | Network | ネットワーク経由で攻撃可能 |
| Attack Complexity | Low | 特別な条件不要 |
| Privileges Required | None | 認証不要 |
| User Interaction | None | ユーザー操作不要 |
| Scope | Unchanged | スコープ変化なし |
| Confidentiality | High | 機密性への影響大 |
| Integrity | High | 完全性への影響大 |
| Availability | High | 可用性への影響大 |
影響を受けるソフトウェア
- Linux kernel(複数の安定版ブランチ)
- 各ディストリビューションのカーネルバージョンについてはベンダーのセキュリティアドバイザリを参照
修正バージョンと回避策
修正コミット(各安定版ブランチ):
1d4652f677906a64487c13f9ace54b0eb263b5d02afc9e684dc7fecf73db1edc937ebbc47b4b68dc3c0741a441a7df7099d7ca6a64a6a0de09c677c883ade59e5da365f4bf8bce72c5a38774202b442f84b7a319105db2f917ccdcf502bdc866082b1285
各ディストリビューションのパッケージマネージャーでカーネルアップデートを適用してください。
回避策(緊急時): SCTP を使用していない場合はモジュールをブロックリストに登録することで攻撃面を削減できます。
echo "blacklist sctp" >> /etc/modprobe.d/blacklist.conf
ただし、SCTP を使用しているサービスがある場合はカーネルアップデートが必要です。
関連リンク
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
