ext4: avoid cycles in directory h-tree
authorJan Kara <jack@suse.cz>
Wed, 18 May 2022 09:33:29 +0000 (11:33 +0200)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 24 May 2022 19:34:13 +0000 (15:34 -0400)
commit3ba733f879c2a88910744647e41edeefbc0d92b2
treeb23ac2e1ccd5cd223ccc7cd51ae101698624cc2b
parent46c116b920ebec58031f0a78c5ea9599b0d2a371
ext4: avoid cycles in directory h-tree

A maliciously corrupted filesystem can contain cycles in the h-tree
stored inside a directory. That can easily lead to the kernel corrupting
tree nodes that were already verified under its hands while doing a node
split and consequently accessing unallocated memory. Fix the problem by
verifying traversed block numbers are unique.

Cc: stable@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20220518093332.13986-2-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/namei.c