exfat: fix out-of-bounds access of directory entries
authorYuezhang Mo <Yuezhang.Mo@sony.com>
Mon, 28 Oct 2024 03:23:36 +0000 (11:23 +0800)
committerNamjae Jeon <linkinjeon@kernel.org>
Mon, 25 Nov 2024 08:08:20 +0000 (17:08 +0900)
commit184fa506e392eb78364d9283c961217ff2c0617b
treef7395248bfa08c295714d2400c5e3d6e4b8b3533
parent9f16d5e6f220661f73b36a4be1b21575651d8833
exfat: fix out-of-bounds access of directory entries

In the case of the directory size is greater than or equal to
the cluster size, if start_clu becomes an EOF cluster(an invalid
cluster) due to file system corruption, then the directory entry
where ei->hint_femp.eidx hint is outside the directory, resulting
in an out-of-bounds access, which may cause further file system
corruption.

This commit adds a check for start_clu, if it is an invalid cluster,
the file or directory will be treated as empty.

Cc: stable@vger.kernel.org
Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com>
Co-developed-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
fs/exfat/namei.c