CVE-2023-53485

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
01/10/2025
Last modified:
02/10/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev<br /> <br /> Syzkaller reported the following issue:<br /> <br /> UBSAN: array-index-out-of-bounds in fs/jfs/jfs_dmap.c:1965:6<br /> index -84 is out of range for type &amp;#39;s8[341]&amp;#39; (aka &amp;#39;signed char[341]&amp;#39;)<br /> CPU: 1 PID: 4995 Comm: syz-executor146 Not tainted 6.4.0-rc6-syzkaller-00037-gb6dad5178cea #0<br /> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/27/2023<br /> Call Trace:<br /> <br /> __dump_stack lib/dump_stack.c:88 [inline]<br /> dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106<br /> ubsan_epilogue lib/ubsan.c:217 [inline]<br /> __ubsan_handle_out_of_bounds+0x11c/0x150 lib/ubsan.c:348<br /> dbAllocDmapLev+0x3e5/0x430 fs/jfs/jfs_dmap.c:1965<br /> dbAllocCtl+0x113/0x920 fs/jfs/jfs_dmap.c:1809<br /> dbAllocAG+0x28f/0x10b0 fs/jfs/jfs_dmap.c:1350<br /> dbAlloc+0x658/0xca0 fs/jfs/jfs_dmap.c:874<br /> dtSplitUp fs/jfs/jfs_dtree.c:974 [inline]<br /> dtInsert+0xda7/0x6b00 fs/jfs/jfs_dtree.c:863<br /> jfs_create+0x7b6/0xbb0 fs/jfs/namei.c:137<br /> lookup_open fs/namei.c:3492 [inline]<br /> open_last_lookups fs/namei.c:3560 [inline]<br /> path_openat+0x13df/0x3170 fs/namei.c:3788<br /> do_filp_open+0x234/0x490 fs/namei.c:3818<br /> do_sys_openat2+0x13f/0x500 fs/open.c:1356<br /> do_sys_open fs/open.c:1372 [inline]<br /> __do_sys_openat fs/open.c:1388 [inline]<br /> __se_sys_openat fs/open.c:1383 [inline]<br /> __x64_sys_openat+0x247/0x290 fs/open.c:1383<br /> do_syscall_x64 arch/x86/entry/common.c:50 [inline]<br /> do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80<br /> entry_SYSCALL_64_after_hwframe+0x63/0xcd<br /> RIP: 0033:0x7f1f4e33f7e9<br /> Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 51 14 00 00 90 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 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48<br /> RSP: 002b:00007ffc21129578 EFLAGS: 00000246 ORIG_RAX: 0000000000000101<br /> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f1f4e33f7e9<br /> RDX: 000000000000275a RSI: 0000000020000040 RDI: 00000000ffffff9c<br /> RBP: 00007f1f4e2ff080 R08: 0000000000000000 R09: 0000000000000000<br /> R10: 0000000000000000 R11: 0000000000000246 R12: 00007f1f4e2ff110<br /> R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000<br /> <br /> <br /> The bug occurs when the dbAllocDmapLev()function attempts to access<br /> dp-&gt;tree.stree[leafidx + LEAFIND] while the leafidx value is negative.<br /> <br /> To rectify this, the patch introduces a safeguard within the<br /> dbAllocDmapLev() function. A check has been added to verify if leafidx is<br /> negative. If it is, the function immediately returns an I/O error, preventing<br /> any further execution that could potentially cause harm.<br /> <br /> Tested via syzbot.

Impact