CVE-2025-38230: jfs: validate AG parameters in dbMount() to prevent crashes
In the Linux kernel, the following vulnerability has been resolved:
jfs: validate AG parameters in dbMount() to prevent crashes
Validate dbagheight, dbagwidth, and dbagstart in dbMount to catch corrupted metadata early and avoid undefined behavior in dbAllocAG. Limits are derived from L2LPERCTL, LPERCTL/MAXAG, and CTLTREESIZE:
- agheight: 0 to L2LPERCTL/2 (0 to 5) ensures shift (L2LPERCTL - 2agheight) >= 0. - agwidth: 1 to min(LPERCTL/MAXAG, 2^(L2LPERCTL - 2agheight)) ensures agperlev >= 1. - Ranges: 1-8 (agheight 0-3), 1-4 (agheight 4), 1 (agheight 5). - LPERCTL/MAXAG = 1024/128 = 8 limits leaves per AG; 2^(10 - 2agheight) prevents division to 0. - agstart: 0 to CTLTREESIZE-1 - agwidth(MAXAG-1) keeps ti within stree (size 1365). - Ranges: 0-1237 (agwidth 1), 0-348 (agwidth 8).
UBSAN: shift-out-of-bounds in fs/jfs/jfsdmap.c:1400:9 shift exponent -335544310 is negative CPU: 0 UID: 0 PID: 5822 Comm: syz-executor130 Not tainted 6.14.0-rc5-syzkaller #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Call Trace: <TASK> dumpstack lib/dumpstack.c:94 [inline] dumpstacklvl+0x241/0x360 lib/dumpstack.c:120 ubsanepilogue lib/ubsan.c:231 [inline] ubsanhandleshiftoutofbounds+0x3c8/0x420 lib/ubsan.c:468 dbAllocAG+0x1087/0x10b0 fs/jfs/jfsdmap.c:1400 dbDiscardAG+0x352/0xa20 fs/jfs/jfsdmap.c:1613 jfsioctrim+0x45a/0x6b0 fs/jfs/jfsdiscard.c:105 jfsioctl+0x2cd/0x3e0 fs/jfs/ioctl.c:131 vfsioctl fs/ioctl.c:51 [inline] dosysioctl fs/ioctl.c:906 [inline] sesysioctl+0xf5/0x170 fs/ioctl.c:892 dosyscallx64 arch/x86/entry/common.c:52 [inline] dosyscall64+0xf3/0x230 arch/x86/entry/common.c:83 entrySYSCALL64afterhwframe+0x77/0x7f
Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.13-1 - Compensating control
In JFS dbMount(), validate corrupted metadata parameters before dbAllocAG: require db_agheight to be 0–5, db_agwidth to be 1 to min(LPERCTL/MAXAG, 2^(L2LPERCTL - 2*agheight)), and db_agstart to be 0 to CTLTREESIZE-1 - agwidth*(MAXAG-1).
Event History
Frequently Asked Questions
What is the severity of CVE-2025-38230?
CVE-2025-38230 has been classified as a medium severity vulnerability due to potential crashes resulting from corrupted metadata.
How do I fix CVE-2025-38230?
To fix CVE-2025-38230, update your Linux kernel to the latest stable version that includes the resolution for this vulnerability.
What are the potential impacts of CVE-2025-38230?
The potential impacts of CVE-2025-38230 include application crashes and undefined behavior in systems using the JFS filesystem.
Which versions of the Linux kernel are affected by CVE-2025-38230?
CVE-2025-38230 affects earlier versions of the Linux kernel that do not include the fix for the JFS validation checks.
Is there a workaround for CVE-2025-38230?
Currently, the recommended approach is to update the kernel, as no specific workaround exists for CVE-2025-38230.