← Back to CVE Explorer

CVE-2025-38597

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: drm/rockchip: vop2: fail cleanly if missing a primary plane for a video-port Each window of a vop2 is usable by a specific set of video ports, so while binding the vop2, we look through the list of available windows trying to find one designated as primary-plane and usable by that specific port. The code later wants to use drm_crtc_init_with_planes with that found primary plane, but nothing has checked so far if a primary plane was actually found. For whatever reason, the rk3576 vp2 does not have a usable primary window (if vp0 is also in use) which brought the issue to light and ended in a null-pointer dereference further down. As we expect a primary-plane to exist for a video-port, add a check at the end of the window-iteration and fail probing if none was found.

Severity
MEDIUM
CVSS score
5.5 (v3.1)
Vulnerability status
Modified
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-08-19 17:15:37.613000
Last modified
2026-10-30 13:18:06.573000
View original CVE JSON
{
  "id": "CVE-2025-38597",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-08-19T17:15:37.613",
  "lastModified": "2026-10-30T13:18:06.573",
  "vulnStatus": "Modified",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/rockchip: vop2: fail cleanly if missing a primary plane for a video-port\n\nEach window of a vop2 is usable by a specific set of video ports, so while\nbinding the vop2, we look through the list of available windows trying to\nfind one designated as primary-plane and usable by that specific port.\n\nThe code later wants to use drm_crtc_init_with_planes with that found\nprimary plane, but nothing has checked so far if a primary plane was\nactually found.\n\nFor whatever reason, the rk3576 vp2 does not have a usable primary window\n(if vp0 is also in use) which brought the issue to light and ended in a\nnull-pointer dereference further down.\n\nAs we expect a primary-plane to exist for a video-port, add a check at\nthe end of the window-iteration and fail probing if none was found."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/rockchip: vop2: falla correctamente si falta un plano principal para un puerto de vídeo. Cada ventana de un vop2 es utilizable por un conjunto específico de puertos de vídeo, por lo que al vincular el vop2, revisamos la lista de ventanas disponibles intentando encontrar una designada como plano principal y utilizable por ese puerto específico. Posteriormente, el código quiere usar drm_crtc_init_with_planes con ese plano principal encontrado, pero hasta ahora no se ha comprobado si realmente se encontró un plano principal. Por alguna razón, el vp2 rk3576 no tiene una ventana principal utilizable (si vp0 también está en uso), lo que sacó a la luz el problema y terminó en una desreferencia de puntero nulo más adelante. Como esperamos que exista un plano principal para un puerto de vídeo, agregue una comprobación al final de la iteración de la ventana y falle el sondeo si no se encuentra ninguno."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "604be85547ce4d61b89292d2f9a78c721b778c16",
              "lessThan": "93857359a07e425b643178ce3c6e60a9e4605cac",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "604be85547ce4d61b89292d2f9a78c721b778c16",
              "lessThan": "45be183b9944f765b77623daffb024cb38d192bf",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "604be85547ce4d61b89292d2f9a78c721b778c16",
              "lessThan": "8fc974776c668fef1fc73fefbf573a076bb073e8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "604be85547ce4d61b89292d2f9a78c721b778c16",
              "lessThan": "e1eef239399927b368f70a716044fb10085627c8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "604be85547ce4d61b89292d2f9a78c721b778c16",
              "lessThan": "38682edbbad272b5f8c7bf55128b42cd10626f73",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "604be85547ce4d61b89292d2f9a78c721b778c16",
              "lessThan": "f9f68bf1d0efeadb6c427c9dbb30f307a7def19b",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.19",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.19",
              "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.114",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.15.10",
              "lessThanOrEqual": "6.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.16.1",
              "lessThanOrEqual": "6.16.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.17",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 5.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 3.6
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-476"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "5.19",
              "versionEndExcluding": "6.15.10",
              "matchCriteriaId": "E079EAFD-DB0D-4171-A04F-254DAA719CB9"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.16",
              "versionEndExcluding": "6.16.1",
              "matchCriteriaId": "58182352-D7DF-4CC9-841E-03C1D852C3FB"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/38682edbbad272b5f8c7bf55128b42cd10626f73",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/45be183b9944f765b77623daffb024cb38d192bf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8fc974776c668fef1fc73fefbf573a076bb073e8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/93857359a07e425b643178ce3c6e60a9e4605cac",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e1eef239399927b368f70a716044fb10085627c8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/f9f68bf1d0efeadb6c427c9dbb30f307a7def19b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    }
  ]
}