CVE-2025-40316 (GCVE-0-2025-40316)

Vulnerability from cvelistv5 – Published: 2025-12-08 00:46 – Updated: 2026-05-23 16:02
VLAI
Title
drm/mediatek: Fix device use-after-free on unbind
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/mediatek: Fix device use-after-free on unbind A recent change fixed device reference leaks when looking up drm platform device driver data during bind() but failed to remove a partial fix which had been added by commit 80805b62ea5b ("drm/mediatek: Fix kobject put for component sub-drivers"). This results in a reference imbalance on component bind() failures and on unbind() which could lead to a user-after-free. Make sure to only drop the references after retrieving the driver data by effectively reverting the previous partial fix. Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.
Severity
No CVSS data available.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 7018 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 7d98166183d627c0b9daca7672b2191fae0f8a03 , < a5a896f8315de358a2932e2c23c42d550256046a (git)
Affected: 31ce7c089b50c3d3056c37e0e25e7535e4428ae1 , < 0142fe895986addf35885b43440718e567121155 (git)
Affected: 1f403699c40f0806a707a9a6eed3b8904224021a , < 8ba827e09eb586e952d10e39406fa02d10bb591e (git)
Affected: 1f403699c40f0806a707a9a6eed3b8904224021a , < 926d002e6d7e2f1fd5c1b53cf6208153ee7d380d (git)
Affected: fae58d0155a979a8c414bbc12db09dd4b2f910d0 (git)
Affected: 6.6.105 , < 6.6.117 (semver)
Affected: 6.12.45 , < 6.12.58 (semver)
Affected: 6.16.5 , < 6.17 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.17
Unaffected: 0 , < 6.17 (semver)
Unaffected: 6.6.117 , ≤ 6.6.* (semver)
Unaffected: 6.12.58 , ≤ 6.12.* (semver)
Unaffected: 6.17.8 , ≤ 6.17.* (semver)
Unaffected: 6.18 , ≤ * (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/mediatek/mtk_drm_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a5a896f8315de358a2932e2c23c42d550256046a",
              "status": "affected",
              "version": "7d98166183d627c0b9daca7672b2191fae0f8a03",
              "versionType": "git"
            },
            {
              "lessThan": "0142fe895986addf35885b43440718e567121155",
              "status": "affected",
              "version": "31ce7c089b50c3d3056c37e0e25e7535e4428ae1",
              "versionType": "git"
            },
            {
              "lessThan": "8ba827e09eb586e952d10e39406fa02d10bb591e",
              "status": "affected",
              "version": "1f403699c40f0806a707a9a6eed3b8904224021a",
              "versionType": "git"
            },
            {
              "lessThan": "926d002e6d7e2f1fd5c1b53cf6208153ee7d380d",
              "status": "affected",
              "version": "1f403699c40f0806a707a9a6eed3b8904224021a",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "fae58d0155a979a8c414bbc12db09dd4b2f910d0",
              "versionType": "git"
            },
            {
              "lessThan": "6.6.117",
              "status": "affected",
              "version": "6.6.105",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.58",
              "status": "affected",
              "version": "6.12.45",
              "versionType": "semver"
            },
            {
              "lessThan": "6.17",
              "status": "affected",
              "version": "6.16.5",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/gpu/drm/mediatek/mtk_drm_drv.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.17"
            },
            {
              "lessThan": "6.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.117",
              "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.6.117",
                  "versionStartIncluding": "6.6.105",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.58",
                  "versionStartIncluding": "6.12.45",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17.8",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.16.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/mediatek: Fix device use-after-free on unbind\n\nA recent change fixed device reference leaks when looking up drm\nplatform device driver data during bind() but failed to remove a partial\nfix which had been added by commit 80805b62ea5b (\"drm/mediatek: Fix\nkobject put for component sub-drivers\").\n\nThis results in a reference imbalance on component bind() failures and\non unbind() which could lead to a user-after-free.\n\nMake sure to only drop the references after retrieving the driver data\nby effectively reverting the previous partial fix.\n\nNote that holding a reference to a device does not prevent its driver\ndata from going away so there is no point in keeping the reference."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-23T16:02:05.577Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a5a896f8315de358a2932e2c23c42d550256046a"
        },
        {
          "url": "https://git.kernel.org/stable/c/0142fe895986addf35885b43440718e567121155"
        },
        {
          "url": "https://git.kernel.org/stable/c/8ba827e09eb586e952d10e39406fa02d10bb591e"
        },
        {
          "url": "https://git.kernel.org/stable/c/926d002e6d7e2f1fd5c1b53cf6208153ee7d380d"
        }
      ],
      "title": "drm/mediatek: Fix device use-after-free on unbind",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-40316",
    "datePublished": "2025-12-08T00:46:43.210Z",
    "dateReserved": "2025-04-16T07:20:57.186Z",
    "dateUpdated": "2026-05-23T16:02:05.577Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-40316",
      "date": "2026-11-01",
      "epss": "0.0019",
      "percentile": "0.08646"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/gpu/drm/mediatek/mtk_drm_drv.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "a5a896f8315de358a2932e2c23c42d550256046a",
                    "status": "affected",
                    "version": "7d98166183d627c0b9daca7672b2191fae0f8a03",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0142fe895986addf35885b43440718e567121155",
                    "status": "affected",
                    "version": "31ce7c089b50c3d3056c37e0e25e7535e4428ae1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "8ba827e09eb586e952d10e39406fa02d10bb591e",
                    "status": "affected",
                    "version": "1f403699c40f0806a707a9a6eed3b8904224021a",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "926d002e6d7e2f1fd5c1b53cf6208153ee7d380d",
                    "status": "affected",
                    "version": "1f403699c40f0806a707a9a6eed3b8904224021a",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "fae58d0155a979a8c414bbc12db09dd4b2f910d0",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6.6.117",
                    "status": "affected",
                    "version": "6.6.105",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.12.58",
                    "status": "affected",
                    "version": "6.12.45",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "6.17",
                    "status": "affected",
                    "version": "6.16.5",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/gpu/drm/mediatek/mtk_drm_drv.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.17"
                  },
                  {
                    "lessThan": "6.17",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.117",
                    "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/mediatek: Fix device use-after-free on unbind\n\nA recent change fixed device reference leaks when looking up drm\nplatform device driver data during bind() but failed to remove a partial\nfix which had been added by commit 80805b62ea5b (\"drm/mediatek: Fix\nkobject put for component sub-drivers\").\n\nThis results in a reference imbalance on component bind() failures and\non unbind() which could lead to a user-after-free.\n\nMake sure to only drop the references after retrieving the driver data\nby effectively reverting the previous partial fix.\n\nNote that holding a reference to a device does not prevent its driver\ndata from going away so there is no point in keeping the reference."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ndrm/mediatek: Solucionar el uso despu\u00e9s de liberaci\u00f3n del dispositivo al desvincular\n\nUn cambio reciente solucion\u00f3 las fugas de referencia del dispositivo al buscar datos del controlador del dispositivo de plataforma drm durante bind() pero no elimin\u00f3 una soluci\u00f3n parcial que hab\u00eda sido a\u00f1adida por el commit 80805b62ea5b (\u0027drm/mediatek: Solucionar kobject put para subcontroladores de componentes\u0027).\n\nEsto resulta en un desequilibrio de referencias en fallos de bind() de componentes y en unbind() lo que podr\u00eda llevar a un uso despu\u00e9s de liberaci\u00f3n.\n\nAseg\u00farese de solo liberar las referencias despu\u00e9s de recuperar los datos del controlador revirtiendo efectivamente la soluci\u00f3n parcial anterior.\n\nTenga en cuenta que mantener una referencia a un dispositivo no evita que sus datos de controlador desaparezcan, por lo que no tiene sentido mantener la referencia."
          }
        ],
        "id": "CVE-2025-40316",
        "lastModified": "2026-10-14T22:10:00.210",
        "metrics": {},
        "published": "2025-12-08T01:16:04.147",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0142fe895986addf35885b43440718e567121155"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8ba827e09eb586e952d10e39406fa02d10bb591e"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/926d002e6d7e2f1fd5c1b53cf6208153ee7d380d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/a5a896f8315de358a2932e2c23c42d550256046a"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:19:52+00:00",
      "cve": "CVE-2025-40316",
      "id": "CVE-2025-40316",
      "initial_release_date": "2025-12-08T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: drm/mediatek: Fix device use-after-free on unbind",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-40316.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

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.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    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.