CVE-2026-74721 (GCVE-0-2026-74721)

Vulnerability from cvelistv5 – Published: 2026-08-22 15:33 – Updated: 2026-08-25 05:42
VLAI
Title
accel/amxdna: Fix page-insertion errors in amdxdna_insert_pages()
Summary
In the Linux kernel, the following vulnerability has been resolved: accel/amxdna: Fix page-insertion errors in amdxdna_insert_pages() Two error paths in amdxdna_insert_pages() called vma->vm_ops->close(vma) before returning an error code to the caller. This is incorrect: amdxdna_gem_obj_mmap() registers an HMM interval notifier before calling amdxdna_insert_pages(), and on a hard error it jumps to hmm_unreg to undo that registration. Calling vm_ops->close() manually — which drops the shmem pages_pin_count and the GEM object reference that backs the VMA — before the mmap syscall has even returned causes those resources to be released while the VMA is still alive. The kernel VMA teardown will call vm_ops->close() a second time when the process later unmaps the range, producing a reference count underflow. Replace both hard-error returns with a deferred-fault approach that keeps the VMA alive and retries page insertion through the HMM range-fault path.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e486147c912f653ef4b60a6c7dbd4168a4c56a9f , < 1501e4d07c6fee0d50531a0d1cb2be01a63e6e75 (git)
Affected: e486147c912f653ef4b60a6c7dbd4168a4c56a9f , < 8d51e0fd3e698919d2adeff71936377f0c0d4aa0 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.16
Unaffected: 0 , < 6.16 (semver)
Unaffected: 7.1.9 , ≤ 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/accel/amdxdna/amdxdna_gem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1501e4d07c6fee0d50531a0d1cb2be01a63e6e75",
              "status": "affected",
              "version": "e486147c912f653ef4b60a6c7dbd4168a4c56a9f",
              "versionType": "git"
            },
            {
              "lessThan": "8d51e0fd3e698919d2adeff71936377f0c0d4aa0",
              "status": "affected",
              "version": "e486147c912f653ef4b60a6c7dbd4168a4c56a9f",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/accel/amdxdna/amdxdna_gem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.16"
            },
            {
              "lessThan": "6.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.9",
              "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": "7.1.9",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\naccel/amxdna: Fix page-insertion errors in amdxdna_insert_pages()\n\nTwo error paths in amdxdna_insert_pages() called vma-\u003evm_ops-\u003eclose(vma)\nbefore returning an error code to the caller.  This is incorrect:\namdxdna_gem_obj_mmap() registers an HMM interval notifier before calling\namdxdna_insert_pages(), and on a hard error it jumps to hmm_unreg to undo\nthat registration.  Calling vm_ops-\u003eclose() manually \u2014 which drops the\nshmem pages_pin_count and the GEM object reference that backs the VMA \u2014\nbefore the mmap syscall has even returned causes those resources to be\nreleased while the VMA is still alive.  The kernel VMA teardown will call\nvm_ops-\u003eclose() a second time when the process later unmaps the range,\nproducing a reference count underflow.\n\nReplace both hard-error returns with a deferred-fault approach that keeps\nthe VMA alive and retries page insertion through the HMM range-fault path."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Exploitation requires a local mmap() on an AMD XDNA GEM buffer through /dev/accel/accel* after DRM_IOCTL_AMDXDNA_CREATE_BO; amdxdna_insert_pages() is only reached from drm_gem_mmap\u2192amdxdna_gem_obj_mmap with no network, adjacent-radio, or physical-bus entry point.\nAC:L - On affected Ryzen AI systems the attacker opens the accel node, creates a buffer, and mmap()s it; vm_insert_pages() or handle_mm_fault() failures are reliably forced via RLIMIT_AS/cgroup memory pressure, deterministically hitting vma-\u003evm_ops-\u003eclose() before failed-mmap VMA teardown invokes close again.\nPR:L - AMDXDNA_CREATE_BO and GEM mmap use ioctl flags 0 (no DRM_ROOT_ONLY/DRM_AUTH); any unprivileged local user allowed to open /dev/accel/accel* (typically render/video group) can reach the bug without real root or init-namespace capabilities.\nUI:N - The attacker opens the accel device, allocates a GEM object, and mmap()s it in their own process; no separate victim mount, file open, or other user interaction beyond the attacker\u0027s own syscalls is required.\nS:U - Premature vma-\u003evm_ops-\u003eclose() double-frees shmem pages_use_count and drm_gem_object references inside kernel DRM/GEM memory management; impact stays within the kernel security authority and is not a VM escape, hypervisor breakout, or IOMMU DMA-boundary bypass.\nC:H - Double close releases backing shmem pages and GEM metadata while the VMA remains live until mmap teardown; refcount underflow creates use-after-free conditions that heap grooming can turn into arbitrary kernel memory disclosure beyond a bounded leak.\nI:H - The erroneous second close corrupts slab/refcount state on freed GEM objects and backing pages, providing primitives developable into arbitrary kernel writes and local privilege escalation rather than merely limited data modification.\nA:H - refcount_t underflow and use-after-free in drm_gem_shmem_vm_close() and drm_gem_object_put() can immediately kernel-oops or panic the host; repeated mmap-trigger attempts sustain denial of service on affected AMD NPU systems."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-25T05:42:02.244Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1501e4d07c6fee0d50531a0d1cb2be01a63e6e75"
        },
        {
          "url": "https://git.kernel.org/stable/c/8d51e0fd3e698919d2adeff71936377f0c0d4aa0"
        }
      ],
      "title": "accel/amxdna: Fix page-insertion errors in amdxdna_insert_pages()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74721",
    "datePublished": "2026-08-22T15:33:13.960Z",
    "dateReserved": "2026-08-15T05:44:03.929Z",
    "dateUpdated": "2026-08-25T05:42:02.244Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74721",
      "date": "2026-09-01",
      "epss": "0.0012",
      "percentile": "0.02077"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-74721\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-22T16:16:47.080\",\"lastModified\":\"2026-08-25T06:18:57.913\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\naccel/amxdna: Fix page-insertion errors in amdxdna_insert_pages()\\n\\nTwo error paths in amdxdna_insert_pages() called vma-\u003evm_ops-\u003eclose(vma)\\nbefore returning an error code to the caller.  This is incorrect:\\namdxdna_gem_obj_mmap() registers an HMM interval notifier before calling\\namdxdna_insert_pages(), and on a hard error it jumps to hmm_unreg to undo\\nthat registration.  Calling vm_ops-\u003eclose() manually \u2014 which drops the\\nshmem pages_pin_count and the GEM object reference that backs the VMA \u2014\\nbefore the mmap syscall has even returned causes those resources to be\\nreleased while the VMA is still alive.  The kernel VMA teardown will call\\nvm_ops-\u003eclose() a second time when the process later unmaps the range,\\nproducing a reference count underflow.\\n\\nReplace both hard-error returns with a deferred-fault approach that keeps\\nthe VMA alive and retries page insertion through the HMM range-fault path.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/accel/amdxdna/amdxdna_gem.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e486147c912f653ef4b60a6c7dbd4168a4c56a9f\",\"lessThan\":\"1501e4d07c6fee0d50531a0d1cb2be01a63e6e75\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e486147c912f653ef4b60a6c7dbd4168a4c56a9f\",\"lessThan\":\"8d51e0fd3e698919d2adeff71936377f0c0d4aa0\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/accel/amdxdna/amdxdna_gem.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.16\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.16\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.9\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"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: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}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1501e4d07c6fee0d50531a0d1cb2be01a63e6e75\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8d51e0fd3e698919d2adeff71936377f0c0d4aa0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-25T08:55:59+00:00",
      "cve": "CVE-2026-74721",
      "id": "CVE-2026-74721",
      "initial_release_date": "2026-08-22T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: accel/amxdna: Fix page-insertion errors in amdxdna_insert_pages()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74721.json",
      "version": "3"
    }
  }
}



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…

Loading…