Description
In the Linux kernel, the following vulnerability has been resolved: fs/omfs: reject s_sys_blocksize smaller than OMFS_DIR_START omfs_fill_super() rejects oversized s_sys_blocksize values (> PAGE_SIZE), but it does not reject values smaller than OMFS_DIR_START (0x1b8 = 440). Later, omfs_make_empty() uses sbi->s_sys_blocksize - OMFS_DIR_START as the length argument to memset(). Since s_sys_blocksize is u32, a crafted filesystem image with s_sys_blocksize < OMFS_DIR_START causes an unsigned underflow there, wrapping to a value near 2^32. That drives a ~4 GiB memset() from bh->b_data + OMFS_DIR_START and overwrites kernel memory far beyond the backing block buffer. Add the corresponding lower-bound check alongside the existing upper-bound check in omfs_fill_super(), so that malformed images are rejected during superblock validation before any filesystem data is processed.
Product status
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before fbc72f5c645155dc2ed3573243ed20f9913e3a54
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 5822a05a841a10794ad818620dd2af490b0705d3
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 754ff1bea3819a90c6f33cccfc1a299ef7609f07
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 131ea3e57fc22936ed0e2c8330f2e36106172f51
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 79f84af38c9fef9deb0e02c79eb969b5541c2644
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 6561afc38398e3518a29c5eebb975c30468f98a6
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 817f16ed62bc58a168417bfb5e859c2a370bab03
a3ab7155ea21aadc8a4d5687e91b3d876973185e (git) before 0621c385fda1376e967f37ccd534c26c3e511d14
2.6.27
Any version before 2.6.27
5.10.258 (semver)
5.15.209 (semver)
6.1.175 (semver)
6.6.141 (semver)
6.12.91 (semver)
6.18.33 (semver)
7.0.10 (semver)
7.1 (original_commit_for_fix)
References
git.kernel.org/...c/fbc72f5c645155dc2ed3573243ed20f9913e3a54
git.kernel.org/...c/5822a05a841a10794ad818620dd2af490b0705d3
git.kernel.org/...c/754ff1bea3819a90c6f33cccfc1a299ef7609f07
git.kernel.org/...c/131ea3e57fc22936ed0e2c8330f2e36106172f51
git.kernel.org/...c/79f84af38c9fef9deb0e02c79eb969b5541c2644
git.kernel.org/...c/6561afc38398e3518a29c5eebb975c30468f98a6
git.kernel.org/...c/817f16ed62bc58a168417bfb5e859c2a370bab03
git.kernel.org/...c/0621c385fda1376e967f37ccd534c26c3e511d14