Skip to main content

CVE-2024-27412: Vulnerability in Linux Linux

Medium
VulnerabilityCVE-2024-27412cvecve-2024-27412
Published: Fri May 17 2024 (05/17/2024, 11:50:50 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: power: supply: bq27xxx-i2c: Do not free non existing IRQ The bq27xxx i2c-client may not have an IRQ, in which case client->irq will be 0. bq27xxx_battery_i2c_probe() already has an if (client->irq) check wrapping the request_threaded_irq(). But bq27xxx_battery_i2c_remove() unconditionally calls free_irq(client->irq) leading to: [ 190.310742] ------------[ cut here ]------------ [ 190.310843] Trying to free already-free IRQ 0 [ 190.310861] WARNING: CPU: 2 PID: 1304 at kernel/irq/manage.c:1893 free_irq+0x1b8/0x310 Followed by a backtrace when unbinding the driver. Add an if (client->irq) to bq27xxx_battery_i2c_remove() mirroring probe() to fix this.

AI-Powered Analysis

AILast updated: 06/28/2025, 03:10:49 UTC

Technical Analysis

CVE-2024-27412 is a medium-severity vulnerability identified in the Linux kernel's power supply subsystem, specifically within the bq27xxx battery driver that communicates over the I2C bus. The issue arises because the driver’s remove function unconditionally calls free_irq() on the client's IRQ number without verifying if the IRQ was ever allocated. In cases where the bq27xxx i2c-client does not have an IRQ assigned (client->irq equals 0), this leads to an attempt to free a non-existent IRQ 0. This improper handling triggers kernel warnings and a backtrace, which can cause instability or crashes when the driver is unbound or removed. The probe function correctly checks for the presence of an IRQ before requesting it, but the remove function lacks this conditional check, leading to inconsistent resource management. The fix involves adding an if (client->irq) check in the remove function to mirror the probe’s behavior, preventing attempts to free an IRQ that was never allocated. The vulnerability does not impact confidentiality or integrity but affects availability by potentially causing kernel warnings and crashes during driver removal. The CVSS 3.1 score is 5.5 (medium), reflecting the local attack vector, low complexity, low privileges required, no user interaction, and impact limited to availability. No known exploits are reported in the wild as of the publication date. The affected versions correspond to specific Linux kernel commits prior to the patch. This vulnerability is relevant to systems running Linux kernels with the affected bq27xxx battery driver, commonly found in embedded devices, laptops, and other hardware relying on this power management component.

Potential Impact

For European organizations, the impact of CVE-2024-27412 primarily concerns system stability and availability on Linux-based devices that utilize the bq27xxx battery driver. This includes laptops, embedded systems, and potentially IoT devices common in industrial, healthcare, and enterprise environments. While the vulnerability does not allow for privilege escalation or data compromise, the kernel warnings and crashes triggered during driver removal can lead to unexpected downtime or require system reboots, affecting operational continuity. Organizations relying on Linux systems for critical infrastructure or services may experience disruptions if the driver is frequently reloaded or if devices are managed dynamically. The impact is more pronounced in environments with automated device management or frequent hardware changes. Since the vulnerability requires local privileges and affects kernel-level operations, it is less likely to be exploited remotely but could be triggered by malicious or erroneous local processes. European sectors with high Linux adoption, such as telecommunications, manufacturing, and public administration, should be aware of potential availability risks and plan accordingly.

Mitigation Recommendations

To mitigate CVE-2024-27412, European organizations should: 1) Apply the official Linux kernel patches that add the necessary conditional check in the bq27xxx_battery_i2c_remove() function to prevent freeing a non-existent IRQ. 2) For systems where immediate patching is not feasible, avoid unloading or reloading the bq27xxx driver unnecessarily to reduce the risk of triggering the issue. 3) Monitor kernel logs for warnings related to free_irq calls and backtraces to detect potential occurrences of this problem. 4) Incorporate this vulnerability into vulnerability management and patching schedules, prioritizing devices with the affected kernel versions. 5) For embedded or custom Linux distributions, ensure that kernel maintainers backport the fix appropriately. 6) Educate system administrators about the symptoms and encourage reporting of stability issues related to power management drivers. 7) Consider implementing kernel live patching solutions where available to reduce downtime during patch deployment. These steps go beyond generic advice by focusing on driver-specific behavior, kernel log monitoring, and operational practices tailored to the nature of this vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-02-25T13:47:42.682Z
Cisa Enriched
true
Cvss Version
3.1
State
PUBLISHED

Threat ID: 682d9821c4522896dcbddc0b

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

Last enriched: 6/28/2025, 3:10:49 AM

Last updated: 8/14/2025, 7:36:30 PM

Views: 17

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