Skip to content
OpenAdvisories
Unscored CVE-2023-52836 EUVD-2023-59550GHSA-xj3r-45pc-vrfq

locking/ww_mutex/test: Fix potential workqueue corruption

Published May 21, 2024 · Updated May 11, 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:

locking/ww_mutex/test: Fix potential workqueue corruption

In some cases running with the test-ww_mutex code, I was seeing
odd behavior where sometimes it seemed flush_workqueue was
returning before all the work threads were finished.

Often this would cause strange crashes as the mutexes would be
freed while they were being used.

Looking at the code, there is a lifetime problem as the
controlling thread that spawns the work allocates the
"struct stress" structures that are passed to the workqueue
threads. Then when the workqueue threads are finished,
they free the stress struct that was passed to them.

Unfortunately the workqueue work_struct node is in the stress
struct. Which means the work_struct is freed before the work
thread returns and while flush_workqueue is waiting.

It seems like a better idea to have the controlling thread
both allocate and free the stress structures, so that we can
be sure we don't corrupt the workqueue by freeing the structure
prematurely.

So this patch reworks the test to do so, and with this change
I no longer see the early flush_workqueue returns.

Affected products

VendorProductAffectedFixed
Linux Linux 4.11 4.14.331

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.8-1 —
Debian 13 linux 6.6.8-1 —
Debian 12 linux 6.1.64-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1037.39 —
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux +1 5.15.0-100.110 —
Ubuntu 22.04 LTS linux-aws 5.15.0-1056.61 —
Ubuntu 22.04 LTS linux-azure 5.15.0-1058.66 —
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1058.66.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1053.61 —
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1052.57 —
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1038.44 —
Ubuntu 22.04 LTS linux-ibm +1 5.15.0-1048.51 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1050.56 —
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1046.46 —
Ubuntu 22.04 LTS linux-nvidia-6.5 6.5.0-1014.14 —
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1025.25 —
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1012.12 —
Ubuntu 22.04 LTS linux-oracle 5.15.0-1053.59 —
Ubuntu 22.04 LTS linux-riscv +30 No fix yet —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1030.34 —
Ubuntu 20.04 LTS linux 5.4.0-173.191 —
Ubuntu 20.04 LTS linux-aws 5.4.0-1120.130 —
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1056.61~20.04.1 —
Ubuntu 20.04 LTS linux-azure 5.4.0-1126.133 —
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1058.66~20.04.2 —
Ubuntu 20.04 LTS linux-bluefield 5.4.0-1080.87 —
Ubuntu 20.04 LTS linux-gcp 5.4.0-1124.133 —
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1053.61~20.04.1 —
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 20.04 LTS linux-gkeop 5.4.0-1087.91 —
Ubuntu 20.04 LTS linux-gkeop-5.15 5.15.0-1038.44~20.04.1 —
Ubuntu 20.04 LTS linux-hwe-5.15 +1 5.15.0-100.110~20.04.1 —
Ubuntu 20.04 LTS linux-ibm 5.4.0-1067.72 —
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1048.51~20.04.1 —
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1050.56~20.04.1 —
Ubuntu 20.04 LTS linux-iot 5.4.0-1032.33 —
Ubuntu 20.04 LTS linux-kvm 5.4.0-1108.115 —
Ubuntu 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1025.25~20.04.1 —
Ubuntu 20.04 LTS linux-oracle 5.4.0-1119.128 —
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1053.59~20.04.1 —
Ubuntu 20.04 LTS linux-raspi 5.4.0-1104.116 —
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1051.55~20.04.1 —
Ubuntu 20.04 LTS linux-xilinx-zynqmp 5.4.0-1039.43 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1048.50 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1056.63 —
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-1056.61+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-100.110+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1055.63+fips2 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-aws-fips 5.4.0-1120.130+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-azure-fips 5.4.0-1126.133+fips1 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips 5.4.0-1094.104 —
Ubuntu Pro FIPS-updates 20.04 LTS linux-gcp-fips 5.4.0-1124.133+fips1 —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 18.04 LTS linux +5 No fix yet —
Ubuntu Pro 18.04 LTS linux-aws-5.4 5.4.0-1120.130~18.04.1 —
Ubuntu Pro 18.04 LTS linux-azure-5.4 5.4.0-1126.133~18.04.1 —
Ubuntu Pro 18.04 LTS linux-gcp-5.4 5.4.0-1124.133~18.04.1 —
Ubuntu Pro 18.04 LTS linux-hwe-5.4 5.4.0-173.191~18.04.1 —
Ubuntu Pro 18.04 LTS linux-ibm-5.4 5.4.0-1067.72~18.04.1 —
Ubuntu Pro 18.04 LTS linux-oracle-5.4 5.4.0-1119.128~18.04.1 —
Ubuntu Pro 18.04 LTS linux-raspi-5.4 5.4.0-1104.116~18.04.1 —
Ubuntu Pro 16.04 LTS linux-gcp +4 No fix yet —
Ubuntu Pro 14.04 LTS linux-azure No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP6 kernel-64kb 6.4.0-150600.23.14.1 SUSE-SU-2024:2571-1
SLES 15 SP6 kernel-azure +1 6.4.0-150600.8.8.2 SUSE-SU-2024:2896-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.14.2.150600.12.4.3 SUSE-SU-2024:2571-1
SLES 15 SP6 kernel-docs +5 6.4.0-150600.23.14.2 SUSE-SU-2024:2571-1
SLES 15 SP6 kernel-syms-azure 6.4.0-150600.8.8.1 SUSE-SU-2024:2896-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.0 kernel-default-base 6.4.0-17.1.1.51 SUSE-SU-2025:20008-1
SLE Micro 6.0 kernel-rt +1 6.4.0-9.1 SUSE-SU-2025:20028-1
SLE Micro 6.0 kernel-source +2 6.4.0-18.1 SUSE-SU-2025:20008-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.14.2 SUSE-SU-2024:2571-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_1 1-150600.1.5.1 SUSE-SU-2024:2973-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_2 1-150600.13.3.2 SUSE-SU-2024:2571-1
SUSE Real Time Module 15 SP6 kernel-rt +3 6.4.0-150600.10.5.1 SUSE-SU-2024:2973-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +1 6.4.0-150600.23.14.1 SUSE-SU-2024:2571-1
openSUSE Leap 15.6 kernel-azure +1 6.4.0-150600.8.8.2 SUSE-SU-2024:2896-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.14.2.150600.12.4.3 SUSE-SU-2024:2571-1
openSUSE Leap 15.6 kernel-docs +8 6.4.0-150600.23.14.2 SUSE-SU-2024:2571-1
openSUSE Leap 15.6 kernel-rt +3 6.4.0-150600.10.5.1 SUSE-SU-2024:2973-1
openSUSE Leap 15.6 kernel-syms-azure 6.4.0-150600.8.8.1 SUSE-SU-2024:2896-1

Advisories 8

References