CVE-2026-53308 (GCVE-0-2026-53308)
Vulnerability from cvelistv5 – Published: 2026-06-26 19:41 – Updated: 2026-06-26 19:41
VLAI
Title
power: supply: max77705: Free allocated workqueue and fix removal order
Summary
In the Linux kernel, the following vulnerability has been resolved:
power: supply: max77705: Free allocated workqueue and fix removal order
Use devm interface for allocating workqueue to fix two bugs at the same
time:
1. Driver leaks the memory on remove(), because the workqueue is not
destroyed.
2. Driver allocates workqueue and then registers interrupt handlers
with devm interface. This means that probe error paths will not use a
reversed order, but first destroy the workqueue and then, via devm
release handlers, free the interrupt.
The interrupt handler schedules work on this exact workqueue, thus if
interrupt is hit in this short time window - after destroying
workqueue, but before devm() frees the interrupt - the schedulled
work will lead to use of freed memory.
Change is not equivalent in the workqueue itself: use non-legacy API
which does not set (__WQ_LEGACY | WQ_MEM_RECLAIM). The workqueue is
used to update power supply (power_supply_changed()) status, thus there
is no point to run it for memory reclaim. Note that dev_name() is not
directly used in second argument to prevent possible unlikely parsing
any "%" character in device name as format.
Severity
5.5 (Medium)
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
a6a494c8e3ce1fe84aac538b087a4cab868ed83f , < b98e4e57e34d099a8f846fa54749654082975ea0
(git)
Affected: a6a494c8e3ce1fe84aac538b087a4cab868ed83f , < 1e668baadefb16e81269dbfebf3ffc2672e3a3bb (git) |
|
| Linux | Linux |
Affected:
6.15
Unaffected: 0 , < 6.15 (semver) Unaffected: 7.0.10 , ≤ 7.0.* (semver) Unaffected: 7.1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/power/supply/max77705_charger.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b98e4e57e34d099a8f846fa54749654082975ea0",
"status": "affected",
"version": "a6a494c8e3ce1fe84aac538b087a4cab868ed83f",
"versionType": "git"
},
{
"lessThan": "1e668baadefb16e81269dbfebf3ffc2672e3a3bb",
"status": "affected",
"version": "a6a494c8e3ce1fe84aac538b087a4cab868ed83f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/power/supply/max77705_charger.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.10",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npower: supply: max77705: Free allocated workqueue and fix removal order\n\nUse devm interface for allocating workqueue to fix two bugs at the same\ntime:\n\n1. Driver leaks the memory on remove(), because the workqueue is not\n destroyed.\n\n2. Driver allocates workqueue and then registers interrupt handlers\n with devm interface. This means that probe error paths will not use a\n reversed order, but first destroy the workqueue and then, via devm\n release handlers, free the interrupt.\n\n The interrupt handler schedules work on this exact workqueue, thus if\n interrupt is hit in this short time window - after destroying\n workqueue, but before devm() frees the interrupt - the schedulled\n work will lead to use of freed memory.\n\nChange is not equivalent in the workqueue itself: use non-legacy API\nwhich does not set (__WQ_LEGACY | WQ_MEM_RECLAIM). The workqueue is\nused to update power supply (power_supply_changed()) status, thus there\nis no point to run it for memory reclaim. Note that dev_name() is not\ndirectly used in second argument to prevent possible unlikely parsing\nany \"%\" character in device name as format."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-26T19:41:02.696Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b98e4e57e34d099a8f846fa54749654082975ea0"
},
{
"url": "https://git.kernel.org/stable/c/1e668baadefb16e81269dbfebf3ffc2672e3a3bb"
}
],
"title": "power: supply: max77705: Free allocated workqueue and fix removal order",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53308",
"datePublished": "2026-06-26T19:41:02.696Z",
"dateReserved": "2026-06-09T07:44:35.397Z",
"dateUpdated": "2026-06-26T19:41:02.696Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-53308",
"date": "2026-07-07",
"epss": "0.001",
"percentile": "0.01064"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-53308\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-06-26T20:17:24.110\",\"lastModified\":\"2026-07-06T20:14:36.417\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\npower: supply: max77705: Free allocated workqueue and fix removal order\\n\\nUse devm interface for allocating workqueue to fix two bugs at the same\\ntime:\\n\\n1. Driver leaks the memory on remove(), because the workqueue is not\\n destroyed.\\n\\n2. Driver allocates workqueue and then registers interrupt handlers\\n with devm interface. This means that probe error paths will not use a\\n reversed order, but first destroy the workqueue and then, via devm\\n release handlers, free the interrupt.\\n\\n The interrupt handler schedules work on this exact workqueue, thus if\\n interrupt is hit in this short time window - after destroying\\n workqueue, but before devm() frees the interrupt - the schedulled\\n work will lead to use of freed memory.\\n\\nChange is not equivalent in the workqueue itself: use non-legacy API\\nwhich does not set (__WQ_LEGACY | WQ_MEM_RECLAIM). The workqueue is\\nused to update power supply (power_supply_changed()) status, thus there\\nis no point to run it for memory reclaim. Note that dev_name() is not\\ndirectly used in second argument to prevent possible unlikely parsing\\nany \\\"%\\\" character in device name as format.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/power/supply/max77705_charger.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"a6a494c8e3ce1fe84aac538b087a4cab868ed83f\",\"lessThan\":\"b98e4e57e34d099a8f846fa54749654082975ea0\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a6a494c8e3ce1fe84aac538b087a4cab868ed83f\",\"lessThan\":\"1e668baadefb16e81269dbfebf3ffc2672e3a3bb\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/power/supply/max77705_charger.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.15\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.15\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0.10\",\"lessThanOrEqual\":\"7.0.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-401\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.15\",\"versionEndExcluding\":\"7.0.10\",\"matchCriteriaId\":\"2E6E44BD-EA5E-41E8-907D-E2A9C379B66B\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1e668baadefb16e81269dbfebf3ffc2672e3a3bb\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b98e4e57e34d099a8f846fa54749654082975ea0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}"
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…