CVE-2026-99063 in Linux
要約
〜によって VulDB • 2026年10月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
dm ioctl: データ開始位置がバッファの範囲外に達しないようにする
struct dm_ioctl 構造体には7バイトの後方パディングがあるため、ユーザー空間から要求できる最小限のバッファサイズは `offsetof(struct dm_ioctl, data)` で計算され、これは `sizeof(struct dm_ioctl)` よりも7バイト短くなります。
`get_result_buffer()` は実際のバッファサイズを確認することなく、`data_start` を `sizeof(struct dm_ioctl)` に設定します。最小値を要求すると、`data_start` が末尾から7バイト先になってしまいます。呼び出し元はこれに `data_size` を加算し、`ctl_ioctl()` はその分だけユーザー空間へコピーします:
BUG: KASAN: slab-out-of-bounds in _copy_to_user+0xad/0xd0 Read of size 312 at addr ffff8880169e4c00 by task repro-dm/140 ctl_ioctl+0x5e3/0xcb0 dm_ctl_ioctl+0x25/0x40 allocated 305-byte region [ffff8880169e4c00, ffff8880169e4d31)
`data_size` を305に設定した DM_LIST_DEVICES でこれを引き起こすことができ、リークされる7バイトは割り当て領域の隣りにあったデータです。
`data_start` をバッファサイズで制限(clamp)します。
なお、このバグはセキュリティ上の脆弱性ではありません。なぜなら、境界外読み出しは root 権限を持つユーザーにしかトリガーできないためです。
If you want to get best quality of vulnerability data, you may have to visit VulDB.