CVE-2024-27412: power: supply: bq27xxx-i2c: Do not free non existing IRQ
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.
Security readout for executives and security teams
Plain-English summary
CVE-2024-27412 is a Linux kernel bug in the bq27xxx I2C battery driver. On systems where the battery device has no IRQ, removing or unbinding the driver can incorrectly free IRQ 0, causing a kernel warning and backtrace. The main business risk is local availability impact on affected Linux-based devices.
Executive priority
Treat as a targeted availability maintenance item, not an emergency. Prioritize patching Linux-based devices that use bq27xxx battery hardware, especially managed embedded fleets where local service disruption could affect operations.
Technical view
The bq27xxx_battery_i2c_probe path only requests an IRQ when client->irq is present, but the remove path unconditionally calls free_irq(client->irq). If client->irq is 0, the kernel attempts to free a non-existing or already-free IRQ. The upstream fix mirrors probe logic by checking client->irq before free_irq.
Likely exposure
Exposure is most likely on Linux systems using the bq27xxx I2C power-supply driver, especially embedded, mobile, IoT, or hardware platforms with TI bq27xxx battery fuel-gauge devices and no configured IRQ. General servers without this hardware or driver are less likely exposed.
Exploitation context
The CVSS vector is local, low complexity, and requires low privileges. The bundle reports no CISA KEV listing, and no cited source states active exploitation. Evidence supports a local availability issue during driver removal or unbind, not remote compromise.
Researcher notes
The source evidence is specific: request_threaded_irq is conditional in probe, while free_irq was unconditional in remove. The available sources do not establish remote reachability, data exposure, privilege escalation, weaponized exploitation, or a broad enterprise-server impact.
Mitigation direction
Update to a vendor kernel containing the listed stable kernel fixes.
Apply Debian LTS kernel updates where Debian advisories apply.
Check kernel vendor guidance for exact fixed package versions.
Avoid unnecessary bq27xxx-i2c driver unbinds on affected hardware until patched.
Prioritize embedded and fleet devices using bq27xxx battery gauges.
Validation and detection
Inventory systems loading the bq27xxx-i2c or bq27xxx battery driver.
Confirm whether the affected device lacks a configured IRQ.
Compare running kernel versions against vendor-fixed kernel releases.
Review kernel logs for IRQ 0 free warnings during driver removal.
Validate patched kernels include the client->irq guard in remove logic.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-27412 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.