{"id":"CVE-2026-90240","summary":"iommu/vt-d: Flush context cache with correct SID when tearing down aliases","details":"In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Flush context cache with correct SID when tearing down aliases\n\ndomain_context_clear_one() and device_pasid_table_teardown() are both\ninvoked once per DMA alias of a device. Each function locates the context\nentry using the bus/devfn pair provided by the pci_for_each_dma_alias()\ncallback, then calls intel_context_flush_no_pasid(), which constructs a\ndevice-selective context-cache invalidation from info-\u003ebus and\ninfo-\u003edevfn (that is, always the requester ID of the device itself).\n\nAs a result, for every alias other than the device’s own RID, the context\nentry that was just cleared in memory is never invalidated in the context\ncache. Hardware may continue using that stale cached entry. In the\nscalable-mode teardown path, intel_pasid_free_table() can then free the\nPASID directory still referenced by that stale entry, allowing the IOMMU\nto walk freed memory.\n\nFix this by passing the source ID of the entry being torn down to\nintel_context_flush_no_pasid(), instead of deriving it from @info.","modified":"2026-09-18T03:48:36.404433726Z","published":"2026-09-17T16:07:44.445Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90240.json"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/5baddf100b3be730912485648cbaae5e3a251923"},{"type":"WEB","url":"https://git.kernel.org/stable/c/a803141597d61dc0511f7cd849625e17d042ca8a"},{"type":"WEB","url":"https://git.kernel.org/stable/c/c54e4ae971b98e8d650400137d332cee56c03f55"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90240.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-90240"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"f90584f4beb84211c4d21b319cc13f391fe9f3c2"},{"fixed":"a803141597d61dc0511f7cd849625e17d042ca8a"},{"fixed":"5baddf100b3be730912485648cbaae5e3a251923"},{"fixed":"c54e4ae971b98e8d650400137d332cee56c03f55"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90240.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.11.0"},{"fixed":"6.18.52"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.6"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90240.json"}}],"schema_version":"1.9.0"}