CVE-2026-74355 (GCVE-0-2026-74355)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:58 – Updated: 2026-08-17 05:46
VLAI
Title
iommu/vt-d: Fix RB-tree corruption in probe error path
Summary
In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Fix RB-tree corruption in probe error path The info->node RB-tree member is zero-initialized via kzalloc. If a device does not support ATS, the device_rbtree_insert() call is skipped. If a subsequent probe step fails, the error path jumps to device_rbtree_remove(), which misinterprets the zeroed node as a tree root and corrupts the device RB-tree. Fix this by explicitly initializing the RB-node as empty using RB_CLEAR_NODE() during initialization and guarding the removal with RB_EMPTY_NODE().
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 4f1492efb495bcef34c9ee8a94af81e6cea5abf4 , < f5102e0fc3c6dc8685549891a96e4589fdb3e211 (git)
Affected: 4f1492efb495bcef34c9ee8a94af81e6cea5abf4 , < d16923a45d4d08367650fdc3451c89299ab6ac5a (git)
Affected: 4f1492efb495bcef34c9ee8a94af81e6cea5abf4 , < 43bd9e6d5513cb1edbafdeef146a1edc3aaced56 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.15
Unaffected: 0 , < 6.15 (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (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"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f5102e0fc3c6dc8685549891a96e4589fdb3e211",
              "status": "affected",
              "version": "4f1492efb495bcef34c9ee8a94af81e6cea5abf4",
              "versionType": "git"
            },
            {
              "lessThan": "d16923a45d4d08367650fdc3451c89299ab6ac5a",
              "status": "affected",
              "version": "4f1492efb495bcef34c9ee8a94af81e6cea5abf4",
              "versionType": "git"
            },
            {
              "lessThan": "43bd9e6d5513cb1edbafdeef146a1edc3aaced56",
              "status": "affected",
              "version": "4f1492efb495bcef34c9ee8a94af81e6cea5abf4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/iommu/intel/iommu.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.15"
            },
            {
              "lessThan": "6.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Fix RB-tree corruption in probe error path\n\nThe info-\u003enode RB-tree member is zero-initialized via kzalloc. If\na device does not support ATS, the device_rbtree_insert() call is\nskipped. If a subsequent probe step fails, the error path jumps to\ndevice_rbtree_remove(), which misinterprets the zeroed node as\na tree root and corrupts the device RB-tree.\n\nFix this by explicitly initializing the RB-node as empty using\nRB_CLEAR_NODE() during initialization and guarding the removal with\nRB_EMPTY_NODE()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.2,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is hit in intel_iommu_probe_device() during IOMMU device probing on the PCI bus notifier path (BUS_NOTIFY_ADD_DEVICE), which is only reachable via local kernel actions such as PCI hotplug/rescan, SR-IOV VF creation, or driver bind\u2014not via any network protocol.\nAC:L - A privileged attacker can reliably trigger the fault path by inducing PASID table allocation failure (e.g., memory pressure) while adding or reprobing a non-ATS PCI function on a VT-d scalable-mode host where ATS-capable devices may already populate the IOMMU device RB-tree.\nPR:H - Reaching intel_iommu_probe_device() requires adding or reprobing PCI/IOMMU devices through kernel-local administration (CAP_SYS_ADMIN for sysfs rescan/SR-IOV, or equivalent host control); this cannot be done from an unprivileged user or user namespace alone.\nUI:N - Exploitation does not depend on any victim user action beyond the attacker (or administrator) initiating device probe/hotplug; no interactive user steps are required once the privileged trigger is performed.\nS:C - Corrupting the Intel VT-d device RB-tree breaks RID-to-device tracking used for IOMMU page-request and invalidation handling, which can undermine DMA/IOMMU isolation boundaries (e.g., SR-IOV/assigned-device or host DMA containment), not just the probing process itself.\nC:H - Calling rb_erase() on a zero-initialized RB-node can null the tree root and corrupt kernel RB-tree pointers; such kernel memory corruption is exploitable to obtain arbitrary read primitives or leak sensitive kernel data during subsequent lookups.\nI:H - The erroneous rb_erase() performs out-of-tree pointer writes that corrupt IOMMU device tracking structures, providing a kernel memory corruption primitive that can be developed into arbitrary write or code execution.\nA:H - RB-tree corruption in the IOMMU device map can cause kernel oopses/panics during later device_rbtree_find() operations in interrupt-driven VT-d page-request or invalidation-timeout paths, resulting in complete loss of kernel availability."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:46:16.092Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f5102e0fc3c6dc8685549891a96e4589fdb3e211"
        },
        {
          "url": "https://git.kernel.org/stable/c/d16923a45d4d08367650fdc3451c89299ab6ac5a"
        },
        {
          "url": "https://git.kernel.org/stable/c/43bd9e6d5513cb1edbafdeef146a1edc3aaced56"
        }
      ],
      "title": "iommu/vt-d: Fix RB-tree corruption in probe error path",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74355",
    "datePublished": "2026-08-15T05:58:40.766Z",
    "dateReserved": "2026-08-15T05:44:03.887Z",
    "dateUpdated": "2026-08-17T05:46:16.092Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74355",
      "date": "2026-09-23",
      "epss": "0.00132",
      "percentile": "0.03171"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/iommu/intel/iommu.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "f5102e0fc3c6dc8685549891a96e4589fdb3e211",
                    "status": "affected",
                    "version": "4f1492efb495bcef34c9ee8a94af81e6cea5abf4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d16923a45d4d08367650fdc3451c89299ab6ac5a",
                    "status": "affected",
                    "version": "4f1492efb495bcef34c9ee8a94af81e6cea5abf4",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "43bd9e6d5513cb1edbafdeef146a1edc3aaced56",
                    "status": "affected",
                    "version": "4f1492efb495bcef34c9ee8a94af81e6cea5abf4",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/iommu/intel/iommu.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.15"
                  },
                  {
                    "lessThan": "6.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.40",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\niommu/vt-d: Fix RB-tree corruption in probe error path\n\nThe info-\u003enode RB-tree member is zero-initialized via kzalloc. If\na device does not support ATS, the device_rbtree_insert() call is\nskipped. If a subsequent probe step fails, the error path jumps to\ndevice_rbtree_remove(), which misinterprets the zeroed node as\na tree root and corrupts the device RB-tree.\n\nFix this by explicitly initializing the RB-node as empty using\nRB_CLEAR_NODE() during initialization and guarding the removal with\nRB_EMPTY_NODE()."
          }
        ],
        "id": "CVE-2026-74355",
        "lastModified": "2026-08-17T06:19:30.180",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "HIGH",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.5,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T06:22:36.887",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/43bd9e6d5513cb1edbafdeef146a1edc3aaced56"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d16923a45d4d08367650fdc3451c89299ab6ac5a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/f5102e0fc3c6dc8685549891a96e4589fdb3e211"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-19T12:44:39+00:00",
      "cve": "CVE-2026-74355",
      "id": "CVE-2026-74355",
      "initial_release_date": "2026-08-15T00: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: Fix RB-tree corruption in probe error path",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74355.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-03T00:06:54Z",
      "cve": "CVE-2026-74355",
      "id": "CVE-2026-74355",
      "initial_release_date": "2026-09-03T00:06:54Z",
      "product_status:known_not_affected": "362",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74355",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74355.json",
      "version": "2"
    }
  }
}



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…

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…