← CVE Intelligence

CVE-2023-52604

FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree PUBLISHED

Description (CNA)

In the Linux kernel, the following vulnerability has been resolved: FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree Syzkaller reported the following issue: UBSAN: array-index-out-of-bounds in fs/jfs/jfs_dmap.c:2867:6 index 196694 is out of range for type 's8[1365]' (aka 'signed char[1365]') CPU: 1 PID: 109 Comm: jfsCommit Not tainted 6.6.0-rc3-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/04/2023 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106 ubsan_epilogue lib/ubsan.c:217 [inline] __ubsan_handle_out_of_bounds+0x11c/0x150 lib/ubsan.c:348 dbAdjTree+0x474/0x4f0 fs/jfs/jfs_dmap.c:2867 dbJoin+0x210/0x2d0 fs/jfs/jfs_dmap.c:2834 dbFreeBits+0x4eb/0xda0 fs/jfs/jfs_dmap.c:2331 dbFreeDmap fs/jfs/jfs_dmap.c:2080 [inline] dbFree+0x343/0x650 fs/jfs/jfs_dmap.c:402 txFreeMap+0x798/0xd50 fs/jfs/jfs_txnmgr.c:2534 txUpdateMap+0x342/0x9e0 txLazyCommit fs/jfs/jfs_txnmgr.c:2664 [inline] jfs_lazycommit+0x47a/0xb70 fs/jfs/jfs_txnmgr.c:2732 kthread+0x2d3/0x370 kernel/kthread.c:388 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304 </TASK> ================================================================================ Kernel panic - not syncing: UBSAN: panic_on_warn set ... CPU: 1 PID: 109 Comm: jfsCommit Not tainted 6.6.0-rc3-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/04/2023 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106 panic+0x30f/0x770 kernel/panic.c:340 check_panic_on_warn+0x82/0xa0 kernel/panic.c:236 ubsan_epilogue lib/ubsan.c:223 [inline] __ubsan_handle_out_of_bounds+0x13c/0x150 lib/ubsan.c:348 dbAdjTree+0x474/0x4f0 fs/jfs/jfs_dmap.c:2867 dbJoin+0x210/0x2d0 fs/jfs/jfs_dmap.c:2834 dbFreeBits+0x4eb/0xda0 fs/jfs/jfs_dmap.c:2331 dbFreeDmap fs/jfs/jfs_dmap.c:2080 [inline] dbFree+0x343/0x650 fs/jfs/jfs_dmap.c:402 txFreeMap+0x798/0xd50 fs/jfs/jfs_txnmgr.c:2534 txUpdateMap+0x342/0x9e0 txLazyCommit fs/jfs/jfs_txnmgr.c:2664 [inline] jfs_lazycommit+0x47a/0xb70 fs/jfs/jfs_txnmgr.c:2732 kthread+0x2d3/0x370 kernel/kthread.c:388 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304 </TASK> Kernel Offset: disabled Rebooting in 86400 seconds.. The issue is caused when the value of lp becomes greater than CTLTREESIZE which is the max size of stree. Adding a simple check solves this issue. Dave: As the function returns a void, good error handling would require a more intrusive code reorganization, so I modified Osama's patch at use WARN_ON_ONCE for lack of a cleaner option. The patch is tested via syzbot.

Affected (CNA)

Vendor / productVersions
Linux / Linuxaffected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before e3e95c6850661c77e6dab079d9b5374a618ebb15; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 98f9537fe61b8382b3cc5dd97347531698517c56; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before de34de6e57bbbc868e4fcf9e98c76b3587cabb0b; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 6fe8b702125aeee6ce83f20092a2341446704e7b; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 42f433785f108893de0dd5260bafb85d7d51db03; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 6a44065dd604972ec1fbcccbdc4a70d266a89cdd; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 59342822276f753e49d27ef5eebffbba990572b9; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 9862ec7ac1cbc6eb5ee4a045b5d5b8edbb2f7e68
Linux / Linuxaffected 2.6.12; unaffected 0 before 2.6.12; unaffected 4.19.307 through 4.19.*; unaffected 5.4.269 through 5.4.*; unaffected 5.10.210 through 5.10.*; unaffected 5.15.149 through 5.15.*; unaffected 6.1.77 through 6.1.*; unaffected 6.6.16 through 6.6.*; unaffected 6.7.4 through 6.7.*; unaffected 6.8 through *

CWE

No CWE identifiers supplied.

References

ADP enrichment

CISA-ADP

No English description supplied.

No references supplied.

CVE

No English description supplied.