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. bq27xxxbatteryi2cprobe() already has an if (client->irq) check wrapping the requestthreaded_irq().
But bq27xxxbatteryi2cremove() unconditionally calls freeirq(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 bq27xxxbatteryi2c_remove() mirroring probe() to fix this.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7394abc8926adee6a817bab10797e0adc898af77",
"id": "CVE-2024-27412-1351ed27",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"89384477108004004319816809724846658612",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2df70149e73e79783bcbc7db4fa51ecef0e2022c",
"id": "CVE-2024-27412-35517cc5",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"208310271112252303563411966669216872911",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d4d813c0a14d6bf52d810a55db06a2e7e3d98eaa",
"id": "CVE-2024-27412-56008bd4",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"89384477108004004319816809724846658612",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d4d813c0a14d6bf52d810a55db06a2e7e3d98eaa",
"id": "CVE-2024-27412-588ebe33",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "203724744610545776344563471674478608600",
"length": 244.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7394abc8926adee6a817bab10797e0adc898af77",
"id": "CVE-2024-27412-59516c8b",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "203724744610545776344563471674478608600",
"length": 244.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d7acc4a569f5f4513120c85ea2b9f04909b7490f",
"id": "CVE-2024-27412-6959b08b",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"89384477108004004319816809724846658612",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d7acc4a569f5f4513120c85ea2b9f04909b7490f",
"id": "CVE-2024-27412-6982ab49",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "203724744610545776344563471674478608600",
"length": 244.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cefe18e9ec84f8fe3e198ccebb815cc996eb9797",
"id": "CVE-2024-27412-9277ee42",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"208310271112252303563411966669216872911",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@083686474e7c97b0f8b66df37fcb64e432e8b771",
"id": "CVE-2024-27412-9edf63f2",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"208310271112252303563411966669216872911",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fbca8bae1ba79d443a58781b45e92a73a24ac8f8",
"id": "CVE-2024-27412-ab57c897",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"208310271112252303563411966669216872911",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fbca8bae1ba79d443a58781b45e92a73a24ac8f8",
"id": "CVE-2024-27412-aefd7602",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "215664290060630287451757031202374334205",
"length": 233.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cefe18e9ec84f8fe3e198ccebb815cc996eb9797",
"id": "CVE-2024-27412-cb1b8d57",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "215664290060630287451757031202374334205",
"length": 233.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e601ae81910ce6a3797876e190a2d8ef6cf828bc",
"id": "CVE-2024-27412-ced9f61e",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "203724744610545776344563471674478608600",
"length": 244.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@083686474e7c97b0f8b66df37fcb64e432e8b771",
"id": "CVE-2024-27412-e56053ae",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "215664290060630287451757031202374334205",
"length": 233.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2df70149e73e79783bcbc7db4fa51ecef0e2022c",
"id": "CVE-2024-27412-f3a17375",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "bq27xxx_battery_i2c_remove",
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"function_hash": "215664290060630287451757031202374334205",
"length": 233.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e601ae81910ce6a3797876e190a2d8ef6cf828bc",
"id": "CVE-2024-27412-faf7a803",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/power/supply/bq27xxx_battery_i2c.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"89384477108004004319816809724846658612",
"63152286691341185082511708253033892651",
"331396866624974692154523133418799818641",
"47093565903676494869141780353952862161"
]
}
}
]