{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2023-53518", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-10-01T11:39:39.407Z", "datePublished": "2025-10-01T11:46:05.446Z", "dateUpdated": "2026-08-05T09:14:35.040Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T09:14:35.040Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nPM / devfreq: Fix leak in devfreq_dev_release()\n\nsrcu_init_notifier_head() allocates resources that need to be released\nwith a srcu_cleanup_notifier_head() call.\n\nReported by kmemleak." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The devfreq release path is reached only through local device-lifecycle operations — driver bind/unbind via sysfs, module load/unload, or a failed probe — with no remote or network-facing consumer of this code. There is no packet-driven or adjacent-network path into devfreq_dev_release().\nAC:L - The leak is deterministic — every devfreq device teardown unconditionally drops the srcu per-CPU allocations, so a repeated unbind/rebind loop reliably exhausts per-CPU memory. The attacker drives both the srcu grace-period activity (governor/notifier teardown) and the immediately following kfree(), so the dangling-work window is attacker-created rather than dependent on external state.\nPR:L - The trigger is a local device-management operation on the affected platform (GPU/UFS/bus devfreq drivers), consistent with how other driver teardown/unload memory-corruption issues are scored; no authentication to a remote service and no capability that is unreachable in practice on the affected embedded/Android deployments is needed.\nUI:N - The attacker performs the bind/unbind or module unload themselves in a loop; no victim action, mount, or file open is required for the leak or the dangling srcu work to occur.\nS:U - The leaked allocations and any resulting corruption are entirely within the kernel's own memory and security authority, with no crossing into a hypervisor, IOMMU, or other security domain.\nC:H - kfree()ing the devfreq object while the srcu_struct is still live leaves leaked per-CPU srcu_data with dangling ->ssp pointers and pending srcu work into freed slab memory, a use-after-free that can be groomed to read back kernel data from the reallocated object.\nI:H - The uncleaned srcu_struct embeds a delayed_work and per-CPU timers that can fire after the containing allocation is freed, causing srcu state-machine writes (locks, sequence counters, work_struct/timer list links) into memory an attacker can reallocate — a write primitive into a controlled heap object.\nA:H - Each teardown leaks srcu_usage, the srcu_node tree, and a per-CPU srcu_data array; per-CPU memory is a scarce vmalloc-backed resource, so repeated cycles exhaust it and cause system-wide allocation failures, and the dangling timer/work references can additionally oops the kernel." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/devfreq/devfreq.c" ], "versions": [ { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "7462483446cb9986568ad7adae746ce5f18d2968", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "64e6e0dc2d578c0a9e31cb4edd719f0a3ed98f6d", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "29811f4b8255d4238cf326f3bb7129784766beab", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "ab192e5e5d3b48415909a8408acfd007a607bcc0", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "111bafa210ae546bee7644be730c42df9c35b66e", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "8918025feb2f5f7c73f2495c158f22997e25cb02", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "1640e9c72173911ad0fddb05012c01eafe082c4e", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "3354c401c68d70567d1ef25d12f4e22a7813a3c6", "status": "affected", "versionType": "git" }, { "version": "0fe3a66410a3ba96679be903f1e287d7a0a264a9", "lessThan": "5693d077595de721f9ddbf9d37f40e5409707dfe", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/devfreq/devfreq.c" ], "versions": [ { "version": "4.7", "status": "affected" }, { "version": "0", "lessThan": "4.7", "status": "unaffected", "versionType": "semver" }, { "version": "4.14.326", "lessThanOrEqual": "4.14.*", "status": "unaffected", "versionType": "semver" }, { "version": "4.19.295", "lessThanOrEqual": "4.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.257", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.195", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.132", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.53", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.4.16", "lessThanOrEqual": "6.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.5.3", "lessThanOrEqual": "6.5.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "4.14.326" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "4.19.295" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "5.4.257" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "5.10.195" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "5.15.132" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "6.1.53" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "6.4.16" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "6.5.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.7", "versionEndExcluding": "6.6" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/7462483446cb9986568ad7adae746ce5f18d2968" }, { "url": "https://git.kernel.org/stable/c/64e6e0dc2d578c0a9e31cb4edd719f0a3ed98f6d" }, { "url": "https://git.kernel.org/stable/c/29811f4b8255d4238cf326f3bb7129784766beab" }, { "url": "https://git.kernel.org/stable/c/ab192e5e5d3b48415909a8408acfd007a607bcc0" }, { "url": "https://git.kernel.org/stable/c/111bafa210ae546bee7644be730c42df9c35b66e" }, { "url": "https://git.kernel.org/stable/c/8918025feb2f5f7c73f2495c158f22997e25cb02" }, { "url": "https://git.kernel.org/stable/c/1640e9c72173911ad0fddb05012c01eafe082c4e" }, { "url": "https://git.kernel.org/stable/c/3354c401c68d70567d1ef25d12f4e22a7813a3c6" }, { "url": "https://git.kernel.org/stable/c/5693d077595de721f9ddbf9d37f40e5409707dfe" } ], "title": "PM / devfreq: Fix leak in devfreq_dev_release()", "x_generator": { "engine": "bippy-1.2.0" } } } }