← Back to CVE Explorer

CVE-2026-97946

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: x86/amd_node: Fix PCI device reference counting in amd_smn_init() The local "root" pointer is a temporary variable used during the device search. Therefore, refcount related to the search iterators should be cleaned up after the search is complete. Use the __free() cleanup macro to ensure the refcount is decremented when the temporary pointer goes out of scope. Additionally, increment the refcount when caching a root pointer. This ensures the in-use refcount is separate from the temporary search refcounting. Finally, drop the redundant "root = NULL" before the second search loop. The pci_get_class() iterator always decrements the refcount of its "from" argument, so the first loop can only fall through with "root" already NULL.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-25 11:17:22.110000
Last modified
2026-10-19 10:17:45.850000
View original CVE JSON
{
  "id": "CVE-2026-97946",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-25T11:17:22.110",
  "lastModified": "2026-10-19T10:17:45.850",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/amd_node: Fix PCI device reference counting in amd_smn_init()\n\nThe local \"root\" pointer is a temporary variable used during the device\nsearch. Therefore, refcount related to the search iterators should be cleaned\nup after the search is complete.\n\nUse the __free() cleanup macro to ensure the refcount is decremented when the\ntemporary pointer goes out of scope.\n\nAdditionally, increment the refcount when caching a root pointer. This ensures\nthe in-use refcount is separate from the temporary search refcounting.\n\nFinally, drop the redundant \"root = NULL\" before the second search loop. The\npci_get_class() iterator always decrements the refcount of its \"from\"\nargument, so the first loop can only fall through with \"root\" already NULL."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "arch/x86/kernel/amd_node.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "0a4b61d9c2e496b5f0a10e29e355a1465c8738bb",
              "lessThan": "84e3a71d11d8593c127b468d75b2653af5074f81",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "0a4b61d9c2e496b5f0a10e29e355a1465c8738bb",
              "lessThan": "aa2a4277ad42fd8f918c6dc652473946a253f7b0",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "0a4b61d9c2e496b5f0a10e29e355a1465c8738bb",
              "lessThan": "27600805e62f800bacf990354632eae4e487d34c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c4ad899a33198ab6335732c769835d035e66894a",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6.17.8",
              "lessThan": "6.18",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "arch/x86/kernel/amd_node.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.18",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.18",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.53",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.7",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/27600805e62f800bacf990354632eae4e487d34c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/84e3a71d11d8593c127b468d75b2653af5074f81",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/aa2a4277ad42fd8f918c6dc652473946a253f7b0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}