CVE-2024-27412: Vulnerability in Linux Linux
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 Analysis
Technical Summary
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.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain, Poland, Belgium
CVE-2024-27412: Vulnerability in Linux 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
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.
For access to advanced analysis and higher rate limits, contact root@offseq.com
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
Related Threats
CVE-2025-8193
LowCVE-2025-9356: Stack-based Buffer Overflow in Linksys RE6250
HighCVE-2025-9355: Stack-based Buffer Overflow in Linksys RE6250
HighCVE-2025-43761: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Liferay Portal
MediumCVE-2025-24902: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') in LabRedesCefetRJ WeGIA
CriticalActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.