← Back to CVE Explorer

CVE-2026-98780

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: fix IP instance memory leak on kobject add failure amdgpu_discovery_sysfs_ips() allocates ip_hw_instance with kzalloc_flex() and initializes its embedded kobject before calling kobject_add(). If kobject_add() fails, the return value is ignored and execution continues without dropping the initial kobject reference. The failed kobject is not retained in the kset list, so the normal sysfs teardown path cannot find it. As a result, ip_hw_instance_release() is never called and the ip_hw_instance allocation is leaked. Call kobject_put() when kobject_add() fails so the initial reference is dropped and ip_hw_instance_release() can free the allocation. Keep the existing best-effort sysfs behavior by continuing with the remaining IP entries after the failed registration. The issue was identified by a static analysis tool I developed and confirmed by manual review. (cherry picked from commit 5c75fbcca8af1096d8d9415b91d8ea6212c22ee1)

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-18 16:17:31.960000
Last modified
2026-10-30 13:21:27.643000
View original CVE JSON
{
  "id": "CVE-2026-98780",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-18T16:17:31.960",
  "lastModified": "2026-10-30T13:21:27.643",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: fix IP instance memory leak on kobject add failure\n\namdgpu_discovery_sysfs_ips() allocates ip_hw_instance with\nkzalloc_flex() and initializes its embedded kobject before calling\nkobject_add().\n\nIf kobject_add() fails, the return value is ignored and execution\ncontinues without dropping the initial kobject reference. The failed\nkobject is not retained in the kset list, so the normal sysfs teardown\npath cannot find it. As a result, ip_hw_instance_release() is never\ncalled and the ip_hw_instance allocation is leaked.\n\nCall kobject_put() when kobject_add() fails so the initial reference is\ndropped and ip_hw_instance_release() can free the allocation. Keep the\nexisting best-effort sysfs behavior by continuing with the remaining IP\nentries after the failed registration.\n\nThe issue was identified by a static analysis tool I developed and\nconfirmed by manual review.\n\n(cherry picked from commit 5c75fbcca8af1096d8d9415b91d8ea6212c22ee1)"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "a6c40b178092f41b9d6cc8615697c14b1e5a1c3a",
              "lessThan": "1d7dd4f230867231abfc5cc413dae5260e06fdb2",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a6c40b178092f41b9d6cc8615697c14b1e5a1c3a",
              "lessThan": "f6364e7284a131556f5d763d867147bece2843a8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a6c40b178092f41b9d6cc8615697c14b1e5a1c3a",
              "lessThan": "0563b26c1437fe7e25ea42c334eb85c0a703f8ff",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a6c40b178092f41b9d6cc8615697c14b1e5a1c3a",
              "lessThan": "7ca44cb14d0249992a8f1425ba004d6e2d16d255",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a6c40b178092f41b9d6cc8615697c14b1e5a1c3a",
              "lessThan": "c05bbcc263d67b8b158e2a52be7e3005895969d1",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "a6c40b178092f41b9d6cc8615697c14b1e5a1c3a",
              "lessThan": "f5a5add3605935163dd0f75749b6a7869e9765af",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.18",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.18",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.160",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.113",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.56",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.10",
              "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/0563b26c1437fe7e25ea42c334eb85c0a703f8ff",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/1d7dd4f230867231abfc5cc413dae5260e06fdb2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7ca44cb14d0249992a8f1425ba004d6e2d16d255",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c05bbcc263d67b8b158e2a52be7e3005895969d1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f5a5add3605935163dd0f75749b6a7869e9765af",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f6364e7284a131556f5d763d867147bece2843a8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}