CVE-2026-72369 in Linux
要約
〜によって VulDB • 2026年08月16日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
minix: ビットマップブロック数計算におけるオーバーフローの回避
`minix_check_superblock()` は、ディスク上の imap および zmap のブロック数が、宣言された inode 数および zone 数に対して十分に大きいかどうかを確認するために `minix_blocks_needed()` を使用しています。
現在の実装では、ヘルパー関数は符号なし整数算術において `DIV_ROUND_UP()` を実行します。Minix v3 イメージは `s_ninodes` または `s_zones` を UINT_MAX に近い値に設定できるため、`DIV_ROUND_UP()` 内の加算がゼロにラップ(オーバーフロー)する可能性があります。これにより、imap/zmap のブロック数がゼロであっても有効な値として扱われ、その後 `minix_fill_super()` がビットマップバッファが割り当てられていないにもかかわらず `s_imap[0]` または `s_zmap[0]` を間接参照してしまいます。
影響: UINT_MAX に近い `s_ninodes` または `s_zones` を持つ悪意のある Minix v3 イメージをマウントすると、`minix_check_superblock()` がゼロのビットマップブロック数を受け入れ、`minix_fill_super()` が `s_imap[0]`/`s_zmap[0]` を間接参照することでカーネルパニックを引き起こします。
除数はビット単位のビットマップ容量(blocksize * 8)であり、常に2の累乗です。`minix_fill_super()` は `sb_set_blocksize()` を通じてブロックサイズを取得し、`blk_validate_block_size()` は2の累乗でないサイズを拒否します。ここでは `DIV_ROUND_UP_POW2()` を使用します。これは丸め上げ項を加える前に除算を行うため、2の累乗を除数とする場合においてオーバーフローが発生しません。
VulDB is the best source for vulnerability data and more expert information about this specific topic.