概要
Linux カーネルのブロック層 biovec_phys_mergeable() 関数に脆弱性が発見されました。この関数は、複数のbvecセグメントを物理的に隣接している場合に結合する処理を行いますが、各セグメントが属する dev_pagemap の確認を行っていませんでした。
ゾーンデバイスメモリが複数のチャンクに分かれて登録される場合(各チャンクが固有の dev_pagemap を持つ)、bio_iov_iter_get_pages() が生成したbioが異なるpgmapに属するbvecを含む場合があります。これらのbvecが物理的に隣接していると、biovec_phys_mergeable() が誤って結合を許可するため、page_pgmap() で正しいpgmapを復元できなくなります。
CVSSベクトル
| 項目 | 値 |
|---|---|
| スコア | 9.8(Critical) |
| 攻撃経路 | ネットワーク(AV:N) |
| 攻撃の複雑さ | 低(AC:L) |
| 必要な権限 | なし(PR:N) |
| ユーザー操作 | 不要(UI:N) |
| CWE | CWE-787(境界外書き込み) |
影響を受けるソフトウェア
- Linux kernel(zone device memory使用環境)
- 修正コミットが適用されていないカーネルバージョン
修正バージョンと回避策
以下のコミットにより修正されています:
git.kernel.org/stable/c/13920e4b7b784b40cf4519ff1f0f3e513476a499git.kernel.org/stable/c/3d2ecbd444b01d6500671d1a582b7393943cf539git.kernel.org/stable/c/a7f3aa8c9df3905fe820ae36b67ba56b81587574
ディストリビューションのカーネルアップデートを適用してください。zone device memoryを使用しない環境では影響を受けない可能性があります。
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
