CVE-2025-68181 (GCVE-0-2025-68181)

Vulnerability from cvelistv5 – Published: 2025-12-16 13:42 – Updated: 2026-08-05 12:10
VLAI
Title
drm/radeon: Remove calls to drm_put_dev()
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/radeon: Remove calls to drm_put_dev() Since the allocation of the drivers main structure was changed to devm_drm_dev_alloc() drm_put_dev()'ing to trigger it to be free'd should be done by devres. However, drm_put_dev() is still in the probe error and device remove paths. When the driver fails to probe warnings like the following are shown because devres is trying to drm_put_dev() after the driver already did it. [ 5.642230] radeon 0000:01:05.0: probe with driver radeon failed with error -22 [ 5.649605] ------------[ cut here ]------------ [ 5.649607] refcount_t: underflow; use-after-free. [ 5.649620] WARNING: CPU: 0 PID: 357 at lib/refcount.c:28 refcount_warn_saturate+0xbe/0x110 (cherry picked from commit 3eb8c0b4c091da0a623ade0d3ee7aa4a93df1ea4)
Impacted products
Vendor Product Version
Linux Linux Affected: a9ed2f052c5c14e4be58c5ec8794dffc87588123 , < 2fa41445d8c98f2a65503c373796466496edc0e7 (git)
Affected: a9ed2f052c5c14e4be58c5ec8794dffc87588123 , < ec18f6b2c743cc471b2539ddb5caed20a012e640 (git)
Affected: a9ed2f052c5c14e4be58c5ec8794dffc87588123 , < 745bae76acdd71709773c129a69deca01036250b (git)
Create a notification for this product.
Linux Linux Affected: 6.12
Unaffected: 0 , < 6.12 (semver)
Unaffected: 6.12.58 , ≤ 6.12.* (semver)
Unaffected: 6.17.8 , ≤ 6.17.* (semver)
Unaffected: 6.18 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/radeon/radeon_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2fa41445d8c98f2a65503c373796466496edc0e7",
              "status": "affected",
              "version": "a9ed2f052c5c14e4be58c5ec8794dffc87588123",
              "versionType": "git"
            },
            {
              "lessThan": "ec18f6b2c743cc471b2539ddb5caed20a012e640",
              "status": "affected",
              "version": "a9ed2f052c5c14e4be58c5ec8794dffc87588123",
              "versionType": "git"
            },
            {
              "lessThan": "745bae76acdd71709773c129a69deca01036250b",
              "status": "affected",
              "version": "a9ed2f052c5c14e4be58c5ec8794dffc87588123",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/radeon/radeon_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.12"
            },
            {
              "lessThan": "6.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.58",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.17.*",
              "status": "unaffected",
              "version": "6.17.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.18",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.58",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17.8",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18",
                  "versionStartIncluding": "6.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/radeon: Remove calls to drm_put_dev()\n\nSince the allocation of the drivers main structure was changed to\ndevm_drm_dev_alloc() drm_put_dev()\u0027ing to trigger it to be free\u0027d\nshould be done by devres.\n\nHowever, drm_put_dev() is still in the probe error and device remove\npaths. When the driver fails to probe warnings like the following are\nshown because devres is trying to drm_put_dev() after the driver\nalready did it.\n\n[    5.642230] radeon 0000:01:05.0: probe with driver radeon failed with error -22\n[    5.649605] ------------[ cut here ]------------\n[    5.649607] refcount_t: underflow; use-after-free.\n[    5.649620] WARNING: CPU: 0 PID: 357 at lib/refcount.c:28 refcount_warn_saturate+0xbe/0x110\n\n(cherry picked from commit 3eb8c0b4c091da0a623ade0d3ee7aa4a93df1ea4)"
        }
      ],
      "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 vulnerable object is the radeon `drm_device`/`radeon_device` reached through local device nodes (`/dev/dri/card*`, `/dev/dri/renderD*`) and local driver bind/unbind/module teardown; there is no network-facing path into radeon_drv.c.\nAC:L - The double `drm_dev_put()` is unconditional on both the probe-error and `.remove` paths \u2014 no race to win and no memory layout the attacker cannot influence, and the attacker chooses when to touch the stale fd, giving an unbounded free-to-use window for heap grooming.\nPR:L - radeon declares `DRIVER_RENDER`, so any unprivileged local user can open the world-accessible render node and hold the `drm_dev_get()` reference whose premature release frees the object under their still-open fd, after which their own `ioctl`/`mmap`/`close` drives the use-after-free.\nUI:N - No victim action is needed \u2014 the attacker\u0027s own open fd plus a routine driver teardown (unbind, module reload, hot-unplug, or shutdown in a VM) is sufficient, and the freed object is then touched by the attacker\u0027s own syscalls.\nS:U - The corruption is confined to kernel heap memory within the same security authority; there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - The freed `radeon_device` container can be reclaimed by attacker-sprayed data and is then read back through `drm_ioctl()`/`dev-\u003edriver` and radeon\u0027s ioctl and postclose paths, yielding an arbitrary kernel-memory read primitive.\nI:H - `refcount_dec_and_test()` writes into freed memory, and `radeon_driver_postclose_kms()` writes `rdev-\u003ehyperz_filp`/`cmask_filp` and manipulates mutexes and VM state in the freed object, giving a write primitive and function-pointer control suitable for privilege escalation.\nA:H - The bug reliably produces a refcount underflow WARN and use-after-free on driver probe failure and on every device removal, causing kernel oops/panic and GPU subsystem failure."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:10:04.239Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2fa41445d8c98f2a65503c373796466496edc0e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/ec18f6b2c743cc471b2539ddb5caed20a012e640"
        },
        {
          "url": "https://git.kernel.org/stable/c/745bae76acdd71709773c129a69deca01036250b"
        }
      ],
      "title": "drm/radeon: Remove calls to drm_put_dev()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-68181",
    "datePublished": "2025-12-16T13:42:59.600Z",
    "dateReserved": "2025-12-16T13:41:40.252Z",
    "dateUpdated": "2026-08-05T12:10:04.239Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-68181",
      "date": "2026-10-14",
      "epss": "0.00148",
      "percentile": "0.03615"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/gpu/drm/radeon/radeon_drv.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "2fa41445d8c98f2a65503c373796466496edc0e7",
                    "status": "affected",
                    "version": "a9ed2f052c5c14e4be58c5ec8794dffc87588123",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "ec18f6b2c743cc471b2539ddb5caed20a012e640",
                    "status": "affected",
                    "version": "a9ed2f052c5c14e4be58c5ec8794dffc87588123",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "745bae76acdd71709773c129a69deca01036250b",
                    "status": "affected",
                    "version": "a9ed2f052c5c14e4be58c5ec8794dffc87588123",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/gpu/drm/radeon/radeon_drv.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.12"
                  },
                  {
                    "lessThan": "6.12",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.58",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.17.*",
                    "status": "unaffected",
                    "version": "6.17.8",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.18",
                    "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/radeon: Remove calls to drm_put_dev()\n\nSince the allocation of the drivers main structure was changed to\ndevm_drm_dev_alloc() drm_put_dev()\u0027ing to trigger it to be free\u0027d\nshould be done by devres.\n\nHowever, drm_put_dev() is still in the probe error and device remove\npaths. When the driver fails to probe warnings like the following are\nshown because devres is trying to drm_put_dev() after the driver\nalready did it.\n\n[    5.642230] radeon 0000:01:05.0: probe with driver radeon failed with error -22\n[    5.649605] ------------[ cut here ]------------\n[    5.649607] refcount_t: underflow; use-after-free.\n[    5.649620] WARNING: CPU: 0 PID: 357 at lib/refcount.c:28 refcount_warn_saturate+0xbe/0x110\n\n(cherry picked from commit 3eb8c0b4c091da0a623ade0d3ee7aa4a93df1ea4)"
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ndrm/radeon: Eliminar llamadas a drm_put_dev()\n\nDado que la asignaci\u00f3n de la estructura principal del controlador se cambi\u00f3 a devm_drm_dev_alloc(), la llamada a drm_put_dev() para activar su liberaci\u00f3n deber\u00eda ser realizada por devres.\n\nSin embargo, drm_put_dev() todav\u00eda est\u00e1 en las rutas de error de sondeo y eliminaci\u00f3n de dispositivos. Cuando el controlador falla al sondear, se muestran advertencias como las siguientes porque devres est\u00e1 intentando llamar a drm_put_dev() despu\u00e9s de que el controlador ya lo hizo.\n\n[    5.642230] radeon 0000:01:05.0: el sondeo con el controlador radeon fall\u00f3 con error -22\n[    5.649605] ------------[ cortar aqu\u00ed ]------------\n[    5.649607] refcount_t: desbordamiento inferior; uso despu\u00e9s de liberaci\u00f3n.\n[    5.649620] ADVERTENCIA: CPU: 0 PID: 357 en lib/refcount.c:28 refcount_warn_saturate+0xbe/0x110\n\n(seleccionado de la confirmaci\u00f3n 3eb8c0b4c091da0a623ade0d3ee7aa4a93df1ea4)"
          }
        ],
        "id": "CVE-2025-68181",
        "lastModified": "2026-10-14T13:10:00.187",
        "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": "2025-12-16T14:15:50.660",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2fa41445d8c98f2a65503c373796466496edc0e7"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/745bae76acdd71709773c129a69deca01036250b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ec18f6b2c743cc471b2539ddb5caed20a012e640"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-07-30T10:07:46+00:00",
      "cve": "CVE-2025-68181",
      "id": "CVE-2025-68181",
      "initial_release_date": "2025-12-16T00:00:00+00:00",
      "product_status:known_affected": "198",
      "product_status:known_not_affected": "76",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/radeon: Remove calls to drm_put_dev()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-68181.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-10-07T16:33:50Z",
      "cve": "CVE-2025-68181",
      "id": "CVE-2025-68181",
      "initial_release_date": "2025-12-17T00:26:07Z",
      "product_status:known_affected": "396",
      "product_status:known_not_affected": "472",
      "product_status:recommended": "265",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-68181",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-68181.json",
      "version": "30"
    }
  }
}



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…