Skip to main content

CVE-2024-47688: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-47688cvecve-2024-47688
Published: Mon Oct 21 2024 (10/21/2024, 11:53:28 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: driver core: Fix a potential null-ptr-deref in module_add_driver() Inject fault while probing of-fpga-region, if kasprintf() fails in module_add_driver(), the second sysfs_remove_link() in exit path will cause null-ptr-deref as below because kernfs_name_hash() will call strlen() with NULL driver_name. Fix it by releasing resources based on the exit path sequence. KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] Mem abort info: ESR = 0x0000000096000005 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x05: level 1 translation fault Data abort info: ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000 CM = 0, WnR = 0, TnD = 0, TagAccess = 0 GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [dfffffc000000000] address between user and kernel address ranges Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: of_fpga_region(+) fpga_region fpga_bridge cfg80211 rfkill 8021q garp mrp stp llc ipv6 [last unloaded: of_fpga_region] CPU: 2 UID: 0 PID: 2036 Comm: modprobe Not tainted 6.11.0-rc2-g6a0e38264012 #295 Hardware name: linux,dummy-virt (DT) pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : strlen+0x24/0xb0 lr : kernfs_name_hash+0x1c/0xc4 sp : ffffffc081f97380 x29: ffffffc081f97380 x28: ffffffc081f97b90 x27: ffffff80c821c2a0 x26: ffffffedac0be418 x25: 0000000000000000 x24: ffffff80c09d2000 x23: 0000000000000000 x22: 0000000000000000 x21: 0000000000000000 x20: 0000000000000000 x19: 0000000000000000 x18: 0000000000001840 x17: 0000000000000000 x16: 0000000000000000 x15: 1ffffff8103f2e42 x14: 00000000f1f1f1f1 x13: 0000000000000004 x12: ffffffb01812d61d x11: 1ffffff01812d61c x10: ffffffb01812d61c x9 : dfffffc000000000 x8 : 0000004fe7ed29e4 x7 : ffffff80c096b0e7 x6 : 0000000000000001 x5 : ffffff80c096b0e0 x4 : 1ffffffdb990efa2 x3 : 0000000000000000 x2 : 0000000000000000 x1 : dfffffc000000000 x0 : 0000000000000000 Call trace: strlen+0x24/0xb0 kernfs_name_hash+0x1c/0xc4 kernfs_find_ns+0x118/0x2e8 kernfs_remove_by_name_ns+0x80/0x100 sysfs_remove_link+0x74/0xa8 module_add_driver+0x278/0x394 bus_add_driver+0x1f0/0x43c driver_register+0xf4/0x3c0 __platform_driver_register+0x60/0x88 of_fpga_region_init+0x20/0x1000 [of_fpga_region] do_one_initcall+0x110/0x788 do_init_module+0x1dc/0x5c8 load_module+0x3c38/0x4cac init_module_from_file+0xd4/0x128 idempotent_init_module+0x2cc/0x528 __arm64_sys_finit_module+0xac/0x100 invoke_syscall+0x6c/0x258 el0_svc_common.constprop.0+0x160/0x22c do_el0_svc+0x44/0x5c el0_svc+0x48/0xb8 el0t_64_sync_handler+0x13c/0x158 el0t_64_sync+0x190/0x194 Code: f2fbffe1 a90157f4 12000802 aa0003f5 (38e16861) ---[ end trace 0000000000000000 ]--- Kernel panic - not syncing: Oops: Fatal exception

AI-Powered Analysis

AILast updated: 06/27/2025, 21:26:32 UTC

Technical Analysis

CVE-2024-47688 is a vulnerability identified in the Linux kernel's driver core, specifically within the module_add_driver() function. The flaw arises from improper handling of error conditions during the probing of the of_fpga_region driver. When the kernel function kasprintf() fails, the subsequent cleanup routine attempts to call sysfs_remove_link() twice. The second call leads to a null pointer dereference because kernfs_name_hash() is invoked with a NULL driver_name parameter, which causes strlen() to operate on a NULL pointer. This results in a kernel oops and a fatal exception, causing a kernel panic and system crash. The vulnerability is triggered during module loading or driver registration, particularly affecting the of_fpga_region platform driver. The detailed kernel trace shows the fault occurs in strlen(), propagating through kernfs_name_hash(), kernfs_remove_by_name_ns(), and sysfs_remove_link(), culminating in module_add_driver() failure. The issue is a memory safety bug that can cause denial of service (DoS) by crashing the kernel. It affects Linux kernel versions prior to the fix and is relevant to systems using the affected drivers. The vulnerability does not require user interaction but does require the ability to load or register kernel modules, which typically requires administrative privileges. No known exploits are reported in the wild as of the publication date. The vulnerability was reserved on 2024-09-30 and published on 2024-10-21. No CVSS score is assigned yet.

Potential Impact

For European organizations, this vulnerability poses a significant risk primarily as a denial-of-service vector. Systems running vulnerable Linux kernels with the affected drivers, especially those utilizing FPGA regions or related hardware, could experience unexpected kernel panics leading to system downtime. This can disrupt critical infrastructure, industrial control systems, and data center operations that rely on Linux-based servers. The impact on confidentiality and integrity is minimal since the vulnerability leads to a crash rather than privilege escalation or code execution. However, availability is severely impacted, which can affect business continuity, especially in sectors like manufacturing, telecommunications, and cloud service providers that heavily depend on Linux. Organizations with strict uptime requirements or those operating critical services may face operational and financial consequences. Since exploitation requires module loading privileges, the threat is more relevant to environments where untrusted users have elevated access or where kernel modules are dynamically loaded frequently. The lack of known exploits reduces immediate risk but patching is essential to prevent future exploitation.

Mitigation Recommendations

1. Apply the official Linux kernel patches addressing CVE-2024-47688 as soon as they become available from trusted sources or Linux distribution vendors. 2. Restrict kernel module loading to trusted administrators only and audit module loading activities to detect anomalous behavior. 3. Disable or remove unnecessary FPGA-related drivers or modules, such as of_fpga_region, if not required by the system to reduce the attack surface. 4. Implement kernel lockdown features where possible to prevent unauthorized module insertion. 5. Monitor system logs for kernel oops or panic events that may indicate attempted exploitation or instability related to this vulnerability. 6. For environments using custom or embedded Linux kernels, ensure that the kernel is updated and rebuilt with the fix included. 7. Employ robust access controls and segmentation to limit exposure of critical Linux systems to untrusted users. 8. Consider deploying kernel live patching solutions to apply fixes without requiring system downtime in production environments.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-09-30T16:00:12.941Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9820c4522896dcbdce43

Added to database: 5/21/2025, 9:08:48 AM

Last enriched: 6/27/2025, 9:26:32 PM

Last updated: 8/12/2025, 6:53:52 AM

Views: 19

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats