{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-26810","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-02-19T14:20:24.179Z","datePublished":"2024-04-05T08:24:41.987Z","dateUpdated":"2026-08-05T11:27:29.182Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:27:29.182Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nvfio/pci: Lock external INTx masking ops\n\nMask operations through config space changes to DisINTx may race INTx\nconfiguration changes via ioctl.  Create wrappers that add locking for\npaths outside of the core interrupt code.\n\nIn particular, irq_type is updated holding igate, therefore testing\nis_intx() requires holding igate.  For example clearing DisINTx from\nconfig space can otherwise race changes of the interrupt configuration.\n\nThis aligns interfaces which may trigger the INTx eventfd into two\ncamps, one side serialized by igate and the other only enabled while\nINTx is configured.  A subsequent patch introduces synchronization for\nthe latter flows."}],"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 race is driven entirely through `pwrite()` on the VFIO device fd's config region and the `VFIO_DEVICE_SET_IRQS` ioctl on the same fd, both requiring local access to `/dev/vfio/*`. There is no network-reachable path to `vfio_pci_intx_mask()`/`vfio_pci_intx_unmask()`.\nAC:L - The attacker owns both sides of the race — one thread loops on DisINTx config writes while another loops on SET_IRQS enable/disable on the same fd — and can retry indefinitely in preemptible process context on separate cores. `CONFIG_VFIO_PCI_INTX` is `def_bool y if !S390` and INTx is the default vfio-pci interrupt mode, so no unusual configuration is needed.\nPR:L - Only an open VFIO device fd is required; IOMMU-backed VFIO enforces no capability check at all (`CAP_SYS_RAWIO` gates only no-IOMMU mode, `CAP_IPC_LOCK` only mlock accounting), and `/dev/vfio/*` is routinely granted to unprivileged users running QEMU, DPDK/SPDK, or device-mapped containers. No root or `CAP_SYS_ADMIN` is needed.\nUI:N - The attacking process performs every step itself — spawning two threads that concurrently write DisINTx and issue SET_IRQS on its own file descriptor. No victim action of any kind is involved.\nS:U - Both the vulnerable code and the corrupted memory reside in the host kernel, and the bug is a missing mutex rather than an IOMMU/DMA boundary bypass. This is standard local user-to-kernel privilege escalation within a single security authority.\nC:H - The freed `vfio_pci_irq_ctx` is read after `kfree()`, including its `trigger` pointer which is then dereferenced by `eventfd_signal()`; regrooming the `kmalloc-cg-64` slab turns this into an attacker-controlled pointer read. Per UAF guidance this yields arbitrary kernel memory disclosure.\nI:H - `ctx->masked = (ret > 0)` writes into the already-freed slab object, and `eventfd_signal()` on a groomed stale pointer performs `ctx->count += n` plus `wake_up_locked_poll()`, walking an attacker-shaped wait queue and invoking `curr->func()` — an arbitrary function call giving control-flow hijack.\nA:H - The use-after-free on both `vfio_pci_irq_ctx` and `eventfd_ctx` readily oopses the kernel, and `enable_irq()` racing `free_irq()` produces unbalanced-enable `WARN`s and IRQ disable-depth corruption that can wedge a shared INTx line for other devices."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/vfio/pci/vfio_pci_intrs.c"],"versions":[{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"1e71b6449d55179170efc8dee8664510bb813b42","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"3dd9be6cb55e0f47544e7cdda486413f7134e3b3","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"ec73e079729258a05452356cf6d098bf1504d5a6","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"3fe0ac10bd117df847c93408a9d428a453cd60e5","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"04a4a017b9ffd7b0f427b8c376688d14cb614651","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"6fe478d855b20ac1eb5da724afe16af5a2aaaa40","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"03505e3344b0576fd619416793a31eae9c5b73bf","status":"affected","versionType":"git"},{"version":"89e1f7d4c66d85f42c3d52ea3866eb10cadf6153","lessThan":"810cd4bb53456d0503cc4e7934e063835152c1b7","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/vfio/pci/vfio_pci_intrs.c"],"versions":[{"version":"3.6","status":"affected"},{"version":"0","lessThan":"3.6","status":"unaffected","versionType":"semver"},{"version":"5.4.274","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.215","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.154","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.84","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.24","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.7.12","lessThanOrEqual":"6.7.*","status":"unaffected","versionType":"semver"},{"version":"6.8.3","lessThanOrEqual":"6.8.*","status":"unaffected","versionType":"semver"},{"version":"6.9","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":"3.6","versionEndExcluding":"5.4.274"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"5.10.215"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"5.15.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.1.84"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.6.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.7.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.8.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.9"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/1e71b6449d55179170efc8dee8664510bb813b42"},{"url":"https://git.kernel.org/stable/c/3dd9be6cb55e0f47544e7cdda486413f7134e3b3"},{"url":"https://git.kernel.org/stable/c/ec73e079729258a05452356cf6d098bf1504d5a6"},{"url":"https://git.kernel.org/stable/c/3fe0ac10bd117df847c93408a9d428a453cd60e5"},{"url":"https://git.kernel.org/stable/c/04a4a017b9ffd7b0f427b8c376688d14cb614651"},{"url":"https://git.kernel.org/stable/c/6fe478d855b20ac1eb5da724afe16af5a2aaaa40"},{"url":"https://git.kernel.org/stable/c/03505e3344b0576fd619416793a31eae9c5b73bf"},{"url":"https://git.kernel.org/stable/c/810cd4bb53456d0503cc4e7934e063835152c1b7"}],"title":"vfio/pci: Lock external INTx masking ops","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"problemTypes":[{"descriptions":[{"type":"CWE","lang":"en","description":"CWE-noinfo Not enough information"}]}],"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":4.4,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"HIGH","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2024-04-05T17:23:22.081964Z","id":"CVE-2024-26810","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-11-06T20:03:53.512Z"}},{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T00:14:13.648Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/1e71b6449d55179170efc8dee8664510bb813b42","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3dd9be6cb55e0f47544e7cdda486413f7134e3b3","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/ec73e079729258a05452356cf6d098bf1504d5a6","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3fe0ac10bd117df847c93408a9d428a453cd60e5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/04a4a017b9ffd7b0f427b8c376688d14cb614651","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/6fe478d855b20ac1eb5da724afe16af5a2aaaa40","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/03505e3344b0576fd619416793a31eae9c5b73bf","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/810cd4bb53456d0503cc4e7934e063835152c1b7","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]}]},{"x_adpType":"supplier","providerMetadata":{"orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","shortName":"siemens-SADP","dateUpdated":"2026-05-12T11:49:27.967Z"},"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","versions":[{"status":"affected","version":"0","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"}]}]},"dataVersion":"5.2"}