CVE-2024-37078·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix potential kernel bug due to lack of writeback flag waiting Destructive writes to a block device on which nilfs2 is mounted can cause a kernel bug in the folio/page writeback start routine or writeback end routine (__folio_start_writeback in the log below): kernel BUG at mm/page-writeback.c:3070! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI ... RIP: 0010:__folio_start_writeback+0xbaa/0x10e0 Code: 25 ff 0f 00 00 0f 84 18 01 00 00 e8 40 ca c6 ff e9 17 f6 ff ff e8 36 ca c6 ff 4c 89 f7 48 c7 c6 80 c0 12 84 e8 e7 b3 0f 00 90 <0f> 0b e8 1f ca c6 ff 4c 89 f7 48 c7 c6 a0 c6 12 84 e8 d0 b3 0f 00 ... Call Trace: <TASK> nilfs_segctor_do_construct+0x4654/0x69d0 [nilfs2] nilfs_segctor_construct+0x181/0x6b0 [nilfs2] nilfs_segctor_thread+0x548/0x11c0 [nilfs2] kthread+0x2f0/0x390 ret_from_fork+0x4b/0x80 ret_from_fork_asm+0x1a/0x30 </TASK> This is because when the log writer starts a writeback for segment summary blocks or a super root block that use the backing device's page cache, it does not wait for the ongoing folio/page writeback, resulting in an inconsistent writeback state. Fix this issue by waiting for ongoing writebacks when putting folios/pages on the backing device into writeback state.
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.9.5
- Published
- 2024-06-25
Affected versions
From: 6.7
Until: 6.9.5
Fixed in: 6.9.5
How to fix this CVE
Update the Linux kernel to version 6.9.5 or later to resolve a critical writeback synchronization issue in nilfs2 that can trigger kernel panics during heavy I/O operations. Systems running kernel versions 6.7 through 6.9.4 should prioritize this update immediately. The fix implements proper wait mechanisms for ongoing folio/page writebacks before initiating new writeback operations on backing device cache.
sudo dnf check-update kernel && sudo dnf upgrade kernelDefensia detects this vulnerability
How to check if you are affected
- Run 'uname -r' to retrieve your current kernel version and compare against the affected range (6.7.0 to 6.9.4)
- Check if nilfs2 filesystem is mounted using 'mount | grep nilfs2' or 'df -t nilfs2'
- Search kernel logs for the BUG pattern using 'sudo dmesg | grep -i "page-writeback\|__folio_start_writeback\|kernel BUG"'
- Verify patch status with 'cat /boot/config-$(uname -r) | grep CONFIG_NILFS2' and confirm kernel version shows 6.9.5 or higher after reboot
FAQ
What is CVE-2024-37078?
CVE-2024-37078 is a kernel vulnerability in nilfs2 filesystem where the log writer fails to wait for ongoing page writebacks before initiating new writebacks on backing device cache, causing kernel panics in the writeback subsystem. This leads to an invalid opcode exception in the folio writeback start routine.
Is CVE-2024-37078 being actively exploited?
No, CVE-2024-37078 is not listed in the CISA Known Exploited Vulnerabilities catalog and no public exploits are available. However, it can be triggered through destructive writes to block devices, making it a risk in environments with untrusted local access.
What versions of Kernel are affected by CVE-2024-37078?
Linux kernel versions 6.7.0 through 6.9.4 are vulnerable. The fix was released in kernel version 6.9.5 and backported to stable branches.
How do I check if my server is vulnerable to CVE-2024-37078?
Run 'uname -r' to see your kernel version. If it shows 6.7.x through 6.9.4, and nilfs2 is mounted (check with 'mount | grep nilfs2'), your system is vulnerable and requires an immediate kernel update.
Does Defensia detect CVE-2024-37078?
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-2024-37078 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/0ecfe3a92869a59668d27228dabbd7965e83567f
- https://git.kernel.org/stable/c/1f3bff69f1214fe03a02bc650d5bbfaa6e65ae7d
- https://git.kernel.org/stable/c/271dcd977ccda8c7a26e360425ae7b4db7d2ecc0
- https://git.kernel.org/stable/c/33900d7eae616647e179eee1c66ebe654ee39627
- https://git.kernel.org/stable/c/614d397be0cf43412b3f94a0f6460eddced8ce92
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-37078. Free for 1 server.
Get started free