milos-linux/fs/udf
Michael Bommarito 55d41b0a20 udf: reject descriptors with oversized CRC length
udf_read_tagged() skips CRC verification when descCRCLength +
sizeof(struct tag) exceeds the block size.  A crafted UDF image can
set descCRCLength to an oversized value to bypass CRC validation
entirely; the descriptor is then accepted based solely on the 8-bit
tag checksum, which is trivially recomputable.

Reject such descriptors instead of silently accepting them.  A
legitimate single-block descriptor should never have a CRC length that
exceeds the block.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-6
Assisted-by: Codex:gpt-5-4
Signed-off-by: Michael Bommarito <michael.bommarito@gmail.com>
Link: https://patch.msgid.link/20260413211240.853662-1-michael.bommarito@gmail.com
Signed-off-by: Jan Kara <jack@suse.cz>
2026-04-22 17:14:48 +02:00
..
balloc.c
dir.c
directory.c vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
ecma_167.h
file.c vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
ialloc.c
inode.c \n 2026-04-15 19:22:16 -07:00
Kconfig
lowlevel.c
Makefile
misc.c udf: reject descriptors with oversized CRC length 2026-04-22 17:14:48 +02:00
namei.c vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
osta_udf.h
partition.c
super.c \n 2026-04-15 19:22:16 -07:00
symlink.c
truncate.c
udf_i.h
udf_sb.h
udfdecl.h
udfend.h
udftime.c
unicode.c