Skip to content
OpenAdvisories
High · 7.8 CVE-2023-52486 EUVD-2023-57111GHSA-ph55-5xqf-59r7

drm: Don't unref the same fb many times by mistake due to deadlock handling

Published Feb 29, 2024 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-5.4 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-nvidia Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.5 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

drm: Don't unref the same fb many times by mistake due to deadlock handling

If we get a deadlock after the fb lookup in drm_mode_page_flip_ioctl()
we proceed to unref the fb and then retry the whole thing from the top.
But we forget to reset the fb pointer back to NULL, and so if we then
get another error during the retry, before the fb lookup, we proceed
the unref the same fb again without having gotten another reference.
The end result is that the fb will (eventually) end up being freed
while it's still in use.

Reset fb to NULL once we've unreffed it to avoid doing it again
until we've done another fb lookup.

This turned out to be pretty easy to hit on a DG2 when doing async
flips (and CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y). The first symptom I
saw that drm_closefb() simply got stuck in a busy loop while walking
the framebuffer list. Fortunately I was able to convince it to oops
instead, and from there it was easier to track down the culprit.

Affected products

VendorProductAffectedFixed
Linux Linux 4.12 4.19.307

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.6.15-1 —
Debian 13 linux 6.6.15-1 —
Debian 12 linux 6.1.76-1 —
Debian 11 linux 5.10.216-1 DSA-5681-1
Debian 10 linux 4.19.316-1 DLA-3840-1
Debian 10 linux-5.10 5.10.216-1~deb10u1 DLA-3842-1
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1043.45 —
Ubuntu 22.04 LTS linux +1 5.15.0-106.116 USN-6766-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1061.67 USN-6766-3
Ubuntu 22.04 LTS linux-azure 5.15.0-1063.72 USN-6766-1
Ubuntu 22.04 LTS linux-azure-6.5 6.5.0-1022.23~22.04.1 USN-6819-1
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1063.72.1 USN-6766-1
Ubuntu 22.04 LTS linux-gcp 5.15.0-1059.67 USN-6766-1
Ubuntu 22.04 LTS linux-gcp-6.5 6.5.0-1022.24~22.04.1 USN-6818-1
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1058.63 USN-6766-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1044.51 USN-6766-1
Ubuntu 22.04 LTS linux-hwe-6.5 6.5.0-41.41~22.04.2 USN-6818-4
Ubuntu 22.04 LTS linux-ibm +1 5.15.0-1054.57 USN-6766-2, USN-6766-1
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1057.63 USN-6795-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.5 6.5.0-41.41.1~22.04.1 USN-6818-1
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1054.55 USN-6766-1
Ubuntu 22.04 LTS linux-nvidia-6.5 6.5.0-1021.22 USN-6818-3
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1026.26 —
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1015.15 —
Ubuntu 22.04 LTS linux-oem-6.5 6.5.0-1024.25 USN-6819-3
Ubuntu 22.04 LTS linux-oracle 5.15.0-1059.65 USN-6766-1
Ubuntu 22.04 LTS linux-oracle-6.5 6.5.0-1024.24~22.04.1 USN-6819-4
Ubuntu 22.04 LTS linux-riscv +22 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.5 6.5.0-40.40.1~22.04.1 —
Ubuntu 22.04 LTS linux-starfive-6.5 6.5.0-1015.16~22.04.1 USN-6819-1
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1030.34 —
Ubuntu 20.04 LTS linux 5.4.0-181.201 USN-6767-1
Ubuntu 20.04 LTS linux-aws 5.4.0-1124.134 USN-6767-1
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1061.67~20.04.1 USN-6766-3
Ubuntu 20.04 LTS linux-azure 5.4.0-1129.136 USN-6767-1
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1063.72~20.04.1 USN-6766-1
Ubuntu 20.04 LTS linux-azure-fde-5.15 5.15.0-1063.72~20.04.1.1 USN-6766-1
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1084.91 USN-6767-2
Ubuntu 20.04 LTS linux-gcp 5.4.0-1128.137 USN-6767-1
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1059.67~20.04.1 USN-6766-1
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop 5.4.0-1091.95 USN-6767-1
Ubuntu 20.04 LTS linux-gkeop-5.15 5.15.0-1044.51~20.04.1 USN-6766-1
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-106.116~20.04.1 USN-6766-2, USN-6766-1
Ubuntu 20.04 LTS linux-ibm 5.4.0-1071.76 USN-6767-1
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1054.57~20.04.1 USN-6766-1
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1058.64~20.04.1 USN-6828-1
Ubuntu 20.04 LTS linux-iot 5.4.0-1036.37 USN-6767-1
Ubuntu 20.04 LTS linux-kvm 5.4.0-1112.119 USN-6767-1
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1027.27~20.04.1 —
Ubuntu 20.04 LTS linux-oracle 5.4.0-1123.132 USN-6767-1
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1059.65~20.04.1 USN-6766-1
Ubuntu 20.04 LTS linux-raspi 5.4.0-1108.120 USN-6767-1
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1057.61~20.04.1 —
Ubuntu 20.04 LTS linux-xilinx-zynqmp 5.4.0-1043.47 USN-6767-1
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2001.1 —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1054.56 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1062.70 —
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1061.67+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1063.72+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-106.116+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1059.67+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1124.134+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1129.136+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1098.108 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1128.137+fips1 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-aws-fips 4.15.0-2114.120 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-azure-fips 4.15.0-2093.99 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips 4.15.0-1130.141 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-gcp-fips 4.15.0-2077.83 —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 18.04 LTS linux 4.15.0-232.244 USN-7185-1
Ubuntu Pro 18.04 LTS linux-aws 4.15.0-1176.189 USN-7185-1
Ubuntu Pro 18.04 LTS linux-aws-5.4 5.4.0-1124.134~18.04.1 USN-6767-1
Ubuntu Pro 18.04 LTS linux-azure-4.15 4.15.0-1184.199 USN-7185-2
Ubuntu Pro 18.04 LTS linux-azure-5.4 5.4.0-1129.136~18.04.1 USN-6767-1
Ubuntu Pro 18.04 LTS linux-gcp-4.15 4.15.0-1169.186 USN-7185-1
Ubuntu Pro 18.04 LTS linux-gcp-5.4 5.4.0-1128.137~18.04.1 USN-6767-1
Ubuntu Pro 18.04 LTS linux-hwe-5.4 5.4.0-181.201~18.04.1 USN-6767-1
Ubuntu Pro 18.04 LTS linux-ibm-5.4 5.4.0-1071.76~18.04.1 USN-6767-1
Ubuntu Pro 18.04 LTS linux-kvm 4.15.0-1159.164 USN-7185-1
Ubuntu Pro 18.04 LTS linux-oracle 4.15.0-1138.149 USN-7185-1
Ubuntu Pro 18.04 LTS linux-oracle-5.4 5.4.0-1123.132~18.04.1 USN-6767-1
Ubuntu Pro 18.04 LTS linux-raspi-5.4 5.4.0-1108.120~18.04.1 USN-6767-1
Ubuntu Pro 16.04 LTS linux-aws-hwe 4.15.0-1176.189~16.04.1 USN-7185-1
Ubuntu Pro 16.04 LTS linux-azure 4.15.0-1184.199~16.04.1 USN-7185-2
Ubuntu Pro 16.04 LTS linux-gcp 4.15.0-1169.186~16.04.1 USN-7185-1
Ubuntu Pro 16.04 LTS linux-hwe 4.15.0-232.244~16.04.1 USN-7185-1
Ubuntu Pro 16.04 LTS linux-oracle 4.15.0-1138.149~16.04.1 USN-7185-1
Ubuntu Pro 14.04 LTS linux-azure 4.15.0-1184.199~14.04.1 USN-7185-2
ReleasePackageFixed inAdvisory
RHEL 9 bpftool 7.3.0-427.13.1.el9_4 RHSA-2024:9315, RHSA-2024:2394
RHEL 9 kernel-headers +2 5.14.0-503.11.1.el9_5 RHSA-2024:9315
RHEL 9 rv +64 5.14.0-427.13.1.el9_4 RHSA-2024:9315, RHSA-2024:2394
RHEL 8 kernel-rt +12 4.18.0-553.16.1.rt7.357.el8_10 RHSA-2024:5102
RHEL 8 perf +26 4.18.0-553.16.1.el8_10 RHSA-2024:5101
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 8.8 EUS perf +26 4.18.0-477.70.1.el8_8 RHSA-2024:6206
RHEL 8.6 TUS perf +17 4.18.0-372.115.1.el8_6 RHSA-2024:5065
RHEL 8.6 E4S perf +25 4.18.0-372.115.1.el8_6 RHSA-2024:5065
RHEL 8.6 AUS perf +17 4.18.0-372.115.1.el8_6 RHSA-2024:5065

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 8 kernel-rt +11 4.18.0-553.16.1.rt7.357.el8_10 ALSA-2024:5102
AlmaLinux 8 perf +24 4.18.0-553.16.1.el8_10 ALSA-2024:5101

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 8 kernel 4.18.0-553.16.1.el8_10 RXSA-2024:5101, RLSA-2024:5101
Rocky Linux 8 kernel-rt 4.18.0-553.16.1.rt7.357.el8_10 RLSA-2024:5102
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +6 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.48.1 SUSE-SU-2024:1490-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.59.1.150500.6.25.7 SUSE-SU-2024:1480-1
SLES 12 SP5 kernel-azure +2 4.12.14-16.182.1 SUSE-SU-2024:1643-1
SLES 12 SP5 kernel-docs +4 4.12.14-122.216.1 SUSE-SU-2024:1870-1
Show 6 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 12 SP5 kernel-azure +2 4.12.14-16.182.1 SUSE-SU-2024:1643-1
SLES for SAP 12 SP5 kernel-syms +2 4.12.14-122.216.1 SUSE-SU-2024:1870-1
SLE Real Time 12 SP5 kernel-rt +3 4.12.14-10.182.1 SUSE-SU-2024:1646-1
SLE Micro 5.5 kernel-default 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.59.1.150500.6.25.7 SUSE-SU-2024:1480-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.47.1 SUSE-SU-2024:1466-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5-RT_Update_13 1-150500.11.3.1 SUSE-SU-2024:1466-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_12 1-150500.11.7.1 SUSE-SU-2024:1480-1
SLE Live Patching 12 SP5 kernel-default 4.12.14-122.216.1 SUSE-SU-2024:1870-1
SLE Live Patching 12 SP5 kgraft-patch-SLE12-SP5_Update_56 1-8.3.1 SUSE-SU-2024:1870-1
SUSE Real Time Module 15 SP5 kernel-rt +3 5.14.21-150500.13.47.1 SUSE-SU-2024:1466-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 dtb-aarch64 +10 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.48.1 SUSE-SU-2024:1490-1
openSUSE Leap 15.5 kernel-default-base 5.14.21-150500.55.59.1.150500.6.25.7 SUSE-SU-2024:1480-1
openSUSE Leap 15.5 kernel-rt +3 5.14.21-150500.13.47.1 SUSE-SU-2024:1466-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.1.77-99.164 1.0-0.amzn2023 ALAS2023-2024-517
Amazon Linux 2023 perf +14 6.1.77-99.164.amzn2023 ALAS2023-2024-517
Amazon Linux 2 kernel-livepatch-4.14.343-259.562 1.0-0.amzn2 ALAS2-2024-2549
Amazon Linux 2 perf +8 4.14.343-259.562.amzn2 ALAS2-2024-2549

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 8 perf +19 4.18.0-553.16.1.el8_10 ELSA-2024-5101

Advisories 42

References