]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
md/raid5: validate payload size before accessing journal metadata
authorJunrui Luo <moonafterrain@outlook.com>
Sat, 4 Apr 2026 07:44:35 +0000 (15:44 +0800)
committerYu Kuai <yukuai@fnnas.com>
Tue, 7 Apr 2026 05:09:22 +0000 (13:09 +0800)
commitb0cc3ae97e893bf54bbce447f4e9fd2e0b88bff9
treeb3ed4403483f7165a33e477dca84757e970b23be
parente4979f4fac4d6bbe757be50441b45e28e6bf7360
md/raid5: validate payload size before accessing journal metadata

r5c_recovery_analyze_meta_block() and
r5l_recovery_verify_data_checksum_for_mb() iterate over payloads in a
journal metadata block using on-disk payload size fields without
validating them against the remaining space in the metadata block.

A corrupted journal contains payload sizes extending beyond the PAGE_SIZE
boundary can cause out-of-bounds reads when accessing payload fields or
computing offsets.

Add bounds validation for each payload type to ensure the full payload
fits within meta_size before processing.

Fixes: b4c625c67362 ("md/r5cache: r5cache recovery: part 1")
Cc: stable@vger.kernel.org
Signed-off-by: Junrui Luo <moonafterrain@outlook.com>
Link: https://lore.kernel.org/linux-raid/SYBPR01MB78815E78D829BB86CD7C8015AF5FA@SYBPR01MB7881.ausprd01.prod.outlook.com/
Signed-off-by: Yu Kuai <yukuai@fnnas.com>
drivers/md/raid5-cache.c