]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
fs/ntfs3: reject index allocation if $BITMAP is empty but blocks exist
authorMoon Hee Lee <moonhee.lee.ca@gmail.com>
Tue, 22 Jul 2025 17:40:16 +0000 (10:40 -0700)
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Wed, 10 Sep 2025 09:01:41 +0000 (11:01 +0200)
commit0dc7117da8f92dd5fe077d712a756eccbe377d40
treee1af248c06dae23e2e598b0726bdd26fccb818c5
parentd68318471aa2e16222ebf492883e05a2d72b9b17
fs/ntfs3: reject index allocation if $BITMAP is empty but blocks exist

Index allocation requires at least one bit in the $BITMAP attribute to
track usage of index entries. If the bitmap is empty while index blocks
are already present, this reflects on-disk corruption.

syzbot triggered this condition using a malformed NTFS image. During a
rename() operation involving a long filename (which spans multiple
index entries), the empty bitmap allowed the name to be added without
valid tracking. Subsequent deletion of the original entry failed with
-ENOENT, due to unexpected index state.

Reject such cases by verifying that the bitmap is not empty when index
blocks exist.

Reported-by: syzbot+b0373017f711c06ada64@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=b0373017f711c06ada64
Fixes: d99208b91933 ("fs/ntfs3: cancle set bad inode after removing name fails")
Tested-by: syzbot+b0373017f711c06ada64@syzkaller.appspotmail.com
Signed-off-by: Moon Hee Lee <moonhee.lee.ca@gmail.com>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
fs/ntfs3/index.c