CVE-2024-26674·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: x86/lib: Revert to _ASM_EXTABLE_UA() for {get,put}_user() fixups During memory error injection test on kernels >= v6.4, the kernel panics like below. However, this issue couldn't be reproduced on kernels <= v6.3. mce: [Hardware Error]: CPU 296: Machine Check Exception: f Bank 1: bd80000000100134 mce: [Hardware Error]: RIP 10:<ffffffff821b9776> {__get_user_nocheck_4+0x6/0x20} mce: [Hardware Error]: TSC 411a93533ed ADDR 346a8730040 MISC 86 mce: [Hardware Error]: PROCESSOR 0:a06d0 TIME 1706000767 SOCKET 1 APIC 211 microcode 80001490 mce: [Hardware Error]: Run the above through 'mcelog --ascii' mce: [Hardware Error]: Machine check: Data load in unrecoverable area of kernel Kernel panic - not syncing: Fatal local machine check The MCA code can recover from an in-kernel #MC if the fixup type is EX_TYPE_UACCESS, explicitly indicating that the kernel is attempting to access userspace memory. However, if the fixup type is EX_TYPE_DEFAULT the only thing that is raised for an in-kernel #MC is a panic. ex_handler_uaccess() would warn if users gave a non-canonical addresses (with bit 63 clear) to {get, put}_user(), which was unexpected. Therefore, commit b19b74bc99b1 ("x86/mm: Rework address range check in get_user() and put_user()") replaced _ASM_EXTABLE_UA() with _ASM_EXTABLE() for {get, put}_user() fixups. However, the new fixup type EX_TYPE_DEFAULT results in a panic. Commit 6014bc27561f ("x86-64: make access_ok() independent of LAM") added the check gp_fault_address_ok() right before the WARN_ONCE() in ex_handler_uaccess() to not warn about non-canonical user addresses due to LAM. With that in place, revert back to _ASM_EXTABLE_UA() for {get,put}_user() exception fixups in order to be able to handle in-kernel MCEs correctly again. [ bp: Massage commit message. ]
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.7.5
- Published
- 2024-04-02
Affected versions
From: 6.7
Until: 6.7.5
Fixed in: 6.7.5
How to fix this CVE
Update your Linux kernel to version 6.7.5 or later to resolve this machine check exception (MCE) handling vulnerability. Systems running kernel versions 6.7.0 through 6.7.4 should prioritize this patch, as it restores proper exception handling for user memory access operations that prevents kernel panics during hardware error injection. After updating, verify the patch with `uname -r` to confirm the new kernel version is active.
sudo dnf update kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Check current kernel version: uname -r — if output shows 6.7.0 through 6.7.4, the system is vulnerable
- Verify vulnerable fixup type is in use: grep -r '_ASM_EXTABLE(' /boot/config-$(uname -r) 2>/dev/null — look for get_user/put_user entries
- Monitor system logs for MCE panic indicators: grep -i 'Machine Check Exception\|fatal local machine check' /var/log/kern.log or journalctl -b | grep -i 'mce'
- After patching, confirm kernel version: uname -r — should show 6.7.5 or later to verify the fix is applied
FAQ
What is CVE-2024-26674?
CVE-2024-26674 is a kernel vulnerability affecting x86 exception handling for user memory access operations (get_user/put_user). When hardware errors are injected during these operations, the kernel panics instead of gracefully recovering, because incorrect fixup type metadata prevents proper machine check exception (MCE) handling.
Is CVE-2024-26674 being actively exploited?
No, this vulnerability is not listed in the CISA KEV catalog and has no known public exploits. It is primarily a reliability issue affecting systems that experience hardware errors.
What versions of Kernel are affected by CVE-2024-26674?
Linux kernel versions 6.7.0 through 6.7.4 (inclusive) are affected. The vulnerability was introduced in v6.4 due to exception handling changes and fixed in v6.7.5.
How do I check if my server is vulnerable to CVE-2024-26674?
Run `uname -r` and check if the output begins with '6.7.' followed by a number 0-4 (e.g., 6.7.3). If yes, the system is vulnerable and requires a kernel update to 6.7.5 or later.
Does Defensia detect CVE-2024-26674?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2024-26674 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/2aed1b6c33afd8599d01c6532bbecb829480a674
- https://git.kernel.org/stable/c/2da241c5ed78d0978228a1150735539fe1a60eca
- https://git.kernel.org/stable/c/8eed4e00a370b37b4e5985ed983dccedd555ea9d
- https://git.kernel.org/stable/c/2aed1b6c33afd8599d01c6532bbecb829480a674
- https://git.kernel.org/stable/c/2da241c5ed78d0978228a1150735539fe1a60eca
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-26674. Free for 1 server.
Get started free