GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2025-38216 (GCVE-0-2025-38216)

Vulnerability from cvelistv5 – Published: 2025-07-04 13:37 – Updated: 2026-08-05 12:00
VLAI
Title
iommu/vt-d: Restore context entry setup order for aliased devices
Summary
In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Restore context entry setup order for aliased devices Commit 2031c469f816 ("iommu/vt-d: Add support for static identity domain") changed the context entry setup during domain attachment from a set-and-check policy to a clear-and-reset approach. This inadvertently introduced a regression affecting PCI aliased devices behind PCIe-to-PCI bridges. Specifically, keyboard and touchpad stopped working on several Apple Macbooks with below messages: kernel: platform pxa2xx-spi.3: Adding to iommu group 20 kernel: input: Apple SPI Keyboard as /devices/pci0000:00/0000:00:1e.3/pxa2xx-spi.3/spi_master/spi2/spi-APP000D:00/input/input0 kernel: DMAR: DRHD: handling fault status reg 3 kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr 0xffffa000 [fault reason 0x06] PTE Read access is not set kernel: DMAR: DRHD: handling fault status reg 3 kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr 0xffffa000 [fault reason 0x06] PTE Read access is not set kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00 kernel: DMAR: DRHD: handling fault status reg 3 kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr 0xffffa000 [fault reason 0x06] PTE Read access is not set kernel: DMAR: DRHD: handling fault status reg 3 kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00 Fix this by restoring the previous context setup order.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 2031c469f8161abe74189cb74f50da224f340b71 , < fb5873b779dd5858123c19bbd6959566771e2e83 (git)
Affected: 2031c469f8161abe74189cb74f50da224f340b71 , < d43c81b691813e16a2d08208ce8947aebdab83cd (git)
Affected: 2031c469f8161abe74189cb74f50da224f340b71 , < 320302baed05c6456164652541f23d2a96522c06 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.12
Unaffected: 0 , < 6.12 (semver)
Unaffected: 6.12.35 , ≤ 6.12.* (semver)
Unaffected: 6.15.4 , ≤ 6.15.* (semver)
Unaffected: 6.16 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/iommu/intel/iommu.c",
            "drivers/iommu/intel/iommu.h",
            "drivers/iommu/intel/nested.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "fb5873b779dd5858123c19bbd6959566771e2e83",
              "status": "affected",
              "version": "2031c469f8161abe74189cb74f50da224f340b71",
              "versionType": "git"
            },
            {
              "lessThan": "d43c81b691813e16a2d08208ce8947aebdab83cd",
              "status": "affected",
              "version": "2031c469f8161abe74189cb74f50da224f340b71",
              "versionType": "git"
            },
            {
              "lessThan": "320302baed05c6456164652541f23d2a96522c06",
              "status": "affected",
              "version": "2031c469f8161abe74189cb74f50da224f340b71",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/iommu/intel/iommu.c",
            "drivers/iommu/intel/iommu.h",
            "drivers/iommu/intel/nested.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.12"
            },
            {
              "lessThan": "6.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.35",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.35",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.4",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Restore context entry setup order for aliased devices\n\nCommit 2031c469f816 (\"iommu/vt-d: Add support for static identity domain\")\nchanged the context entry setup during domain attachment from a\nset-and-check policy to a clear-and-reset approach. This inadvertently\nintroduced a regression affecting PCI aliased devices behind PCIe-to-PCI\nbridges.\n\nSpecifically, keyboard and touchpad stopped working on several Apple\nMacbooks with below messages:\n\n kernel: platform pxa2xx-spi.3: Adding to iommu group 20\n kernel: input: Apple SPI Keyboard as\n /devices/pci0000:00/0000:00:1e.3/pxa2xx-spi.3/spi_master/spi2/spi-APP000D:00/input/input0\n kernel: DMAR: DRHD: handling fault status reg 3\n kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr\n 0xffffa000 [fault reason 0x06] PTE Read access is not set\n kernel: DMAR: DRHD: handling fault status reg 3\n kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr\n 0xffffa000 [fault reason 0x06] PTE Read access is not set\n kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00\n kernel: DMAR: DRHD: handling fault status reg 3\n kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr\n 0xffffa000 [fault reason 0x06] PTE Read access is not set\n kernel: DMAR: DRHD: handling fault status reg 3\n kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00\n\nFix this by restoring the previous context setup order."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The faulty ordering is reached through local operations that attach or detach IOMMU domains \u2014 driver bind/unbind, device hotplug/probe, or VFIO/iommufd device assignment ioctls \u2014 not through any network-facing path.\nAC:L - On any platform with DMA-aliased devices (PCIe-to-PCI bridge children, or ACPI-scoped non-PCI devices sharing a parent\u0027s source-ID, which land in a separate IOMMU group via generic_device_group()), the clobber is deterministic and repeatable by simply triggering an attach on the sibling device; no race or unpredictable memory layout is involved.\nPR:L - Driving a domain attach requires only low-privileged local access to the device/VFIO interfaces, and in the device-assignment case the beneficiary is an unprivileged guest whose assigned device\u0027s context entry gets reprogrammed by an unrelated host attach.\nUI:N - No victim action is needed \u2014 the mis-ordered clear-and-reset happens automatically during normal device probe and default-domain attachment.\nS:C - This breaks the IOMMU/DMA isolation boundary itself: a shared context entry ends up programmed with another domain\u0027s page tables or with CONTEXT_TT_PASS_THROUGH, so DMA from one security domain reaches memory belonging to a different one (host memory from a guest-assigned device).\nC:H - A device left with the wrong domain\u0027s second-level page tables \u2014 or with pass-through translation \u2014 can DMA-read memory it was never granted, up to all host physical memory in the passthrough case.\nI:H - The same wrong or pass-through context entry grants DMA writes into another domain\u0027s or the host\u0027s physical memory, which is a direct arbitrary-write primitive usable for control-flow hijack; a stale entry can also point at a torn-down domain\u0027s page tables.\nA:H - The demonstrated effect is a DMAR fault storm and permanently dead devices (keyboard and touchpad stop working, \"DRHD: handling fault status reg 3\" flooding), and DMA through freed or wrong page tables can corrupt kernel memory and panic the system."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:00:25.669Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/fb5873b779dd5858123c19bbd6959566771e2e83"
        },
        {
          "url": "https://git.kernel.org/stable/c/d43c81b691813e16a2d08208ce8947aebdab83cd"
        },
        {
          "url": "https://git.kernel.org/stable/c/320302baed05c6456164652541f23d2a96522c06"
        }
      ],
      "title": "iommu/vt-d: Restore context entry setup order for aliased devices",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38216",
    "datePublished": "2025-07-04T13:37:33.906Z",
    "dateReserved": "2025-04-16T04:51:23.995Z",
    "dateUpdated": "2026-08-05T12:00:25.669Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38216",
      "date": "2026-09-17",
      "epss": "0.0015",
      "percentile": "0.04599"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-38216\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-07-04T14:15:30.103\",\"lastModified\":\"2026-07-30T06:23:00.813\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\niommu/vt-d: Restore context entry setup order for aliased devices\\n\\nCommit 2031c469f816 (\\\"iommu/vt-d: Add support for static identity domain\\\")\\nchanged the context entry setup during domain attachment from a\\nset-and-check policy to a clear-and-reset approach. This inadvertently\\nintroduced a regression affecting PCI aliased devices behind PCIe-to-PCI\\nbridges.\\n\\nSpecifically, keyboard and touchpad stopped working on several Apple\\nMacbooks with below messages:\\n\\n kernel: platform pxa2xx-spi.3: Adding to iommu group 20\\n kernel: input: Apple SPI Keyboard as\\n /devices/pci0000:00/0000:00:1e.3/pxa2xx-spi.3/spi_master/spi2/spi-APP000D:00/input/input0\\n kernel: DMAR: DRHD: handling fault status reg 3\\n kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr\\n 0xffffa000 [fault reason 0x06] PTE Read access is not set\\n kernel: DMAR: DRHD: handling fault status reg 3\\n kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr\\n 0xffffa000 [fault reason 0x06] PTE Read access is not set\\n kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00\\n kernel: DMAR: DRHD: handling fault status reg 3\\n kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr\\n 0xffffa000 [fault reason 0x06] PTE Read access is not set\\n kernel: DMAR: DRHD: handling fault status reg 3\\n kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00\\n\\nFix this by restoring the previous context setup order.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: iommu/vt-d: Restaurar el orden de configuraci\u00f3n de la entrada de contexto para dispositivos con alias. El commit 2031c469f816 (\\\"iommu/vt-d: A\u00f1adir compatibilidad con dominio de identidad est\u00e1tica\\\") cambi\u00f3 la configuraci\u00f3n de la entrada de contexto durante la conexi\u00f3n del dominio, de una pol\u00edtica de \\\"establecer y comprobar\\\" a una de \\\"borrar y restablecer\\\". Esto introdujo inadvertidamente una regresi\u00f3n que afectaba a los dispositivos con alias PCI tras puentes PCIe a PCI. Espec\u00edficamente, el teclado y el panel t\u00e1ctil dejaron de funcionar en varias Apple Macbooks con los siguientes mensajes: kernel: platform pxa2xx-spi.3: Adding to iommu group 20 kernel: input: Apple SPI Keyboard as /devices/pci0000:00/0000:00:1e.3/pxa2xx-spi.3/spi_master/spi2/spi-APP000D:00/input/input0 kernel: DMAR: DRHD: handling fault status reg 3 kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr 0xffffa000 [fault reason 0x06] PTE Read access is not set kernel: DMAR: DRHD: handling fault status reg 3 kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr 0xffffa000 [fault reason 0x06] PTE Read access is not set kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00 kernel: DMAR: DRHD: handling fault status reg 3 kernel: DMAR: [DMA Read NO_PASID] Request device [00:1e.3] fault addr 0xffffa000 [fault reason 0x06] PTE Read access is not set kernel: DMAR: DRHD: handling fault status reg 3 kernel: applespi spi-APP000D:00: Error writing to device: 01 0e 00 00 Solucione esto restaurando el orden de configuraci\u00f3n del contexto anterior.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/iommu/intel/iommu.c\",\"drivers/iommu/intel/iommu.h\",\"drivers/iommu/intel/nested.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"2031c469f8161abe74189cb74f50da224f340b71\",\"lessThan\":\"fb5873b779dd5858123c19bbd6959566771e2e83\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"2031c469f8161abe74189cb74f50da224f340b71\",\"lessThan\":\"d43c81b691813e16a2d08208ce8947aebdab83cd\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"2031c469f8161abe74189cb74f50da224f340b71\",\"lessThan\":\"320302baed05c6456164652541f23d2a96522c06\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/iommu/intel/iommu.c\",\"drivers/iommu/intel/iommu.h\",\"drivers/iommu/intel/nested.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.12\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.35\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15.4\",\"lessThanOrEqual\":\"6.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.16\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H\",\"baseScore\":8.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"CHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.0,\"impactScore\":6.0},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"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\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.12\",\"versionEndExcluding\":\"6.12.35\",\"matchCriteriaId\":\"B9A5A6B0-4B32-4F26-8142-EF867203ADBB\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.15.4\",\"matchCriteriaId\":\"DFD174C5-1AA2-4671-BDDC-1A9FCC753655\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/320302baed05c6456164652541f23d2a96522c06\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/d43c81b691813e16a2d08208ce8947aebdab83cd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fb5873b779dd5858123c19bbd6959566771e2e83\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-07-30T09:09:21+00:00",
      "cve": "CVE-2025-38216",
      "id": "CVE-2025-38216",
      "initial_release_date": "2025-07-04T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: iommu/vt-d: Restore context entry setup order for aliased devices",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38216.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-02T01:16:48Z",
      "cve": "CVE-2025-38216",
      "id": "CVE-2025-38216",
      "initial_release_date": "2025-07-04T23:21:59Z",
      "product_status:first_fixed": "2",
      "product_status:known_affected": "399",
      "product_status:known_not_affected": "460",
      "product_status:recommended": "314",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-38216",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-38216.json",
      "version": "44"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…