CVE-2024-41000·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: block/ioctl: prefer different overflow check Running syzkaller with the newly reintroduced signed integer overflow sanitizer shows this report: [ 62.982337] ------------[ cut here ]------------ [ 62.985692] cgroup: Invalid name [ 62.986211] UBSAN: signed-integer-overflow in ../block/ioctl.c:36:46 [ 62.989370] 9pnet_fd: p9_fd_create_tcp (7343): problem connecting socket to 127.0.0.1 [ 62.992992] 9223372036854775807 + 4095 cannot be represented in type 'long long' [ 62.997827] 9pnet_fd: p9_fd_create_tcp (7345): problem connecting socket to 127.0.0.1 [ 62.999369] random: crng reseeded on system resumption [ 63.000634] GUP no longer grows the stack in syz-executor.2 (7353): 20002000-20003000 (20001000) [ 63.000668] CPU: 0 PID: 7353 Comm: syz-executor.2 Not tainted 6.8.0-rc2-00035-gb3ef86b5a957 #1 [ 63.000677] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 63.000682] Call Trace: [ 63.000686] <TASK> [ 63.000731] dump_stack_lvl+0x93/0xd0 [ 63.000919] __get_user_pages+0x903/0xd30 [ 63.001030] __gup_longterm_locked+0x153e/0x1ba0 [ 63.001041] ? _raw_read_unlock_irqrestore+0x17/0x50 [ 63.001072] ? try_get_folio+0x29c/0x2d0 [ 63.001083] internal_get_user_pages_fast+0x1119/0x1530 [ 63.001109] iov_iter_extract_pages+0x23b/0x580 [ 63.001206] bio_iov_iter_get_pages+0x4de/0x1220 [ 63.001235] iomap_dio_bio_iter+0x9b6/0x1410 [ 63.001297] __iomap_dio_rw+0xab4/0x1810 [ 63.001316] iomap_dio_rw+0x45/0xa0 [ 63.001328] ext4_file_write_iter+0xdde/0x1390 [ 63.001372] vfs_write+0x599/0xbd0 [ 63.001394] ksys_write+0xc8/0x190 [ 63.001403] do_syscall_64+0xd4/0x1b0 [ 63.001421] ? arch_exit_to_user_mode_prepare+0x3a/0x60 [ 63.001479] entry_SYSCALL_64_after_hwframe+0x6f/0x77 [ 63.001535] RIP: 0033:0x7f7fd3ebf539 [ 63.001551] Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 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 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 [ 63.001562] RSP: 002b:00007f7fd32570c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [ 63.001584] RAX: ffffffffffffffda RBX: 00007f7fd3ff3f80 RCX: 00007f7fd3ebf539 [ 63.001590] RDX: 4db6d1e4f7e43360 RSI: 0000000020000000 RDI: 0000000000000004 [ 63.001595] RBP: 00007f7fd3f1e496 R08: 0000000000000000 R09: 0000000000000000 [ 63.001599] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 63.001604] R13: 0000000000000006 R14: 00007f7fd3ff3f80 R15: 00007ffd415ad2b8 ... [ 63.018142] ---[ end trace ]--- Historically, the signed integer overflow sanitizer did not work in the kernel due to its interaction with `-fwrapv` but this has since been changed [1] in the newest version of Clang; It was re-enabled in the kernel with Commit 557f8c582a9ba8ab ("ubsan: Reintroduce signed overflow sanitizer"). Let's rework this overflow checking logic to not actually perform an overflow during the check itself, thus avoiding the UBSAN splat. [1]: https://github.com/llvm/llvm-project/pull/82432
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.9.7
- Published
- 2024-07-12
Affected versions
From: 6.7.2
Until: 6.9.7
Fixed in: 6.9.7
How to fix this CVE
Update your Linux kernel to version 6.9.7 or later to remediate this signed integer overflow vulnerability in the block I/O subsystem. The fix replaces unsafe overflow arithmetic with safer comparison logic that prevents kernel panics and potential privilege escalation. Apply this update during your next maintenance window to ensure stability across all block device operations.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check kernel version: uname -r — confirm if version is between 6.7.2 and 6.9.6
- Verify block I/O subsystem is active: lsblk — confirms system uses block devices that could trigger the vulnerability
- Search system logs for UBSAN errors: grep -i 'UBSAN.*ioctl' /var/log/kern.log or journalctl -u kernel | grep -i UBSAN — indicates overflow sanitizer has detected the issue
- After updating, verify new kernel: uname -r — confirm version is 6.9.7 or later
FAQ
What is CVE-2024-41000?
CVE-2024-41000 is a signed integer overflow vulnerability in the Linux kernel's block I/O control subsystem that can cause kernel panic or potential privilege escalation when malicious callers craft large ioctl requests that trigger arithmetic overflow.
Is CVE-2024-41000 being actively exploited?
No — this vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog and no public exploits are currently available, though it remains a high-priority fix due to its potential for local privilege escalation.
What versions of Kernel are affected by CVE-2024-41000?
Linux kernel versions 6.7.2 through 6.9.6 are affected. The vulnerability was introduced in 6.7.2 and is resolved in 6.9.7 and later.
How do I check if my server is vulnerable to CVE-2024-41000?
Run uname -r and compare the output against the affected range (6.7.2 to 6.9.6). If your kernel falls within this range, your system is vulnerable and requires an immediate update.
Does Defensia detect CVE-2024-41000?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2024-41000 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/3220c90f4dbdc6d20d0608b164d964434a810d66
- https://git.kernel.org/stable/c/54160fb1db2de367485f21e30196c42f7ee0be4e
- https://git.kernel.org/stable/c/58706e482bf45c4db48b0c53aba2468c97adda24
- https://git.kernel.org/stable/c/61ec76ec930709b7bcd69029ef1fe90491f20cf9
- https://git.kernel.org/stable/c/ccb326b5f9e623eb7f130fbbf2505ec0e2dcaff9
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-41000. Free for 1 server.
Get started free