{"id":"CVE-2024-53165","state":"PUBLISHED","title":"sh: intc: Fix use-after-free bug in register_intc_controller()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsh: intc: Fix use-after-free bug in register_intc_controller()\n\nIn the error handling for this function, d is freed without ever\nremoving it from intc_list which would lead to a use after free.\nTo fix this, let's only add it to the list after everything has\nsucceeded.","publishedAt":"2024-12-27T13:49:11.401Z","updatedAt":"2026-10-15T00:58:59.127Z","severity":{"score":7.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:H/PR:N/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":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"3c7c806b3eafd94ae0f77305a174d63b69ec187c","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"d8de818df12d86a1a26a8efd7b4b3b9c6dc3c5cc","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"971b4893457788e0e123ea552f0bb126a5300e61","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"c3f4f4547fb291982f5ef56c048277c4d5ccc4e4","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"c43df7dae28fb9fce96ef088250c1e3c3a77c527","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"b8b84dcdf3ab1d414304819f824b10efba64132c","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"6ba6e19912570b2ad68298be0be1dc779014a303","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"588bdec1ff8b81517dbae0ae51c9df52c0b952d3","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"63e72e551942642c48456a4134975136cdcb9b3c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/sh/intc/core.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"4.19.325","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.287","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.231","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.174","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.120","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.64","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.11","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12.2","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/sh/intc/core.c"]}],"references":["https://git.kernel.org/stable/c/3c7c806b3eafd94ae0f77305a174d63b69ec187c","https://git.kernel.org/stable/c/d8de818df12d86a1a26a8efd7b4b3b9c6dc3c5cc","https://git.kernel.org/stable/c/971b4893457788e0e123ea552f0bb126a5300e61","https://git.kernel.org/stable/c/c3f4f4547fb291982f5ef56c048277c4d5ccc4e4","https://git.kernel.org/stable/c/c43df7dae28fb9fce96ef088250c1e3c3a77c527","https://git.kernel.org/stable/c/b8b84dcdf3ab1d414304819f824b10efba64132c","https://git.kernel.org/stable/c/6ba6e19912570b2ad68298be0be1dc779014a303","https://git.kernel.org/stable/c/588bdec1ff8b81517dbae0ae51c9df52c0b952d3","https://git.kernel.org/stable/c/63e72e551942642c48456a4134975136cdcb9b3c","https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html","https://cert-portal.siemens.com/productcert/html/ssa-398330.html","https://cert-portal.siemens.com/productcert/html/ssa-355557.html"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T20:08:04.920Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/53xxx/CVE-2024-53165.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-53165","state":"PUBLISHED","datePublished":"2024-12-27T13:49:11.401Z","dateUpdated":"2026-10-15T00:58:59.127Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-11-19T17:17:25.004Z"},"containers":{"cna":{"title":"sh: intc: Fix use-after-free bug in register_intc_controller()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsh: intc: Fix use-after-free bug in register_intc_controller()\n\nIn the error handling for this function, d is freed without ever\nremoving it from intc_list which would lead to a use after free.\nTo fix this, let's only add it to the list after everything has\nsucceeded."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"3c7c806b3eafd94ae0f77305a174d63b69ec187c","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"d8de818df12d86a1a26a8efd7b4b3b9c6dc3c5cc","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"971b4893457788e0e123ea552f0bb126a5300e61","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"c3f4f4547fb291982f5ef56c048277c4d5ccc4e4","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"c43df7dae28fb9fce96ef088250c1e3c3a77c527","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"b8b84dcdf3ab1d414304819f824b10efba64132c","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"6ba6e19912570b2ad68298be0be1dc779014a303","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"588bdec1ff8b81517dbae0ae51c9df52c0b952d3","versionType":"git"},{"version":"2dcec7a988a1895540460a0bf5603bab63d5a3ed","status":"affected","lessThan":"63e72e551942642c48456a4134975136cdcb9b3c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/sh/intc/core.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"4.19.325","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.287","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.231","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.174","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.120","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.64","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.11","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12.2","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/sh/intc/core.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/3c7c806b3eafd94ae0f77305a174d63b69ec187c"},{"url":"https://git.kernel.org/stable/c/d8de818df12d86a1a26a8efd7b4b3b9c6dc3c5cc"},{"url":"https://git.kernel.org/stable/c/971b4893457788e0e123ea552f0bb126a5300e61"},{"url":"https://git.kernel.org/stable/c/c3f4f4547fb291982f5ef56c048277c4d5ccc4e4"},{"url":"https://git.kernel.org/stable/c/c43df7dae28fb9fce96ef088250c1e3c3a77c527"},{"url":"https://git.kernel.org/stable/c/b8b84dcdf3ab1d414304819f824b10efba64132c"},{"url":"https://git.kernel.org/stable/c/6ba6e19912570b2ad68298be0be1dc779014a303"},{"url":"https://git.kernel.org/stable/c/588bdec1ff8b81517dbae0ae51c9df52c0b952d3"},{"url":"https://git.kernel.org/stable/c/63e72e551942642c48456a4134975136cdcb9b3c"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":7.4,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - `register_intc_controller()` is SuperH platform interrupt-controller boot code with no network, packet, or remote-peer input; the only user-visible surface tied to the freed object is the local sysfs attribute `/sys/devices/system/intc/intc.N/name` and local suspend/resume activity, so exposure is confined to the local system.\nAC:H - The dangling list entry is created only when a `GFP_NOWAIT`/`kcalloc` allocation or `ioremap()` fails inside an `__init` function during early boot, before userspace exists, so the triggering memory-pressure condition is entirely outside any attacker's influence, and it additionally requires SuperH hardware with `CONFIG_SH_INTC`.\nPR:N - No privileges or credentials are involved at any point — the freed `intc_desc_int` is dereferenced by the kernel itself at `device_initcall` time (`register_intc_devs()`) long before any login, and the resulting sysfs `name` attribute that reads the freed object is world-readable (`S_IRUGO`).\nUI:N - Once the error path executes, the stale list entry is dereferenced automatically during the remainder of boot and on every subsequent suspend/resume cycle; no victim action is needed.\nS:U - The use-after-free is confined to kernel heap objects managed by the SH interrupt-controller driver; no VM, IOMMU, or other security-authority boundary is crossed.\nC:H - The freed `intc_desc_int` is read back after release — `show_intc_name()` dereferences `d->chip.name` from freed slab memory through a world-readable sysfs file, and list traversal reads `d->list.next` out of reallocated memory, so reclaimed heap contents can be disclosed.\nI:H - `register_intc_devs()` performs `device_register(&d->dev)` on the freed object, writing kobject/device state into reclaimed slab memory and linking it into driver-core lists, which is a write primitive into attacker-influenceable reused heap; per UAF guidance this is High.\nA:H - Traversing `intc_list` through a freed `list_head` follows a stale/overwritten `next` pointer into arbitrary memory, producing an oops or panic, and it corrupts the suspend/resume syscore paths for the interrupt controller."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:44:13.387Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"4.19.325"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.4.287"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.10.231"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.15.174"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.1.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.6.64"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.11.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.12.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.13"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.8,"attackVector":"LOCAL","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"id":"CVE-2024-53165","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2025-02-11T15:43:49.696195Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","lang":"en","type":"CWE","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-02-11T15:45:27.366Z"}},{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T20:46:56.971Z"}},{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"RUGGEDCOM RST2428P","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V3.2","versionType":"custom"}]},{"vendor":"Siemens","product":"SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V3.2","versionType":"custom"}]},{"vendor":"Siemens","product":"SCALANCE XCM-/XRM-/XCH-/XRH-300 family","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V3.2","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-398330.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-355557.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T00:58:59.127Z"},"x_adpType":"supplier"}]}}}