grub2/grub-core/fs
Daniel Axtens 2832f9ed49 fs/fshelp: Catch impermissibly large block sizes in read helper
A fuzzed HFS+ filesystem had log2blocksize = 22. This gave
log2blocksize + GRUB_DISK_SECTOR_BITS = 31. 1 << 31 = 0x80000000,
which is -1 as an int. This caused some wacky behavior later on in
the function, leading to out-of-bounds writes on the destination buffer.

Catch log2blocksize + GRUB_DISK_SECTOR_BITS >= 31. We could be stricter,
but this is the minimum that will prevent integer size weirdness.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>

Patch-Name: 2021-02-security/069-fs-fshelp-Catch-impermissibly-large-block-sizes-in-read-helper.patch
2021-02-27 14:50:07 +00:00
..
zfs zfsinfo: Correct a check for error allocating memory 2021-02-27 14:49:29 +00:00
affs.c affs: Fix memory leaks 2021-02-27 14:49:29 +00:00
afs.c Leverage BFS implementation to read AFS. 2011-10-30 16:10:18 +01:00
archelp.c archelp: Never pass NULL as mtime. 2015-07-27 13:19:02 +02:00
bfs.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
btrfs.c malloc: Use overflow checking primitives where we do complex allocations 2020-07-24 22:42:22 +01:00
cbfs.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
cpio_be.c Add gcc_struct to all packed structures when compiling with mingw. 2013-12-15 14:14:30 +01:00
cpio_common.c cpio: Disable gcc9 -Waddress-of-packed-member 2019-04-23 11:37:08 +02:00
cpio.c Add gcc_struct to all packed structures when compiling with mingw. 2013-12-15 14:14:30 +01:00
exfat.c exfat reader 2011-04-11 18:13:00 +02:00
ext2.c malloc: Use overflow checking primitives where we do complex allocations 2020-07-24 22:42:22 +01:00
f2fs.c f2fs: Disable gcc9 -Waddress-of-packed-member 2019-06-03 11:18:31 +02:00
fat.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
fshelp.c fs/fshelp: Catch impermissibly large block sizes in read helper 2021-02-27 14:50:07 +00:00
hfs.c calloc: Use calloc() at most places 2020-07-24 22:42:16 +01:00
hfsplus.c hfsplus: Check that the volume name length is valid 2021-02-27 14:49:29 +00:00
hfspluscomp.c Make grub_zlib_decompress handle incomplete chunks. 2013-12-18 23:39:49 +01:00
iso9660.c iso9660: Don't leak memory on realloc() failures 2020-07-24 22:42:27 +01:00
jfs.c jfs: Disable gcc9 -Waddress-of-packed-member 2019-04-23 11:37:08 +02:00
minix2_be.c Handle big-endian minixfs (fixes minixfs tests on bigendian). 2012-04-01 21:35:18 +02:00
minix2.c Split minix.mod into minix.mod and minix2.mod. 2010-09-08 19:13:48 +02:00
minix3_be.c Handle big-endian minixfs (fixes minixfs tests on bigendian). 2012-04-01 21:35:18 +02:00
minix3.c minix3fs support 2011-04-11 08:16:13 +02:00
minix_be.c Handle big-endian minixfs (fixes minixfs tests on bigendian). 2012-04-01 21:35:18 +02:00
minix.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
newc.c Add gcc_struct to all packed structures when compiling with mingw. 2013-12-15 14:14:30 +01:00
nilfs2.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
ntfs.c calloc: Use calloc() at most places 2020-07-24 22:42:16 +01:00
ntfscomp.c Fix warnings when compiling with -O3 2016-02-17 17:56:41 +01:00
odc.c Add gcc_struct to all packed structures when compiling with mingw. 2013-12-15 14:14:30 +01:00
proc.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
reiserfs.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
romfs.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
sfs.c malloc: Use overflow checking primitives where we do complex allocations 2020-07-24 22:42:22 +01:00
squash4.c malloc: Use overflow checking primitives where we do complex allocations 2020-07-24 22:42:22 +01:00
tar.c calloc: Use calloc() at most places 2020-07-24 22:42:16 +01:00
udf.c udf: Fix memory leak 2020-07-24 22:43:01 +01:00
ufs2.c automake commit without merge history 2010-05-06 11:34:04 +05:30
ufs_be.c Support big-endian UFS1. 2012-12-08 20:56:58 +01:00
ufs.c Change fs functions to add fs_ prefix 2019-04-09 10:03:29 +10:00
xfs.c malloc: Use overflow checking primitives where we do complex allocations 2020-07-24 22:42:22 +01:00