CVE-2026-97497 (GCVE-0-2026-97497)

Vulnerability from cvelistv5 – Published: 2026-09-24 16:04 – Updated: 2026-09-25 05:10
VLAI
Title
drm/amdkfd: Check bounds for allocate_sdma_queue restore_sdma_id
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: Check bounds for allocate_sdma_queue restore_sdma_id allocate_sdma_queue has an option where the sdma queue id can be specified (used by CRIU). We weren't bounds-checking that value. Confirm it's less than the maximum number of queues.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 42f2bd50236b61ad0aeb2c233c990ee0d615fdad (git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < dd2870ca036e1d51baa59f942007b36a595b5890 (git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < bfe9a7545b2a7be1c543f1741e16f2d5ec4116ae (git)
Affected: 0 , < 6.12.111 (semver)
Affected: 0 , < 6.18.53 (semver)
guessed Create a notification for this product.
Linux Linux Unaffected: 6.12.111 , ≤ 6.12.* (semver)
Unaffected: 6.18.53 , ≤ 6.18.* (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/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "42f2bd50236b61ad0aeb2c233c990ee0d615fdad",
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "versionType": "git"
            },
            {
              "lessThan": "dd2870ca036e1d51baa59f942007b36a595b5890",
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "versionType": "git"
            },
            {
              "lessThan": "bfe9a7545b2a7be1c543f1741e16f2d5ec4116ae",
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "versionType": "git"
            },
            {
              "lessThan": "6.12.111",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThan": "6.18.53",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "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.12.111",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: Check bounds for allocate_sdma_queue restore_sdma_id\n\nallocate_sdma_queue has an option where the sdma queue id can be\nspecified (used by CRIU). We weren\u0027t bounds-checking that\nvalue.\n\nConfirm it\u0027s less than the maximum number of queues."
        }
      ],
      "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 - The unbounded index is kfd_criu_queue_priv_data.sdma_id, copy_from_user\u0027d in kfd_criu_restore_queue() from AMDKFD_IOC_CRIU_OP KFD_CRIU_OP_RESTORE on /dev/kfd, then passed as restore_sdma_id into allocate_sdma_queue() by create_queue_cpsch()/create_queue_nocpsch(); no network protocol carries that field.\nAC:L - A single crafted KFD_CRIU_OP_RESTORE QUEUE object with type KFD_QUEUE_TYPE_SDMA or KFD_QUEUE_TYPE_SDMA_XGMI and an oversized sdma_id makes allocate_sdma_queue() run test_bit()/clear_bit() on that index; the attacker supplies the whole criu_restore() blob, so no race or victim-owned GPU state is required.\nPR:L - kfd_ioctl() admits AMDKFD_IOC_CRIU_OP only when capable(CAP_CHECKPOINT_RESTORE) or capable(CAP_SYS_ADMIN). CAP_CHECKPOINT_RESTORE is the delegated non-root capability already held by CRIU tooling and container checkpoint services, matching limited local privilege rather than init-namespace root.\nUI:N - The attacker opens their own /dev/kfd (kfd_open -\u003e kfd_init_apertures creates PDDs) and issues KFD_CRIU_OP_RESTORE against that process; no other user must mount media, open a file, or interact.\nS:U - allocate_sdma_queue()\u0027s OOB test_bit()/clear_bit() on the kzalloc\u0027d device_queue_manager sdma_bitmap corrupts host kernel slab inside amdkfd. That stays in the same kernel authority; it is not a KVM/Xen guest-to-host escape or an IOMMU/DMA bypass.\nC:H - restore_sdma_id is a user uint32_t used as the bit index into a KFD_MAX_SDMA_QUEUES (128-bit) dqm-\u003esdma_bitmap. test_bit() of an out-of-range index is an unbounded kernel-bit read (the ioctl returns -EBUSY iff the bit is clear), which is not a few-byte leak.\nI:H - When that out-of-range bit is set, allocate_sdma_queue() does clear_bit(*restore_sdma_id, dqm-\u003esdma_bitmap), a one-bit write at an attacker-chosen offset past the 128-bit map into later dqm fields (fence_addr, hung_db_array) or adjacent kmalloc objects, an OOB write.\nA:H - test_bit()/clear_bit() of a restore_sdma_id whose bitmap word is unmapped oopses inside allocate_sdma_queue(); the same OOB clear can smash dqm pointers and flags and panic the host."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T05:10:52.529Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/42f2bd50236b61ad0aeb2c233c990ee0d615fdad"
        },
        {
          "url": "https://git.kernel.org/stable/c/dd2870ca036e1d51baa59f942007b36a595b5890"
        },
        {
          "url": "https://git.kernel.org/stable/c/bfe9a7545b2a7be1c543f1741e16f2d5ec4116ae"
        }
      ],
      "title": "drm/amdkfd: Check bounds for allocate_sdma_queue restore_sdma_id",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97497",
    "datePublished": "2026-09-24T16:04:44.515Z",
    "dateReserved": "2026-09-24T16:01:01.150Z",
    "dateUpdated": "2026-09-25T05:10:52.529Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-97497",
      "date": "2026-09-25",
      "epss": "0.00127",
      "percentile": "0.02007"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "42f2bd50236b61ad0aeb2c233c990ee0d615fdad",
                    "status": "affected",
                    "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "dd2870ca036e1d51baa59f942007b36a595b5890",
                    "status": "affected",
                    "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "bfe9a7545b2a7be1c543f1741e16f2d5ec4116ae",
                    "status": "affected",
                    "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6.12.111",
                    "status": "affected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.18.53",
                    "status": "affected",
                    "version": "0",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.111",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.53",
                    "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\ndrm/amdkfd: Check bounds for allocate_sdma_queue restore_sdma_id\n\nallocate_sdma_queue has an option where the sdma queue id can be\nspecified (used by CRIU). We weren\u0027t bounds-checking that\nvalue.\n\nConfirm it\u0027s less than the maximum number of queues."
          }
        ],
        "id": "CVE-2026-97497",
        "lastModified": "2026-09-25T05:17:07.180",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-24T17:17:27.410",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/42f2bd50236b61ad0aeb2c233c990ee0d615fdad"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/bfe9a7545b2a7be1c543f1741e16f2d5ec4116ae"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/dd2870ca036e1d51baa59f942007b36a595b5890"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…