{"api_version":"1","generated_at":"2026-07-24T20:32:59+00:00","cve":"CVE-2026-64241","urls":{"html":"https://cve.report/CVE-2026-64241","api":"https://cve.report/api/cve/CVE-2026-64241.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-64241","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-64241"},"summary":{"title":"gpio: rockchip: teardown bugs and resource leaks","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ngpio: rockchip: teardown bugs and resource leaks\n\nAddress several teardown issues and resource leaks in the driver's remove\npath and error handling:\n\n1. Debounce clock reference leak: The debounce clock (bank->db_clk) is\n   obtained using of_clk_get() which increments the clock's reference\n   count, but clk_put() is never called. Register a devm action to\n   cleanly release it on unbind. Note that of_clk_get(..., 1) remains\n   necessary over devm_clk_get() because the DT binding does not define\n   clock-names, precluding name-based lookup.\n\n2. Unregistered chained IRQ handler: The chained IRQ handler is not\n   disconnected in remove(). If a stray interrupt fires after the driver\n   is removed, the kernel attempts to execute a stale handler, leading\n   to a panic. Fix this by clearing the handler in remove().\n\n3. IRQ domain leak: The linear IRQ domain and its generic chips are\n   allocated manually during probe but never removed. Remove the IRQ\n   domain during driver teardown to free the associated generic chips\n   and mappings.\n\n[Bartosz: don't emit an error message on devres allocation failure]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-07-24 16:16:53","updated_at":"2026-07-24 16:16:53"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/cdc603ce3118232712ba443dd8b414d8f25ca467","name":"https://git.kernel.org/stable/c/cdc603ce3118232712ba443dd8b414d8f25ca467","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7f945f7f10f442270518dfd768d230227c495fcf","name":"https://git.kernel.org/stable/c/7f945f7f10f442270518dfd768d230227c495fcf","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6be81e77e1748665d7ddab9128ff1d35eb75b87d","name":"https://git.kernel.org/stable/c/6be81e77e1748665d7ddab9128ff1d35eb75b87d","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/9500077678230e36d22bf16d2b9539c13e59a801","name":"https://git.kernel.org/stable/c/9500077678230e36d22bf16d2b9539c13e59a801","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-64241","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64241","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 936ee2675eee1faca0dcdfa79165c7990422e0fc cdc603ce3118232712ba443dd8b414d8f25ca467 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 936ee2675eee1faca0dcdfa79165c7990422e0fc 7f945f7f10f442270518dfd768d230227c495fcf git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 936ee2675eee1faca0dcdfa79165c7990422e0fc 6be81e77e1748665d7ddab9128ff1d35eb75b87d git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 936ee2675eee1faca0dcdfa79165c7990422e0fc 9500077678230e36d22bf16d2b9539c13e59a801 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.15","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.96 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.35 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.12 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/gpio/gpio-rockchip.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"cdc603ce3118232712ba443dd8b414d8f25ca467","status":"affected","version":"936ee2675eee1faca0dcdfa79165c7990422e0fc","versionType":"git"},{"lessThan":"7f945f7f10f442270518dfd768d230227c495fcf","status":"affected","version":"936ee2675eee1faca0dcdfa79165c7990422e0fc","versionType":"git"},{"lessThan":"6be81e77e1748665d7ddab9128ff1d35eb75b87d","status":"affected","version":"936ee2675eee1faca0dcdfa79165c7990422e0fc","versionType":"git"},{"lessThan":"9500077678230e36d22bf16d2b9539c13e59a801","status":"affected","version":"936ee2675eee1faca0dcdfa79165c7990422e0fc","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/gpio/gpio-rockchip.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"5.15"},{"lessThan":"5.15","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.96","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.35","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.12","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":"6.12.96","versionStartIncluding":"5.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.35","versionStartIncluding":"5.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.12","versionStartIncluding":"5.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"5.15","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ngpio: rockchip: teardown bugs and resource leaks\n\nAddress several teardown issues and resource leaks in the driver's remove\npath and error handling:\n\n1. Debounce clock reference leak: The debounce clock (bank->db_clk) is\n   obtained using of_clk_get() which increments the clock's reference\n   count, but clk_put() is never called. Register a devm action to\n   cleanly release it on unbind. Note that of_clk_get(..., 1) remains\n   necessary over devm_clk_get() because the DT binding does not define\n   clock-names, precluding name-based lookup.\n\n2. Unregistered chained IRQ handler: The chained IRQ handler is not\n   disconnected in remove(). If a stray interrupt fires after the driver\n   is removed, the kernel attempts to execute a stale handler, leading\n   to a panic. Fix this by clearing the handler in remove().\n\n3. IRQ domain leak: The linear IRQ domain and its generic chips are\n   allocated manually during probe but never removed. Remove the IRQ\n   domain during driver teardown to free the associated generic chips\n   and mappings.\n\n[Bartosz: don't emit an error message on devres allocation failure]"}],"providerMetadata":{"dateUpdated":"2026-07-24T15:27:44.144Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/cdc603ce3118232712ba443dd8b414d8f25ca467"},{"url":"https://git.kernel.org/stable/c/7f945f7f10f442270518dfd768d230227c495fcf"},{"url":"https://git.kernel.org/stable/c/6be81e77e1748665d7ddab9128ff1d35eb75b87d"},{"url":"https://git.kernel.org/stable/c/9500077678230e36d22bf16d2b9539c13e59a801"}],"title":"gpio: rockchip: teardown bugs and resource leaks","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-64241","datePublished":"2026-07-24T15:27:44.144Z","dateReserved":"2026-07-19T15:36:31.772Z","dateUpdated":"2026-07-24T15:27:44.144Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-07-24 16:16:53","lastModifiedDate":"2026-07-24 16:16:53","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"64241","Ordinal":"1","Title":"gpio: rockchip: teardown bugs and resource leaks","CVE":"CVE-2026-64241","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"64241","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ngpio: rockchip: teardown bugs and resource leaks\n\nAddress several teardown issues and resource leaks in the driver's remove\npath and error handling:\n\n1. Debounce clock reference leak: The debounce clock (bank->db_clk) is\n   obtained using of_clk_get() which increments the clock's reference\n   count, but clk_put() is never called. Register a devm action to\n   cleanly release it on unbind. Note that of_clk_get(..., 1) remains\n   necessary over devm_clk_get() because the DT binding does not define\n   clock-names, precluding name-based lookup.\n\n2. Unregistered chained IRQ handler: The chained IRQ handler is not\n   disconnected in remove(). If a stray interrupt fires after the driver\n   is removed, the kernel attempts to execute a stale handler, leading\n   to a panic. Fix this by clearing the handler in remove().\n\n3. IRQ domain leak: The linear IRQ domain and its generic chips are\n   allocated manually during probe but never removed. Remove the IRQ\n   domain during driver teardown to free the associated generic chips\n   and mappings.\n\n[Bartosz: don't emit an error message on devres allocation failure]","Type":"Description","Title":"gpio: rockchip: teardown bugs and resource leaks"}]}}}