Skip to main content

CVE-2024-58054: Vulnerability in Linux Linux

Medium
VulnerabilityCVE-2024-58054cvecve-2024-58054
Published: Thu Mar 06 2025 (03/06/2025, 15:53:58 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: staging: media: max96712: fix kernel oops when removing module The following kernel oops is thrown when trying to remove the max96712 module: Unable to handle kernel paging request at virtual address 00007375746174db Mem abort info: ESR = 0x0000000096000004 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x04: level 0 translation fault Data abort info: ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 CM = 0, WnR = 0, TnD = 0, TagAccess = 0 GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 user pgtable: 4k pages, 48-bit VAs, pgdp=000000010af89000 [00007375746174db] pgd=0000000000000000, p4d=0000000000000000 Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP Modules linked in: crct10dif_ce polyval_ce mxc_jpeg_encdec flexcan snd_soc_fsl_sai snd_soc_fsl_asoc_card snd_soc_fsl_micfil dwc_mipi_csi2 imx_csi_formatter polyval_generic v4l2_jpeg imx_pcm_dma can_dev snd_soc_imx_audmux snd_soc_wm8962 snd_soc_imx_card snd_soc_fsl_utils max96712(C-) rpmsg_ctrl rpmsg_char pwm_fan fuse [last unloaded: imx8_isi] CPU: 0 UID: 0 PID: 754 Comm: rmmod Tainted: G C 6.12.0-rc6-06364-g327fec852c31 #17 Tainted: [C]=CRAP Hardware name: NXP i.MX95 19X19 board (DT) pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : led_put+0x1c/0x40 lr : v4l2_subdev_put_privacy_led+0x48/0x58 sp : ffff80008699bbb0 x29: ffff80008699bbb0 x28: ffff00008ac233c0 x27: 0000000000000000 x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000 x23: ffff000080cf1170 x22: ffff00008b53bd00 x21: ffff8000822ad1c8 x20: ffff000080ff5c00 x19: ffff00008b53be40 x18: 0000000000000000 x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 x14: 0000000000000004 x13: ffff0000800f8010 x12: 0000000000000000 x11: ffff000082acf5c0 x10: ffff000082acf478 x9 : ffff0000800f8010 x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d x5 : 8080808000000000 x4 : 0000000000000020 x3 : 00000000553a3dc1 x2 : ffff00008ac233c0 x1 : ffff00008ac233c0 x0 : ff00737574617473 Call trace: led_put+0x1c/0x40 v4l2_subdev_put_privacy_led+0x48/0x58 v4l2_async_unregister_subdev+0x2c/0x1a4 max96712_remove+0x1c/0x38 [max96712] i2c_device_remove+0x2c/0x9c device_remove+0x4c/0x80 device_release_driver_internal+0x1cc/0x228 driver_detach+0x4c/0x98 bus_remove_driver+0x6c/0xbc driver_unregister+0x30/0x60 i2c_del_driver+0x54/0x64 max96712_i2c_driver_exit+0x18/0x1d0 [max96712] __arm64_sys_delete_module+0x1a4/0x290 invoke_syscall+0x48/0x10c el0_svc_common.constprop.0+0xc0/0xe0 do_el0_svc+0x1c/0x28 el0_svc+0x34/0xd8 el0t_64_sync_handler+0x120/0x12c el0t_64_sync+0x190/0x194 Code: f9000bf3 aa0003f3 f9402800 f9402000 (f9403400) ---[ end trace 0000000000000000 ]--- This happens because in v4l2_i2c_subdev_init(), the i2c_set_cliendata() is called again and the data is overwritten to point to sd, instead of priv. So, in remove(), the wrong pointer is passed to v4l2_async_unregister_subdev(), leading to a crash.

AI-Powered Analysis

AILast updated: 06/28/2025, 05:40:24 UTC

Technical Analysis

CVE-2024-58054 is a vulnerability identified in the Linux kernel specifically affecting the max96712 module, which is part of the staging media drivers. The issue arises during the removal of the max96712 kernel module, where a kernel oops (a type of kernel crash) occurs due to an invalid memory access. The root cause is a pointer mismanagement in the v4l2_i2c_subdev_init() function, where i2c_set_clientdata() is called multiple times, causing the client data pointer to be overwritten incorrectly. Instead of pointing to the private data structure (priv), it points to the sub-device structure (sd). Consequently, when the module is removed, the wrong pointer is passed to v4l2_async_unregister_subdev(), leading to a kernel paging fault and crash. The crash details indicate a level 0 translation fault during a data abort, which is symptomatic of dereferencing an invalid or NULL pointer in kernel space. This vulnerability is specific to the max96712 driver used on certain NXP i.MX95 hardware platforms and is triggered during module unload operations. There is no evidence of known exploits in the wild, and no CVSS score has been assigned yet. The vulnerability affects Linux kernel versions containing the faulty max96712 module implementation, as indicated by the affected commit hashes. The issue is technical and low-level, impacting kernel stability and reliability rather than directly enabling privilege escalation or remote code execution. However, kernel crashes can lead to denial of service conditions and potential system instability.

Potential Impact

For European organizations, the primary impact of CVE-2024-58054 is on systems running Linux kernels with the vulnerable max96712 module, particularly those deployed on NXP i.MX95-based embedded platforms. Such platforms are commonly used in industrial control systems, IoT devices, and specialized media processing equipment. A kernel oops during module removal can cause system crashes or reboots, leading to denial of service (DoS). This can disrupt critical operations, especially in industrial environments or telecommunications infrastructure. While the vulnerability does not appear to allow privilege escalation or remote exploitation, the instability it causes could be exploited indirectly by attackers to degrade service availability. European organizations relying on embedded Linux devices with this hardware and driver combination may face operational disruptions. Additionally, the lack of a patch or exploit in the wild suggests the threat is currently low but should be addressed proactively to maintain system reliability and security compliance.

Mitigation Recommendations

Specific mitigation steps include: 1) Applying the official Linux kernel patches that fix the pointer handling in the max96712 driver as soon as they become available. Monitoring Linux kernel mailing lists and vendor advisories for updates is critical. 2) Avoid unloading the max96712 module dynamically if possible, especially in production environments, to prevent triggering the kernel oops. 3) For embedded device manufacturers and integrators, consider updating the device firmware to include the patched kernel version. 4) Implement robust monitoring and alerting for kernel oops and crashes on affected systems to detect any attempts to exploit or trigger the vulnerability. 5) Conduct thorough testing of kernel module unload operations in staging environments before deployment. 6) If immediate patching is not feasible, isolate affected devices from critical networks to reduce impact of potential DoS conditions. 7) Engage with hardware vendors (e.g., NXP) for any platform-specific guidance or firmware updates related to this vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2025-03-06T15:52:09.178Z
Cisa Enriched
false
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9822c4522896dcbde227

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

Last enriched: 6/28/2025, 5:40:24 AM

Last updated: 7/29/2025, 1:47:29 AM

Views: 12

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