CVE-2023-52609
NoneCVSS
—
EPSS
0.2%
Published
Mar 18, 2024
CISA due date
—
Cloudanix analysis
A timing flaw in the Linux kernel can delay cleanup when one process exits while another is communicating with it, causing slow or stuck notifications in affected systems.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition between mmput() and do_exit() in binder_update_page_range() allows a pinned remote mm to trigger exit_mmap() and fput() from the wrong task context, queuing ____fput() work as TWA_RESUME on a task that then sleeps indefinitely waiting for a reply from the now-dead peer, blocking binder_deferred_release() and all associated death notifications.
Why it matters to the business
Systems relying on binder IPC experience prolonged delays in process death notification delivery and resource cleanup, which can stall dependent services, increase memory pressure, and complicate container or VM orchestration on affected Linux and Android kernels.
How an attack unfolds
An attacker arranges two binder-connected tasks so that one performs mmget_not_zero() on the other's address space while the target task simultaneously exits; the resulting cross-task fput() work is deferred on a thread that blocks in binder, postponing all death notifications until an unrelated binder transaction wakes it.
How to fix it
Upgrade the Linux kernel to commit 95b1d336b0642198b56836b89908d07b9a0c9608 or later. For AlmaLinux 8 deployments, update the listed packages to the exact fixed module versions: fuse-overlayfs-1.4.0-2.module_el8.6.0+2876+9ed4eae2, criu-3.15-1.module_el8.6.0+2876+9ed4eae2, slirp4netns-1.1.8-1.module_el8.6.0+2876+9ed4eae2, conmon-2:2.0.26-1.module_el8.6.0+2876+9ed4eae2 and equivalent updates for the remaining affected container packages.
How to confirm the fix worked
Confirm the running kernel contains commit 95b1d336b0642198b56836b89908d07b9a0c9608, verify package versions match the fixed module strings above, and exercise binder death-notification paths under concurrent exit to ensure release work completes promptly.
Typical attack path
- Establish binder connection between attacker-controlled task A and target task B
- Trigger concurrent mmget_not_zero() in A and do_exit()/exit_mm()/mmput() in B
- Force Task A to sleep inside binder waiting for a reply from the now-dead B
- Observe delayed execution of binder_deferred_release() and death notifications
How to detect it
Search kernel logs and binder debugfs for prolonged stalls between process exit and delivery of death notifications; correlate with tasks blocked inside binder_deferred_release() or waiting on TWA_RESUME work.
What your security team should do
- Prioritize kernel and container runtime updates on all systems exposing binder or using the listed AlmaLinux 8 modules
- Monitor upstream stable trees for additional backports of the mmput_async() fix
- Review container orchestration workloads for heavy binder usage and schedule maintenance windows before the next patch cycle
The record
In the Linux kernel, the following vulnerability has been resolved: binder: fix race between mmput() and do_exit() Task A calls binder_update_page_range() to allocate and insert pages on a remote address space from Task B. For this, Task A pins the remote mm via mmget_not_zero() first. This can race with Task B do_exit() and the final mmput() refcount decrement will come from Task A. Task A | Task B ------------------+------------------ mmget_not_zero() | | do_exit() | exit_mm() | mmput() mmput() | exit_mmap() | remove_vma() | fput() | In this case, the work of ____fput() from Task B is queued up in Task A as TWA_RESUME. So in theory, Task A returns to userspace and the cleanup work gets executed. However, Task A instead sleep, waiting for a reply from Task B that never comes (it's dead). This means the binder_deferred_release() is blocked until an unrelated binder event forces Task A to go back to userspace. All the associated death notifications will also be delayed until then. In order to fix this use mmput_async() that will schedule the work in the corresponding mm->async_put_work WQ instead of Task A.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | linux | 0 | 4.19.316-1 |
| Debian:10 | linux-5.10 | 0 | 5.10.209-2~deb10u1 |
| Debian:11 | linux | 0 | 5.10.209-1 |
| Debian:12 | linux | 0 | 6.1.76-1 |
| Debian:13 | linux | 0 | 6.6.15-1 |
| Linux | Kernel | 2.6.29 | 4.19.306 |
| Ubuntu:16.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-aws-5.0 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-aws-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:18.04:LTS | linux-azure-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-azure-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gke-4.15 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gke-5.4 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gkeop-5.4 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oem | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oracle-5.0 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oracle-5.3 | 0 | No fix |
| Ubuntu:20.04:LTS | linux | 0 | 5.4.0-176.196 |
| Ubuntu:20.04:LTS | linux-aws | 0 | 5.4.0-1122.132 |
| Ubuntu:20.04:LTS | linux-aws-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-aws-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-aws-5.15 | 0 | 5.15.0-1057.63~20.04.1 |
| Ubuntu:20.04:LTS | linux-aws-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure | 0 | 5.4.0-1127.134 |
| Ubuntu:20.04:LTS | linux-azure-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-5.15 | 0 | 5.15.0-1060.69~20.04.1 |
| Ubuntu:20.04:LTS | linux-azure-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-fde-5.15 | 0 | 5.15.0-1060.69~20.04.1.1 |
| Ubuntu:20.04:LTS | linux-bluefield | 0 | 5.4.0-1082.89 |
| Ubuntu:20.04:LTS | linux-gcp | 0 | 5.4.0-1126.135 |
| Ubuntu:20.04:LTS | linux-gcp-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gcp-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gcp-5.15 | 0 | 5.15.0-1055.63~20.04.1 |
| Ubuntu:20.04:LTS | linux-gcp-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gke | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gke-5.15 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gkeop | 0 | 5.4.0-1089.93 |
| Ubuntu:20.04:LTS | linux-gkeop-5.15 | 0 | 5.15.0-1040.46~20.04.1 |
| Ubuntu:20.04:LTS | linux-hwe-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-hwe-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-hwe-5.15 | 0 | 5.15.0-102.112~20.04.1 |
| Ubuntu:20.04:LTS | linux-hwe-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-ibm | 0 | 5.4.0-1069.74 |
| Ubuntu:20.04:LTS | linux-ibm-5.15 | 0 | 5.15.0-1050.53~20.04.1 |
| Ubuntu:20.04:LTS | linux-intel-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-intel-iotg-5.15 | 0 | 5.15.0-1052.58~20.04.1 |
| Ubuntu:20.04:LTS | linux-iot | 0 | 5.4.0-1034.35 |
| Ubuntu:20.04:LTS | linux-kvm | 0 | 5.4.0-1110.117 |
| Ubuntu:20.04:LTS | linux-lowlatency-hwe-5.15 | 0 | 5.15.0-102.112~20.04.1 |
| Ubuntu:20.04:LTS | linux-nvidia-tegra-5.15 | 0 | 5.15.0-1025.25~20.04.1 |
| Ubuntu:20.04:LTS | linux-oem-5.10 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-oem-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-oem-5.14 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-oem-5.6 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-oracle | 0 | 5.4.0-1121.130 |
| Ubuntu:20.04:LTS | linux-oracle-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-oracle-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-oracle-5.15 | 0 | 5.15.0-1055.61~20.04.1 |
| Ubuntu:20.04:LTS | linux-oracle-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-raspi | 0 | 5.4.0-1106.118 |
| Ubuntu:20.04:LTS | linux-raspi2 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:20.04:LTS | linux-riscv-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-riscv-5.15 | 0 | 5.15.0-1053.57~20.04.1 |
| Ubuntu:20.04:LTS | linux-riscv-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-xilinx-zynqmp | 0 | 5.4.0-1041.45 |
| Ubuntu:22.04:LTS | linux | 0 | 5.15.0-102.112 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-aws | 0 | 5.15.0-1057.63 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-aws-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-aws-6.5 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-aws-6.8 | 0 | 6.8.0-1009.9~22.04.2 |
| Ubuntu:22.04:LTS | linux-azure | 0 | 5.15.0-1060.69 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-azure-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-azure-6.5 | 0 | 6.5.0-1022.23~22.04.1 |
| Ubuntu:22.04:LTS | linux-azure-6.8 | 0 | 6.8.0-1008.8~22.04.1 |
| Ubuntu:22.04:LTS | linux-azure-fde | 0 | 5.15.0-1060.69.1 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-azure-fde-6.8 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-gcp | 0 | 5.15.0-1055.63 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-gcp-6.5 | 0 | 6.5.0-1022.24~22.04.1 |
| Ubuntu:22.04:LTS | linux-gcp-6.8 | 0 | 6.8.0-1010.11~22.04.1 |
| Ubuntu:22.04:LTS | linux-gke | 0 | 5.15.0-1054.59 |
| Ubuntu:22.04:LTS | linux-gkeop | 0 | 5.15.0-1040.46 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-hwe-6.5 | 0 | 6.5.0-41.41~22.04.2 |
| Ubuntu:22.04:LTS | linux-hwe-6.8 | 0 | 6.8.0-38.38~22.04.1 |
| Ubuntu:22.04:LTS | linux-ibm | 0 | 5.15.0-1050.53 |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-intel-iotg | 0 | 5.15.0-1052.58 |
| Ubuntu:22.04:LTS | linux-kvm | 0 | 5.15.0-1054.59 |
| Ubuntu:22.04:LTS | linux-lowlatency | 0 | 5.15.0-102.112 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.5 | 0 | 6.5.0-41.41.1~22.04.1 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.8 | 0 | 6.8.0-38.38.1~22.04.2 |
| Ubuntu:22.04:LTS | linux-nvidia | 0 | 5.15.0-1048.48 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-nvidia-6.5 | 0 | 6.5.0-1021.22 |
| Ubuntu:22.04:LTS | linux-nvidia-6.8 | 0 | 6.8.0-1008.8~22.04.1 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra | 0 | 5.15.0-1025.25 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra-igx | 0 | 5.15.0-1012.12 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-oem-6.0 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-oem-6.1 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-oem-6.5 | 0 | 6.5.0-1024.25 |
| Ubuntu:22.04:LTS | linux-oem-6.5 | 0 | 6.5.0-1022.23 |
| Ubuntu:22.04:LTS | linux-oracle | 0 | 5.15.0-1055.61 |
| Ubuntu:22.04:LTS | linux-oracle-6.5 | 0 | 6.5.0-1024.24~22.04.1 |
| Ubuntu:22.04:LTS | linux-oracle-6.8 | 0 | 6.8.0-1006.6~22.04.3 |
| Ubuntu:22.04:LTS | linux-raspi | 0 | 5.15.0-1050.53 |
| Ubuntu:22.04:LTS | linux-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-riscv-6.5 | 0 | 6.5.0-40.40.1~22.04.1 |
| Ubuntu:22.04:LTS | linux-riscv-6.8 | 0 | 6.8.0-38.38.1~22.04.1 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | 0 | No fix |
| Ubuntu:22.04:LTS | linux-starfive-6.5 | 0 | 6.5.0-1015.16~22.04.1 |
| Ubuntu:22.04:LTS | linux-xilinx-zynqmp | 0 | No fix |
| Ubuntu:22.04:LTS | linux-xilinx-zynqmp | 0 | 5.15.0-1030.34 |
| Ubuntu:22.04:LTS:for:NVIDIA:BlueField | linux-bluefield | 0 | 5.15.0-1040.42 |
| Ubuntu:23.10 | linux | 0 | 6.5.0-41.41 |
| Ubuntu:23.10 | linux-aws | 0 | 6.5.0-1021.21 |
| Ubuntu:23.10 | linux-azure | 0 | 6.5.0-1022.23 |
| Ubuntu:23.10 | linux-gcp | 0 | 6.5.0-1022.24 |
| Ubuntu:23.10 | linux-laptop | 0 | 6.5.0-1017.20 |
| Ubuntu:23.10 | linux-lowlatency | 0 | 6.5.0-41.41.1 |
| Ubuntu:23.10 | linux-oracle | 0 | 6.5.0-1024.24 |
| Ubuntu:23.10 | linux-raspi | 0 | 6.5.0-1018.21 |
| Ubuntu:23.10 | linux-starfive | 0 | 6.5.0-1015.16 |
| Ubuntu:24.04:LTS | linux | 0 | 6.8.0-11.11 |
| Ubuntu:24.04:LTS | linux-aws | 0 | 6.8.0-1001.1 |
| Ubuntu:24.04:LTS | linux-azure | 0 | 6.8.0-1001.1 |
| Ubuntu:24.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:24.04:LTS | linux-gcp | 0 | 6.8.0-1002.2 |
| Ubuntu:24.04:LTS | linux-gke | 0 | 6.8.0-1003.5 |
| Ubuntu:24.04:LTS | linux-gkeop | 0 | 6.8.0-1001.3 |
| Ubuntu:24.04:LTS | linux-ibm | 0 | 6.8.0-1001.1 |
| Ubuntu:24.04:LTS | linux-lowlatency | 0 | 6.8.0-7.7.1 |
| Ubuntu:24.04:LTS | linux-nvidia | 0 | 6.8.0-1007.7 |
| Ubuntu:24.04:LTS | linux-nvidia-lowlatency | 0 | 6.8.0-1009.9.1 |
| Ubuntu:24.04:LTS | linux-oem-6.11 | 0 | 6.11.0-1007.7 |
| Ubuntu:24.04:LTS | linux-oem-6.8 | 0 | 6.8.0-1003.3 |
| Ubuntu:24.04:LTS | linux-oracle | 0 | 6.8.0-1001.1 |
| Ubuntu:24.04:LTS | linux-raspi | 0 | 6.8.0-1001.1 |
| Ubuntu:24.04:LTS | linux-raspi-realtime | 0 | No fix |
| Ubuntu:24.04:LTS | linux-realtime | 0 | 6.8.0-1008.19 |
| Ubuntu:24.04:LTS | linux-riscv | 0 | 6.8.0-20.20.1 |
| Ubuntu:24.10 | linux | 0 | 6.8.0-31.31 |
| Ubuntu:24.10 | linux-aws | 0 | 6.8.0-1008.8 |
| Ubuntu:24.10 | linux-azure | 0 | 6.8.0-1007.7 |
| Ubuntu:24.10 | linux-gcp | 0 | 6.8.0-1007.7 |
| Ubuntu:24.10 | linux-lowlatency | 0 | 6.8.0-31.31.1 |
| Ubuntu:24.10 | linux-oracle | 0 | 6.8.0-1005.5 |
| Ubuntu:24.10 | linux-raspi | 0 | 6.8.0-1004.4 |
| Ubuntu:24.10 | linux-realtime | 0 | 6.11.0-1001.1 |
| Ubuntu:24.10 | linux-riscv | 0 | 6.8.0-31.31.1 |
| Ubuntu:Nvidia-BlueField:22.04:LTS | linux-bluefield | 0 | 5.15.0-1040.42 |
| Ubuntu:Pro:14.04:LTS | linux | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | linux-aws | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | linux-lts-xenial | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-aws | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-aws-hwe | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-kvm | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-oracle | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-aws | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-aws-5.0 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-aws-5.3 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-aws-5.4 | 0 | 5.4.0-1122.132~18.04.1 |
| Ubuntu:Pro:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-azure-4.15 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-azure-5.3 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-azure-5.4 | 0 | 5.4.0-1127.134~18.04.1 |
| Ubuntu:Pro:18.04:LTS | linux-azure-edge | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp-4.15 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp-5.3 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp-5.4 | 0 | 5.4.0-1126.135~18.04.1 |
| Ubuntu:Pro:18.04:LTS | linux-gke-4.15 | 0 | No fix |
Related vulnerabilities
- CVE-2023-52340 The IPv6 implementation in the Linux kernel before 6.3 has a net/ipv6/route.c max_size… Also affects linux
- CVE-2024-39292 In the Linux kernel, the following vulnerability has been resolved: um: Add winch to… Also affects linux
- CVE-2024-38780 In the Linux kernel, the following vulnerability has been resolved: dma-buf/sw-sync… Also affects linux
- CVE-2024-36288 In the Linux kernel, the following vulnerability has been resolved: SUNRPC: Fix loop… Also affects linux
- CVE-2024-38633 In the Linux kernel, the following vulnerability has been resolved: serial: max3100… Also affects linux
- CVE-2024-38634 In the Linux kernel, the following vulnerability has been resolved: serial: max3100: Lock… Also affects linux
- CVE-2024-38637 In the Linux kernel, the following vulnerability has been resolved: greybus: lights… Also affects linux
- CVE-2024-38659 In the Linux kernel, the following vulnerability has been resolved: enic: Validate length… Also affects linux