{"id":"CVE-2023-53518","state":"PUBLISHED","title":"PM / devfreq: Fix leak in devfreq_dev_release()","description":"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.","publishedAt":"2025-10-01T11:46:05.446Z","updatedAt":"2026-10-15T21:41:29.791Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"7462483446cb9986568ad7adae746ce5f18d2968","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"64e6e0dc2d578c0a9e31cb4edd719f0a3ed98f6d","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"29811f4b8255d4238cf326f3bb7129784766beab","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"ab192e5e5d3b48415909a8408acfd007a607bcc0","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"111bafa210ae546bee7644be730c42df9c35b66e","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"8918025feb2f5f7c73f2495c158f22997e25cb02","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"1640e9c72173911ad0fddb05012c01eafe082c4e","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"3354c401c68d70567d1ef25d12f4e22a7813a3c6","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"5693d077595de721f9ddbf9d37f40e5409707dfe","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/devfreq/devfreq.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.7","versionType":"semver"},{"version":"4.14.326","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.295","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.257","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.195","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.132","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.53","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.4.16","status":"unaffected","lessThanOrEqual":"6.4.*","versionType":"semver"},{"version":"6.5.3","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/devfreq/devfreq.c"]}],"references":["https://git.kernel.org/stable/c/7462483446cb9986568ad7adae746ce5f18d2968","https://git.kernel.org/stable/c/64e6e0dc2d578c0a9e31cb4edd719f0a3ed98f6d","https://git.kernel.org/stable/c/29811f4b8255d4238cf326f3bb7129784766beab","https://git.kernel.org/stable/c/ab192e5e5d3b48415909a8408acfd007a607bcc0","https://git.kernel.org/stable/c/111bafa210ae546bee7644be730c42df9c35b66e","https://git.kernel.org/stable/c/8918025feb2f5f7c73f2495c158f22997e25cb02","https://git.kernel.org/stable/c/1640e9c72173911ad0fddb05012c01eafe082c4e","https://git.kernel.org/stable/c/3354c401c68d70567d1ef25d12f4e22a7813a3c6","https://git.kernel.org/stable/c/5693d077595de721f9ddbf9d37f40e5409707dfe"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:33.064Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/53xxx/CVE-2023-53518.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53518","state":"PUBLISHED","datePublished":"2025-10-01T11:46:05.446Z","dateUpdated":"2026-10-15T21:41:29.791Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-10-01T11:39:39.407Z"},"containers":{"cna":{"title":"PM / devfreq: Fix leak in devfreq_dev_release()","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."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"7462483446cb9986568ad7adae746ce5f18d2968","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"64e6e0dc2d578c0a9e31cb4edd719f0a3ed98f6d","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"29811f4b8255d4238cf326f3bb7129784766beab","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"ab192e5e5d3b48415909a8408acfd007a607bcc0","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"111bafa210ae546bee7644be730c42df9c35b66e","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"8918025feb2f5f7c73f2495c158f22997e25cb02","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"1640e9c72173911ad0fddb05012c01eafe082c4e","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"3354c401c68d70567d1ef25d12f4e22a7813a3c6","versionType":"git"},{"version":"0fe3a66410a3ba96679be903f1e287d7a0a264a9","status":"affected","lessThan":"5693d077595de721f9ddbf9d37f40e5409707dfe","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/devfreq/devfreq.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.7","versionType":"semver"},{"version":"4.14.326","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.295","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.257","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.195","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.132","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.53","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.4.16","status":"unaffected","lessThanOrEqual":"6.4.*","versionType":"semver"},{"version":"6.5.3","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/devfreq/devfreq.c"]}],"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"}],"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."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T09:14:35.040Z"},"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"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2023-53518","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-15T21:35:17.855174Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T21:41:29.791Z"}}]}}}