{"id":"CVE-2026-90426","summary":"iommu/tegra241-cmdqv: Free the error IRQ before tearing down VINTFs","details":"In the Linux kernel, the following vulnerability has been resolved:\n\niommu/tegra241-cmdqv: Free the error IRQ before tearing down VINTFs\n\ntegra241_cmdqv_remove() tears each VINTF down first, then calls free_irq().\nTearing a VINTF down frees vintf0 and clears cmdqv-\u003evintfs[0]. An error in\nthat window makes tegra241_cmdqv_isr() read the stale slot and hand it to\ntegra241_vintf0_handle_error(), which dereferences a NULL or freed pointer.\n\nFree the IRQ before tearing the VINTFs down. free_irq() waits for in-flight\nhandlers to finish and blocks new ones, so no ISR can observe a VINTF as it\nis torn down.\n\nNote: a user-owned VINTF (viommu) could outlive this teardown, which unmaps\ncmdqv-\u003ebase and frees cmdqv-\u003evintfs, so a later viommu close then touches\nfreed memory. This is neither introduced nor fixed here: a physical IOMMU\nis not a pluggable device, so iommufd by design holds no reference on the\none behind a viommu, and this teardown is not expected while that viommu is\nstill alive.","modified":"2026-09-19T03:47:26.216188548Z","published":"2026-09-17T16:09:48.460Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90426.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/076a4f5b1fc2016b973a12bc2ebb9b730e5e1e48"},{"type":"WEB","url":"https://git.kernel.org/stable/c/421f5ab135cd4a1353891e5bf2602cfc3c01afc7"},{"type":"WEB","url":"https://git.kernel.org/stable/c/61f0d437988e5730b04442f6a7d30a9907339f2a"},{"type":"WEB","url":"https://git.kernel.org/stable/c/735698e81f798b4c02dcb6291ffbdd1b962c8c66"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90426.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-90426"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"918eb5c856f6ce4cf93b4b38e4b5e156905c5943"},{"fixed":"076a4f5b1fc2016b973a12bc2ebb9b730e5e1e48"},{"fixed":"735698e81f798b4c02dcb6291ffbdd1b962c8c66"},{"fixed":"421f5ab135cd4a1353891e5bf2602cfc3c01afc7"},{"fixed":"61f0d437988e5730b04442f6a7d30a9907339f2a"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90426.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.12.0"},{"fixed":"6.12.110"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.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-90426.json"}}],"schema_version":"1.9.0"}