{"id":"CVE-2025-38408","state":"PUBLISHED","title":"genirq/irq_sim: Initialize work context pointers properly","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ngenirq/irq_sim: Initialize work context pointers properly\n\nInitialize `ops` member's pointers properly by using kzalloc() instead of\nkmalloc() when allocating the simulation work context. Otherwise the\npointers contain random content leading to invalid dereferencing.","publishedAt":"2025-07-25T13:20:13.253Z","updatedAt":"2026-10-15T21:52:15.497Z","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":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"186df821de0f34490ed5fc0861243748b2483861","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"c71aa4bb528ae6f8fd7577a0a39e5a03c60b04fb","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"ec3656a8cb428d763def32bc2fa695f94be23629","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"19bd7597858dd15802c1d99fcc38e528f469080a","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"7f73d1def72532bac4d55ea8838f457a6bed955c","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"8a2277a3c9e4cc5398f80821afe7ecbe9bdf2819","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/irq/irq_sim.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.8","versionType":"semver"},{"version":"5.15.199","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.162","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.37","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.6","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/irq/irq_sim.c"]}],"references":["https://git.kernel.org/stable/c/186df821de0f34490ed5fc0861243748b2483861","https://git.kernel.org/stable/c/c71aa4bb528ae6f8fd7577a0a39e5a03c60b04fb","https://git.kernel.org/stable/c/ec3656a8cb428d763def32bc2fa695f94be23629","https://git.kernel.org/stable/c/19bd7597858dd15802c1d99fcc38e528f469080a","https://git.kernel.org/stable/c/7f73d1def72532bac4d55ea8838f457a6bed955c","https://git.kernel.org/stable/c/8a2277a3c9e4cc5398f80821afe7ecbe9bdf2819"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38408.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38408","state":"PUBLISHED","datePublished":"2025-07-25T13:20:13.253Z","dateUpdated":"2026-10-15T21:52:15.497Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:24.013Z"},"containers":{"cna":{"title":"genirq/irq_sim: Initialize work context pointers properly","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ngenirq/irq_sim: Initialize work context pointers properly\n\nInitialize `ops` member's pointers properly by using kzalloc() instead of\nkmalloc() when allocating the simulation work context. Otherwise the\npointers contain random content leading to invalid dereferencing."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"186df821de0f34490ed5fc0861243748b2483861","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"c71aa4bb528ae6f8fd7577a0a39e5a03c60b04fb","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"ec3656a8cb428d763def32bc2fa695f94be23629","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"19bd7597858dd15802c1d99fcc38e528f469080a","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"7f73d1def72532bac4d55ea8838f457a6bed955c","versionType":"git"},{"version":"337cbeb2c13eb4cab84f576fd402d7ae4ed31ae1","status":"affected","lessThan":"8a2277a3c9e4cc5398f80821afe7ecbe9bdf2819","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/irq/irq_sim.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.8","versionType":"semver"},{"version":"5.15.199","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.162","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.37","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.6","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/irq/irq_sim.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/186df821de0f34490ed5fc0861243748b2483861"},{"url":"https://git.kernel.org/stable/c/c71aa4bb528ae6f8fd7577a0a39e5a03c60b04fb"},{"url":"https://git.kernel.org/stable/c/ec3656a8cb428d763def32bc2fa695f94be23629"},{"url":"https://git.kernel.org/stable/c/19bd7597858dd15802c1d99fcc38e528f469080a"},{"url":"https://git.kernel.org/stable/c/7f73d1def72532bac4d55ea8838f457a6bed955c"},{"url":"https://git.kernel.org/stable/c/8a2277a3c9e4cc5398f80821afe7ecbe9bdf2819"}],"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 vulnerable code is reached through a local ioctl on the GPIO character device (/dev/gpiochipN) exposed by the gpio-mockup simulator, or via the local iio-dummy device; there is no network-facing path to irq_sim.\nAC:L - A single GPIO_V2_GET_LINE_IOCTL with an edge-detect flag deterministically drives request_threaded_irq() into irq_sim_request_resources(), which unconditionally tests and calls the uninitialized ops pointer on every request; the attacker can additionally groom the kmalloc-96 slab to shape the stale contents.\nPR:L - An unprivileged local account with access to the GPIO chardev — routinely granted via the \"gpio\" group udev rule on embedded, IoT and automation systems — can request an edge-triggered line and reach the wild call; no root or capability is required for the triggering ioctl.\nUI:N - The attacker triggers the faulty indirect call entirely through their own ioctl/close sequence; no action by another user or administrator is needed.\nS:U - The uninitialized function-pointer call executes in kernel context on the same host and does not cross a virtualization, IOMMU, or sandbox authority boundary.\nC:H - Branching to an attacker-groomable stale heap value is a direct control-flow hijack primitive that can be leveraged into arbitrary kernel memory disclosure; the call also leaks the state of recycled slab memory into control flow.\nI:H - Calling through an uninitialized function pointer whose backing slab object can be sprayed with attacker-controlled data yields instruction-pointer control and hence arbitrary kernel code execution and memory modification.\nA:H - Even without successful grooming, the indirect branch to stale garbage causes an immediate kernel oops or CFI panic, and it can be triggered repeatedly."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:01:39.572Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"5.15.199"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.1.162"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.6.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.12.37"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.15.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2025-38408","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-15T21:50:08.886538Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T21:52:15.497Z"}}]}}}