CVE-2026-89475
In the Linux kernel, the following vulnerability has been resolved:
power: supply: bq24257: fix use-after-free on remove
The STAT-pin interrupt is devm-managed, so it stays armed until the devm cleanup that runs after remove() returns. remove() cancels bq->iilimit_setup_work while the threaded handler can still fire; that handler reschedules the work and dereferences bq, so the work runs against freed memory once devm frees bq.
Make the delayed work device-managed with devm_delayed_work_autocancel(), registered before the interrupt request. The devm cleanup then releases the interrupt first, so the handler can no longer reschedule the work, and cancels the work before bq is freed. The explicit cancel_delayed_work_sync() in remove() is no longer needed and is dropped.
Leer descripción completaMostrar menos
Found by static analysis.
CVSS
NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.21%
- Percentil entre todas las CVEs puntuadas: 10
- Fecha de la puntuación: 5/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
Referencias
- https://git.kernel.org/stable/c/47ccbad210f48721c30d69d65b83dc9fff919ca9
- https://git.kernel.org/stable/c/6d2eb93975c07b0169a3287efc1ae3b60cf52d8e
- https://git.kernel.org/stable/c/861ec73ce86e2ca18082cc7be4f140a5bbdf1428
- https://git.kernel.org/stable/c/9d34c9d660c3d0931d2cc749c46c47cf31f96e48
- https://git.kernel.org/stable/c/9d77fd7dd9a3ad57f7655c5264b503b85adbb7b8
- https://git.kernel.org/stable/c/a279e64c907f5638bb34cb8e2c9285798cf5f690
- https://git.kernel.org/stable/c/f495808cdd6d9576965787cf6d9737d0b0e86b73
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-89475",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "9d77fd7dd9a3ad57f7655c5264b503b85adbb7b8",
"versionType": "git"
},
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "a279e64c907f5638bb34cb8e2c9285798cf5f690",
"versionType": "git"
},
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "6d2eb93975c07b0169a3287efc1ae3b60cf52d8e",
"versionType": "git"
},
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "861ec73ce86e2ca18082cc7be4f140a5bbdf1428",
"versionType": "git"
},
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "f495808cdd6d9576965787cf6d9737d0b0e86b73",
"versionType": "git"
},
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "47ccbad210f48721c30d69d65b83dc9fff919ca9",
"versionType": "git"
},
{
"status": "affected",
"version": "2219a935963e5eeb19e5abfb99475fcc06bbb804",
"lessThan": "9d34c9d660c3d0931d2cc749c46c47cf31f96e48",
"versionType": "git"
}
],
"programFiles": [
"drivers/power/supply/bq24257_charger.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "4.2"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "4.2",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.109",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.50",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.4",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/power/supply/bq24257_charger.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-09-11T20:19:28.807",
"references": [
{
"url": "https://git.kernel.org/stable/c/47ccbad210f48721c30d69d65b83dc9fff919ca9",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/6d2eb93975c07b0169a3287efc1ae3b60cf52d8e",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/861ec73ce86e2ca18082cc7be4f140a5bbdf1428",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/9d34c9d660c3d0931d2cc749c46c47cf31f96e48",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/9d77fd7dd9a3ad57f7655c5264b503b85adbb7b8",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/a279e64c907f5638bb34cb8e2c9285798cf5f690",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f495808cdd6d9576965787cf6d9737d0b0e86b73",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npower: supply: bq24257: fix use-after-free on remove\n\nThe STAT-pin interrupt is devm-managed, so it stays armed until the devm\ncleanup that runs after remove() returns. remove() cancels\nbq->iilimit_setup_work while the threaded handler can still fire; that\nhandler reschedules the work and dereferences bq, so the work runs\nagainst freed memory once devm frees bq.\n\nMake the delayed work device-managed with devm_delayed_work_autocancel(),\nregistered before the interrupt request. The devm cleanup then releases\nthe interrupt first, so the handler can no longer reschedule the work,\nand cancels the work before bq is freed. The explicit\ncancel_delayed_work_sync() in remove() is no longer needed and is dropped.\n\nFound by static analysis."
}
],
"lastModified": "2026-09-14T13:19:03.853",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}