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.
Analysis and contextual insights are available on OpenCVE Cloud.
No vendor fix or workaround currently provided.
Additional remediation guidance may be available on OpenCVE Cloud.
Tracking
Sign in to view the affected projects.
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-3840-1 | linux security update |
Debian DLA |
DLA-3841-1 | linux-5.10 security update |
Ubuntu USN |
USN-6725-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6725-2 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-6726-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6726-2 | Linux kernel (IoT) vulnerabilities |
Ubuntu USN |
USN-6726-3 | Linux kernel (Xilinx ZynqMP) vulnerabilities |
Ubuntu USN |
USN-6818-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6818-2 | Linux kernel (ARM laptop) vulnerabilities |
Ubuntu USN |
USN-6818-3 | Linux kernel (NVIDIA) vulnerabilities |
Ubuntu USN |
USN-6818-4 | Linux kernel (HWE) vulnerabilities |
Ubuntu USN |
USN-6819-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6819-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6819-3 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-6819-4 | Linux kernel (Oracle) vulnerabilities |
Mon, 10 Mar 2025 15:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Debian
Debian debian Linux Linux Linux linux Kernel |
|
| CPEs | cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
|
| Vendors & Products |
Debian
Debian debian Linux Linux Linux linux Kernel |
|
| Metrics |
cvssV3_1
|
cvssV3_1
|
Fri, 22 Nov 2024 12:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Mon, 04 Nov 2024 13:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Mon, 04 Nov 2024 13:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2026-05-11T19:30:17.511Z
Reserved: 2024-03-06T09:52:12.088Z
Link: CVE-2023-52609
Updated: 2024-08-02T23:03:21.321Z
Status : Analyzed
Published: 2024-03-18T11:15:07.743
Modified: 2025-03-10T15:10:00.520
Link: CVE-2023-52609
OpenCVE Enrichment
No data.
Debian DLA
Ubuntu USN