CVE-2024-27412

power: supply: bq27xxx-i2c: Do not free non existing IRQ

Medium · published May 17, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
15.0
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00246 · 15.0th percentile
Published
2024-05-17T11:50Z
EPSS history
Timeline
  • 17 MAY 11:50Z
    power: supply: bq27xxx-i2c: Do not free non existing IRQ
    cvelistv5