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 drmcrtcinitwithplanes 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.
[
{
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f9f68bf1d0efeadb6c427c9dbb30f307a7def19b",
"digest": {
"threshold": 0.9,
"line_hashes": [
"225840960955458956323245667207998313458",
"75407180318704451699303769443305508093",
"192742391956018977754974215102531043252",
"230034558521833301545150273380128962591"
]
},
"deprecated": false,
"id": "CVE-2025-38597-0b6454b2",
"signature_type": "Line"
},
{
"signature_version": "v1",
"target": {
"function": "vop2_create_crtcs",
"file": "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@38682edbbad272b5f8c7bf55128b42cd10626f73",
"digest": {
"length": 3189.0,
"function_hash": "193686036182207251414428355979161457413"
},
"deprecated": false,
"id": "CVE-2025-38597-39c9a06f",
"signature_type": "Function"
},
{
"signature_version": "v1",
"target": {
"function": "vop2_create_crtcs",
"file": "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f9f68bf1d0efeadb6c427c9dbb30f307a7def19b",
"digest": {
"length": 3189.0,
"function_hash": "193686036182207251414428355979161457413"
},
"deprecated": false,
"id": "CVE-2025-38597-6c5905aa",
"signature_type": "Function"
},
{
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e1eef239399927b368f70a716044fb10085627c8",
"digest": {
"threshold": 0.9,
"line_hashes": [
"225840960955458956323245667207998313458",
"75407180318704451699303769443305508093",
"192742391956018977754974215102531043252",
"230034558521833301545150273380128962591"
]
},
"deprecated": false,
"id": "CVE-2025-38597-720b0956",
"signature_type": "Line"
},
{
"signature_version": "v1",
"target": {
"function": "vop2_create_crtcs",
"file": "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e1eef239399927b368f70a716044fb10085627c8",
"digest": {
"length": 3189.0,
"function_hash": "193686036182207251414428355979161457413"
},
"deprecated": false,
"id": "CVE-2025-38597-7f9c26d9",
"signature_type": "Function"
},
{
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/rockchip/rockchip_drm_vop2.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@38682edbbad272b5f8c7bf55128b42cd10626f73",
"digest": {
"threshold": 0.9,
"line_hashes": [
"225840960955458956323245667207998313458",
"75407180318704451699303769443305508093",
"192742391956018977754974215102531043252",
"230034558521833301545150273380128962591"
]
},
"deprecated": false,
"id": "CVE-2025-38597-85a8e1a5",
"signature_type": "Line"
}
]