From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB6A45BAC7 for ; Wed, 6 Mar 2024 06:46:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709707589; cv=none; b=f5kSuQaPHFUOJrxfToSSbZ/moe0pIDEUGHKJhG3fq0jEtoKLjiXJ0NlqSfzg2Q4TWu6AUg/LOI9liianJBn7T70y/rf4GyP0vBVX6akQ07Zmwp698TDoTlcZUJiRaoP1rCGFMMUWkZAH7BisVFT0fu5B7m9kzzEKIOjD+XbVgQw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709707589; c=relaxed/simple; bh=Y+8USQ/gNUluiMG0EfFXN1iAm/PDOeTcfDYS7uCmIhA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=rGP9GRJT+Myj1VIgSQbKUIt6EGwNwo64Pf7L5BvDivEWdbIwxxnvnv2CTalCamwd52OaU7lV792YeBBdZ+naCnSXrMCnHhv4ddFvIRyTs/rQs4yNUJFlvExHG22Wlc5e+ACE914/9LArMkxBkT8tr09NkHx+FuDqiMXLZs2ODc0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=UXw5fg69; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="UXw5fg69" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79B03C43399; Wed, 6 Mar 2024 06:46:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1709707588; bh=Y+8USQ/gNUluiMG0EfFXN1iAm/PDOeTcfDYS7uCmIhA=; h=From:To:Cc:Subject:Date:Reply-to:From; b=UXw5fg69Chfx50a6ETM6Z7UMqzOXq/Wt49VX3vtEPvMYJWExUD2d2FiKB8PTmf+iE 4Ij1nQdVzUw1eEIYcn8WK7Y2LOMQNr/cFKjiaGdQI10H+k6xFaYezxH6NU1WnLMQ63 KBHHcmU2e0M0d8B2vA42NgOXaqUI5cmLJn49pMko= From: Greg Kroah-Hartman To: linux-cve-announce@vger.kernel.org Cc: Greg Kroah-Hartman Subject: CVE-2023-52603: UBSAN: array-index-out-of-bounds in dtSplitRoot Date: Wed, 6 Mar 2024 06:46:01 +0000 Message-ID: <2024030647-CVE-2023-52603-e47b@gregkh> X-Mailer: git-send-email 2.44.0 Precedence: bulk X-Mailing-List: linux-cve-announce@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Reply-to: , X-Developer-Signature: v=1; a=openpgp-sha256; l=4352; i=gregkh@linuxfoundation.org; h=from:subject:message-id; bh=Y+8USQ/gNUluiMG0EfFXN1iAm/PDOeTcfDYS7uCmIhA=; b=owGbwMvMwCRo6H6F97bub03G02pJDKkvBKWPr/x9Y6KtT03Eu/qVtrUe99ZXKX6efi9T3+fp1 b0GeatCOmJZGASZGGTFFFm+bOM5ur/ikKKXoe1pmDmsTCBDGLg4BWAiKx4zzJW1ZkuqmHe+cPIu me7+eXcsDNkEzjLML/I4e27Gu5aFHl3Vf3Q+BvnYtMy7CwA= X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 Content-Transfer-Encoding: 8bit Description =========== In the Linux kernel, the following vulnerability has been resolved: UBSAN: array-index-out-of-bounds in dtSplitRoot Syzkaller reported the following issue: oop0: detected capacity change from 0 to 32768 UBSAN: array-index-out-of-bounds in fs/jfs/jfs_dtree.c:1971:9 index -2 is out of range for type 'struct dtslot [128]' CPU: 0 PID: 3613 Comm: syz-executor270 Not tainted 6.0.0-syzkaller-09423-g493ffd6605b2 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106 ubsan_epilogue lib/ubsan.c:151 [inline] __ubsan_handle_out_of_bounds+0xdb/0x130 lib/ubsan.c:283 dtSplitRoot+0x8d8/0x1900 fs/jfs/jfs_dtree.c:1971 dtSplitUp fs/jfs/jfs_dtree.c:985 [inline] dtInsert+0x1189/0x6b80 fs/jfs/jfs_dtree.c:863 jfs_mkdir+0x757/0xb00 fs/jfs/namei.c:270 vfs_mkdir+0x3b3/0x590 fs/namei.c:4013 do_mkdirat+0x279/0x550 fs/namei.c:4038 __do_sys_mkdirat fs/namei.c:4053 [inline] __se_sys_mkdirat fs/namei.c:4051 [inline] __x64_sys_mkdirat+0x85/0x90 fs/namei.c:4051 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7fcdc0113fd9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffeb8bc67d8 EFLAGS: 00000246 ORIG_RAX: 0000000000000102 RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fcdc0113fd9 RDX: 0000000000000000 RSI: 0000000020000340 RDI: 0000000000000003 RBP: 00007fcdc00d37a0 R08: 0000000000000000 R09: 00007fcdc00d37a0 R10: 00005555559a72c0 R11: 0000000000000246 R12: 00000000f8008000 R13: 0000000000000000 R14: 00083878000000f8 R15: 0000000000000000 The issue is caused when the value of fsi becomes less than -1. The check to break the loop when fsi value becomes -1 is present but syzbot was able to produce value less than -1 which cause the error. This patch simply add the change for the values less than 0. The patch is tested via syzbot. The Linux kernel CVE team has assigned CVE-2023-52603 to this issue. Affected and fixed versions =========================== Fixed in 4.19.307 with commit e30b52a2ea3d Fixed in 5.4.269 with commit fd3486a89377 Fixed in 5.10.210 with commit 7aa33854477d Fixed in 5.15.149 with commit e4ce01c25ccb Fixed in 6.1.77 with commit e4cbc857d75d Fixed in 6.6.16 with commit edff092a5926 Fixed in 6.7.4 with commit 6e2902ecc77e Fixed in 6.8-rc1 with commit 27e56f59bab5 Please see https://www.kernel.org or a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2023-52603 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: fs/jfs/jfs_dtree.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/e30b52a2ea3d1e0aaee68096957cf90a2f4ec5af https://git.kernel.org/stable/c/fd3486a893778770557649fe28afa5e463d4ed07 https://git.kernel.org/stable/c/7aa33854477d9c346f5560a1a1fcb3fe7783e2a8 https://git.kernel.org/stable/c/e4ce01c25ccbea02a09a5291c21749b1fc358e39 https://git.kernel.org/stable/c/e4cbc857d75d4e22a1f75446e7480b1f305d8d60 https://git.kernel.org/stable/c/edff092a59260bf0b0a2eba219cb3da6372c2f9f https://git.kernel.org/stable/c/6e2902ecc77e9760a9fc447f56d598383e2372d2 https://git.kernel.org/stable/c/27e56f59bab5ddafbcfe69ad7a4a6ea1279c1b16