CVE-2023-53455

EUVD-2025-32806
In the Linux kernel, the following vulnerability has been resolved:

drm/vc4: drop all currently held locks if deadlock happens

If vc4_hdmi_reset_link() returns -EDEADLK, it means that a deadlock
happened in the locking context. This situation should be addressed by
dropping all currently held locks and block until the contended lock
becomes available. Currently, vc4 is not dealing with the deadlock
properly, producing the following output when PROVE_LOCKING is enabled:

[  825.612809] ------------[ cut here ]------------
[  825.612852] WARNING: CPU: 1 PID: 116 at drivers/gpu/drm/drm_modeset_lock.c:276 drm_modeset_drop_locks+0x60/0x68 [drm]
[  825.613458] Modules linked in: 8021q mrp garp stp llc
raspberrypi_cpufreq brcmfmac brcmutil crct10dif_ce hci_uart cfg80211
btqca btbcm bluetooth vc4 raspberrypi_hwmon snd_soc_hdmi_codec cec
clk_raspberrypi ecdh_generic drm_display_helper ecc rfkill
drm_dma_helper drm_kms_helper pwm_bcm2835 bcm2835_thermal bcm2835_rng
rng_core i2c_bcm2835 drm fuse ip_tables x_tables ipv6
[  825.613735] CPU: 1 PID: 116 Comm: kworker/1:2 Tainted: G        W 6.1.0-rc6-01399-g941aae326315 #3
[  825.613759] Hardware name: Raspberry Pi 3 Model B Rev 1.2 (DT)
[  825.613777] Workqueue: events output_poll_execute [drm_kms_helper]
[  825.614038] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  825.614063] pc : drm_modeset_drop_locks+0x60/0x68 [drm]
[  825.614603] lr : drm_helper_probe_detect+0x120/0x1b4 [drm_kms_helper]
[  825.614829] sp : ffff800008313bf0
[  825.614844] x29: ffff800008313bf0 x28: ffffcd7778b8b000 x27: 0000000000000000
[  825.614883] x26: 0000000000000001 x25: 0000000000000001 x24: ffff677cc35c2758
[  825.614920] x23: ffffcd7707d01430 x22: ffffcd7707c3edc7 x21: 0000000000000001
[  825.614958] x20: 0000000000000000 x19: ffff800008313c10 x18: 000000000000b6d3
[  825.614995] x17: ffffcd777835e214 x16: ffffcd7777cef870 x15: fffff81000000000
[  825.615033] x14: 0000000000000000 x13: 0000000000000099 x12: 0000000000000002
[  825.615070] x11: 72917988020af800 x10: 72917988020af800 x9 : 72917988020af800
[  825.615108] x8 : ffff677cc665e0a8 x7 : d00a8c180000110c x6 : ffffcd77774c0054
[  825.615145] x5 : 0000000000000000 x4 : 0000000000000001 x3 : 0000000000000000
[  825.615181] x2 : ffff677cc55e1880 x1 : ffffcd7777cef8ec x0 : ffff800008313c10
[  825.615219] Call trace:
[  825.615232]  drm_modeset_drop_locks+0x60/0x68 [drm]
[  825.615773]  drm_helper_probe_detect+0x120/0x1b4 [drm_kms_helper]
[  825.616003]  output_poll_execute+0xe4/0x224 [drm_kms_helper]
[  825.616233]  process_one_work+0x2b4/0x618
[  825.616264]  worker_thread+0x24c/0x464
[  825.616288]  kthread+0xec/0x110
[  825.616310]  ret_from_fork+0x10/0x20
[  825.616335] irq event stamp: 7634
[  825.616349] hardirqs last  enabled at (7633): [<ffffcd777831ee90>] _raw_spin_unlock_irq+0x3c/0x78
[  825.616384] hardirqs last disabled at (7634): [<ffffcd7778315a78>] __schedule+0x134/0x9f0
[  825.616411] softirqs last  enabled at (7630): [<ffffcd7707aacea0>] local_bh_enable+0x4/0x30 [ipv6]
[  825.617019] softirqs last disabled at (7618): [<ffffcd7707aace70>] local_bh_disable+0x4/0x30 [ipv6]
[  825.617586] ---[ end trace 0000000000000000 ]---

Therefore, deal with the deadlock as suggested by [1], using the
function drm_modeset_backoff().

[1] https://docs.kernel.org/gpu/drm-kms.html?highlight=kms#kms-locking
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
5.5 MEDIUM
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 5%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
6.1 ≤
𝑥
< 6.1.16
linuxlinux_kernel
6.2 ≤
𝑥
< 6.2.3
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
6.1.148-1
fixed
bookworm (security)
6.1.153-1
fixed
bullseye
5.10.223-1
not-affected
bullseye (security)
5.10.237-1
fixed
forky
6.16.8-1
fixed
sid
6.16.9-1
fixed
trixie
6.12.43-1
fixed
trixie (security)
6.12.48-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-hwe
bionic
ignored
jammy
dne
noble
dne
plucky
dne
xenial
needs-triage
linux-hwe-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-hwe-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-hwe-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-hwe-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-hwe-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-hwe-5.19
jammy
ignored
noble
dne
plucky
dne
linux-hwe-6.2
jammy
ignored
noble
dne
plucky
dne
linux-hwe-6.5
jammy
ignored
noble
dne
plucky
dne
linux-hwe-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-hwe-6.11
jammy
dne
noble
ignored
plucky
dne
linux-hwe-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-hwe-edge
bionic
ignored
jammy
dne
noble
dne
plucky
dne
xenial
ignored
linux-lts-xenial
jammy
dne
noble
dne
plucky
dne
trusty
needs-triage
linux-kvm
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
xenial
needs-triage
linux-allwinner-5.19
jammy
ignored
noble
dne
plucky
dne
linux-aws
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-aws-5.0
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-aws-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-aws-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-aws-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-aws-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-aws-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-aws-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-aws-5.19
jammy
ignored
noble
dne
plucky
dne
linux-aws-6.2
jammy
ignored
noble
dne
plucky
dne
linux-aws-6.5
jammy
ignored
noble
dne
plucky
dne
linux-aws-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-aws-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-aws-hwe
jammy
dne
noble
dne
plucky
dne
xenial
needs-triage
linux-azure
bionic
ignored
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
trusty
needs-triage
xenial
needs-triage
linux-azure-4.15
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-azure-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-azure-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-azure-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-azure-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-azure-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-azure-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-azure-5.19
jammy
ignored
noble
dne
plucky
dne
linux-azure-6.2
jammy
ignored
noble
dne
plucky
dne
linux-azure-6.5
jammy
ignored
noble
dne
plucky
dne
linux-azure-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-azure-6.11
jammy
dne
noble
ignored
plucky
dne
linux-azure-fde
focal
ignored
jammy
needs-triage
noble
dne
plucky
needs-triage
linux-azure-fde-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-azure-fde-5.19
jammy
ignored
noble
dne
plucky
dne
linux-azure-fde-6.2
jammy
ignored
noble
dne
plucky
dne
linux-azure-nvidia
jammy
dne
noble
needs-triage
plucky
dne
linux-bluefield
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-azure-edge
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
xenial
needs-triage
linux-aws-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
linux-azure-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
linux-gcp-fips
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne
linux-gcp
bionic
ignored
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
xenial
needs-triage
linux-gcp-4.15
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-gcp-5.19
jammy
ignored
noble
dne
plucky
dne
linux-gcp-6.2
jammy
ignored
noble
dne
plucky
dne
linux-gcp-6.5
jammy
ignored
noble
dne
plucky
dne
linux-gcp-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-gcp-6.11
jammy
dne
noble
ignored
plucky
dne
linux-gcp-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-gke
focal
ignored
jammy
needs-triage
noble
needs-triage
plucky
dne
linux-gke-4.15
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-gke-5.4
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-gke-5.15
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-gkeop
focal
ignored
jammy
needs-triage
noble
needs-triage
plucky
dne
linux-gkeop-5.4
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-gkeop-5.15
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-ibm
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
dne
linux-ibm-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-ibm-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-ibm-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-intel-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-intel-iotg
jammy
needs-triage
noble
dne
plucky
dne
linux-intel-iotg-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-iot
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-intel-iot-realtime
jammy
needs-triage
noble
dne
plucky
dne
linux-lowlatency
jammy
needs-triage
noble
needs-triage
plucky
dne
linux-lowlatency-hwe-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-lowlatency-hwe-5.19
jammy
ignored
noble
dne
plucky
dne
linux-lowlatency-hwe-6.2
jammy
ignored
noble
dne
plucky
dne
linux-lowlatency-hwe-6.5
jammy
ignored
noble
dne
plucky
dne
linux-lowlatency-hwe-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-lowlatency-hwe-6.11
jammy
dne
noble
ignored
plucky
dne
linux-nvidia
jammy
needs-triage
noble
needs-triage
plucky
dne
linux-nvidia-6.2
jammy
ignored
noble
dne
plucky
dne
linux-nvidia-6.5
jammy
ignored
noble
dne
plucky
dne
linux-nvidia-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-nvidia-6.11
jammy
dne
noble
needs-triage
plucky
dne
linux-nvidia-lowlatency
jammy
dne
noble
needs-triage
plucky
dne
linux-nvidia-tegra
jammy
needs-triage
noble
needs-triage
plucky
dne
linux-nvidia-tegra-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-nvidia-tegra-igx
jammy
needs-triage
noble
dne
plucky
dne
linux-oracle
bionic
needs-triage
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
xenial
needs-triage
linux-oracle-5.0
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-oracle-5.3
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-oracle-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-oracle-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oracle-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oracle-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oracle-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-oracle-6.5
jammy
ignored
noble
dne
plucky
dne
linux-oracle-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-oracle-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-oem
bionic
ignored
jammy
dne
noble
dne
plucky
dne
linux-oem-5.6
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oem-5.10
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oem-5.13
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oem-5.14
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-oem-5.17
jammy
ignored
noble
dne
plucky
dne
linux-oem-6.0
jammy
ignored
noble
dne
plucky
dne
linux-oem-6.1
jammy
ignored
noble
dne
plucky
dne
linux-oem-6.5
jammy
ignored
noble
dne
plucky
dne
linux-oem-6.8
jammy
dne
noble
needs-triage
plucky
dne
linux-oem-6.11
jammy
dne
noble
needs-triage
plucky
dne
linux-oem-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-raspi
focal
needs-triage
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
linux-raspi2
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-raspi-5.4
bionic
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-raspi-realtime
jammy
dne
noble
needs-triage
plucky
dne
linux-realtime
jammy
needs-triage
noble
needs-triage
plucky
needs-triage
linux-realtime-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-realtime-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-riscv
focal
ignored
jammy
ignored
noble
ignored
plucky
needs-triage
linux-riscv-5.8
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-riscv-5.11
focal
ignored
jammy
dne
noble
dne
plucky
dne
linux-riscv-5.15
focal
needs-triage
jammy
dne
noble
dne
plucky
dne
linux-riscv-5.19
jammy
ignored
noble
dne
plucky
dne
linux-riscv-6.5
jammy
ignored
noble
dne
plucky
dne
linux-riscv-6.8
jammy
needs-triage
noble
dne
plucky
dne
linux-riscv-6.14
jammy
dne
noble
needs-triage
plucky
dne
linux-starfive-5.19
jammy
ignored
noble
dne
plucky
dne
linux-starfive-6.2
jammy
ignored
noble
dne
plucky
dne
linux-starfive-6.5
jammy
ignored
noble
dne
plucky
dne
linux-xilinx-zynqmp
focal
needs-triage
jammy
needs-triage
noble
dne
plucky
dne