CVE-2026-98136 in Linux
要約
〜によって VulDB • 2026年09月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ntfs: $AttrDefテーブルの走査を読み込まれたテーブルサイズに制限する
ntfs_attr_find_in_attrdef()はメモリ上の$AttrDefテーブルを走査しますが、ループ条件は各エントリの開始位置のみを制限しており、エントリ全体を制限していません:
for (ad = vol->attrdef; (u8 *)ad - (u8 *)vol->attrdef < vol->attrdef_size && ad->type; ++ad)
struct attr_defは160バイトです。ガード節ではオフセット128でad->typeを読み取り、ループ本体ではさらに先のフィールドを読み取ります。vol->attrdefはkvzalloc(i_size)によって割り当てられており、i_sizeはディスク上の$AttrDefデータのサイズですが、load_and_init_attrdef()において0 < i_size <= 0x7fffffffとしてのみチェックされています。$AttrDefデータサイズが1エント分より小さいボリューム(例:120バイト)の場合、ad->typeの読み取りが割り当て領域外に及んでしまいます。ファイルの作成はntfs_attr_size_bounds_check()を通じてこの経路を辿り、境界外のメモリを読み取ります:
BUG: KASAN: slab-out-of-bounds in ntfs_attr_find_in_attrdef+0x66/0xa0 Read of size 4 at addr ffff888005833280 by task init/1 ntfs_attr_find_in_attrdef ntfs_attr_size_bounds_check ntfs_attr_can_be_non_resident ntfs_attr_add
ループのガード節において、エントリ全体がattrdef_size内に収まることを要求し、1つのattr_defエントリを保持するには小さすぎる$AttrDefについてはマウント時に拒否します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.