概要
Linux kernelのksmbd(カーネル内SMBサーバー)において、smb2_get_ea() 関数のEAエントリ書き込み処理に境界外書き込みの脆弱性が存在します。
smb2_get_ea() は各EAエントリ書き込み後に4バイトアラインメントのパディングを memset() で適用しますが、このアラインメント処理前の残りバッファ長チェックが不十分です。EAの値がバッファの残り領域をちょうど埋め尽くした場合(buf_free_len == 0)、アラインメント用の memset が1〜3バイトのNULバイトをバッファ境界を越えて書き込みます。
複合リクエストで応答バッファが共有されている場合、最初のコマンド(例: READ)がバッファの大部分を消費し、QUERY_INFO EA応答に残される領域が狭くなります。この状態でアラインメント処理が発動すると、kvmalloc確保領域を超えてカーネルヒープの隣接メモリを破壊する可能性があります。
CVSSベクトル
| 指標 | 値 |
|---|---|
| CVSSスコア | 9.8 |
| 深刻度 | Critical |
| CWE | 未分類 |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | 不要 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Linux kernel (ksmbd) | Linux | パッチ適用前のバージョン |
修正バージョンと回避策
- カーネルの安定版パッチが公開されています
- ksmbd を使用していない場合は
CONFIG_SMB_SERVERを無効にすることで影響を回避できます - ksmbd を使用している場合は、カーネルアップデートまでの間 ksmbd サービスを停止することを検討してください
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
