CVE-2023-52603·Kernel vulnerability
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: <TASK> __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 </TASK> 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.
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.7.4
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 3% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2023-52603 scores 7.8 on CVSS, so a successful attack would be serious — but at <0.1%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 6.7
Until: 6.7.4
Fixed in: 6.7.4
How to fix this CVE
Update your Linux kernel to version 6.7.4 or later to resolve this array bounds vulnerability in the JFS filesystem driver. The vulnerability allows a negative array index to be accessed during directory tree splitting operations, which can be triggered through crafted filesystem operations. Systems using JFS should prioritize this update to prevent potential kernel panics and memory corruption.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r — verify the version is 6.7.4 or later
- Verify JFS filesystem usage: mount | grep jfs — identify if JFS is mounted on the system
- Review kernel logs for array bounds errors: dmesg | grep -i 'out.of.bounds\|ubsan\|dtSplitRoot' — look for UBSAN violations in the jfs_dtree module
- Confirm the fix: grep 'fsi.*<.*0' /boot/config-$(uname -r) — verify the patched bounds check is present in the running kernel
FAQ
What is CVE-2023-52603?
CVE-2023-52603 is an array index out-of-bounds vulnerability in the Linux kernel's JFS (Journaled File System) implementation. It occurs in the dtSplitRoot function when a negative array index is used to access the dtslot array, potentially leading to kernel crashes or memory corruption during directory tree splitting operations.
Is CVE-2023-52603 being actively exploited?
No, CVE-2023-52603 is not listed in the CISA Known Exploited Vulnerabilities catalog and no public exploits are currently available. However, the vulnerability was discovered through fuzzing (Syzkaller), indicating it can be reliably triggered with crafted filesystem operations.
What versions of Kernel are affected by CVE-2023-52603?
Linux kernel versions 6.7 through 6.7.3 are vulnerable. The vulnerability is fixed in kernel version 6.7.4 and later. Older stable branches may also be affected depending on backports.
How do I check if my server is vulnerable to CVE-2023-52603?
Run 'uname -r' to check your kernel version and verify it is 6.7.4 or later. Additionally, check if JFS is in use with 'mount | grep jfs' — systems without JFS mounted are not vulnerable to this specific issue.
Does Defensia detect CVE-2023-52603?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2023-52603 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/27e56f59bab5ddafbcfe69ad7a4a6ea1279c1b16
- https://git.kernel.org/stable/c/6e2902ecc77e9760a9fc447f56d598383e2372d2
- https://git.kernel.org/stable/c/7aa33854477d9c346f5560a1a1fcb3fe7783e2a8
- https://git.kernel.org/stable/c/e30b52a2ea3d1e0aaee68096957cf90a2f4ec5af
- https://git.kernel.org/stable/c/e4cbc857d75d4e22a1f75446e7480b1f305d8d60
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2023-52603. Free for 1 server.
Get started free