CVE-2026-90241

iommu/vt-d: Tear down scalable-mode context on probe failure

State
Published
Severity
8.2 High
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

iommu/vt-d: Tear down scalable-mode context on probe failure

intel_pasid_setup_sm_context() walks a PCI device’s DMA aliases via pci_for_each_dma_alias() and programs a scalable-mode context entry for each RID. For a device with a dma_alias_mask, the callback is invoked once for the device’s own RID and once for each alias bit, all with the same pci_dev, so device_pasid_table_setup() runs for multiple RIDs.

pci_for_each_dma_alias() stops at the first callback error. Therefore, a failure partway through the walk can leave context entries for already processed RIDs present and still pointing to the device’s PASID table.

On this error path, intel_iommu_probe_device() currently jumps directly to intel_pasid_free_table(), which frees the PASID table without first tearing down those context entries. The IOMMU may then walk a present context entry whose PASID table pointer references freed memory.

intel_iommu_release_device() already performs teardown before freeing the table. Apply the same ordering on the probe failure path.

device_pasid_table_teardown() safely handles RIDs that were never programmed: iommu_context_addr() returns NULL when no context table has been allocated, and clearing the Present bit of an already non-present entry is a no-op. So unwind is safe for both the alias that failed and any aliases not yet reached.

Scores

CVSSScoreVectorSource
3.18.2 HighCVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 301f1a80487fd2f51012533792583d4425e8b8c0 to before 25ac85a9747cd63e1d166ace7b360a2cd9479d9dAffected
  • 301f1a80487fd2f51012533792583d4425e8b8c0 to before d0e978ced7429b516358bb4d41d337214768ae98Affected
  • 301f1a80487fd2f51012533792583d4425e8b8c0 to before db5daf25f754cdc20c18525adb88240ece6fdee9Affected
  • 301f1a80487fd2f51012533792583d4425e8b8c0 to before c509fb73a1093a15accd7d43a61645d4b520f6acAffected
LinuxLinux
  • 6.9Affected
  • before 6.9Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.