lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 1 Nov 2021 17:33:51 +0800
From:   Ye Bin <yebin10@...wei.com>
To:     <jack@...e.comu>, <linux-ext4@...r.kernel.org>
CC:     <linux-kernel@...r.kernel.org>, Ye Bin <yebin10@...wei.com>
Subject: [PATCH -next RFC] ext2: Add check if block is step over super block

We got an issue that super block is allocated by file system when run syzkaller
test. We add debug information find that origin image super block's block bitmap
is zero. There isn't check whether block is step over super block in ext2_new_blocks.

In order not to make things worse, we'd better to add check if block step over
super block when new blocks.

Signed-off-by: Ye Bin <yebin10@...wei.com>
---
 fs/ext2/balloc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
index c17ccc19b938..b93d52e6a17a 100644
--- a/fs/ext2/balloc.c
+++ b/fs/ext2/balloc.c
@@ -1376,7 +1376,8 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal,
 	    in_range(ret_block, le32_to_cpu(gdp->bg_inode_table),
 		      EXT2_SB(sb)->s_itb_per_group) ||
 	    in_range(ret_block + num - 1, le32_to_cpu(gdp->bg_inode_table),
-		      EXT2_SB(sb)->s_itb_per_group)) {
+		      EXT2_SB(sb)->s_itb_per_group) ||
+	    in_range(EXT2_SB(sb)->s_sb_block, ret_block, num)) {
 		ext2_error(sb, "ext2_new_blocks",
 			    "Allocating block in system zone - "
 			    "blocks from "E2FSBLK", length %lu",
-- 
2.31.1

Powered by blists - more mailing lists