CVE-2026-80869 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ntfs: ntfs_read_inode_mount()における属性リストエントリの境界チェックを実施
ntfs_read_inode_mount()内の$MFT属性リストの走査処理では、各エントリが「(u8 *)al_entry + 6 > al_end」および「(u8 *)al_entry + le16_to_cpu(al_entry->length) > al_end」という条件のみで検証されています。しかしその後、オフセット8にある__le64型のal_entry->lowest_vcnと、オフセット16のal_entry->mft_referenceが読み出されます。これらは、範囲内であることが証明された6バイトを超えたフィールドです。al_entry->lengthは攻撃者が制御可能であり、ゼロでなければよいという要件しかないため、末尾に配置された短いエントリ(例:長さ8)は両方のチェックを通過しますが、lowest_vcnおよびmft_referenceの読み出し処理ではal_endの外側へアクセスしてしまいます。
al_endはni->attr_list + attr_list_size(ディスク上のサイズ)です。バッファはkvzalloc(round_up(attr_list_size, SECTOR_SIZE))で確保されるため、セクター単位の切り上げによりオーバーリードが吸収されることがほとんどですが、attr_list_sizeがSECTOR_SIZEの倍数である場合、余裕分がなく、不正に作成された$MFT属性リストによってマウント時に境界外読み出し(out-of-bounds read)が発生します。
他の属性リスト走査処理で現在使用されている境界チェックと一致させるため、デリファレンス前にntfs_attr_list_entry_is_valid()(パッチ1/3で追加)を使用してエントリを検証します。このバリデーターは既に長さが固定ヘッダーをカバーすることを要求しているため、「!al_entry->length」による個別のチェックは冗長となり不要であるため、これも削除されます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.