Linuxカーネルにおいて、以下の脆弱性が修正されました。fs/adfsのadfs_validate_bblk()関数におけるnzonesの検証に関してです。起動ブロックの検証時に、ディスクレコードを使用する前にゾーン数が0のADFSディスクレコードを拒否するようになりました。nzonesが0の場合、adfs_read_map()はkmalloc_array(0, ...)に渡し、ZERO_SIZE_PTRを返します。これにより、adfs_map_layout()がdm[-1]に書き込みを行い、割り当てられたバッファの範囲外書き込みが発生します。adfs_validate_dr0()は既に古いフォーマットのイメージに対してnzones != 1を拒否していますが、新しいフォーマットのイメージに対しても同様の検査をadfs_validate_bblk()に追加しました。これにより、nzones == 0の細工されたイメージがプローブ時に拒否されるようになりました。この脆弱性はsyzkallerによって発見されました。
|