Vulnerability · Published Mar 29, 2026 · Assigned by Linux

CVE-2026-23400rust_binder: call set_notification_done() without proc lock

Medium 5.5

In plain English

A medium-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.1% (higher than 1% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS NVD)5.5Medium
Exploit odds (30 days)<0.1%top 99.4% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: rust_binder: call set_notification_done() without proc lock Consider the following sequence of events on a death listener: 1. The remote process dies and sends a BR_DEAD_BINDER message. 2. The local process invokes the BC_CLEAR_DEATH_NOTIFICATION command. 3. The local process then invokes the BC_DEAD_BINDER_DONE. Then, the kernel will reply to the BC_DEAD_BINDER_DONE command with a BR_CLEAR_DEATH_NOTIFICATION_DONE reply using push_work_if_looper(). However, this can result in a deadlock if the current thread is not a looper. This is because dead_binder_done() still holds the proc lock during set_notification_done(), which called push_work_if_looper(). Normally, push_work_if_looper() takes the thread lock, which is fine to take under the proc lock. But if the current thread is not a looper, then it falls back to delivering the reply to the process work queue, which involves taking the proc lock. Since the proc lock is already held, this is a deadlock. Fix this by releasing the proc lock during set_notification_done(). It was not intentional that it was held during that function to begin with. I don't think this ever happens in Android because BC_DEAD_BINDER_DONE is only invoked in response to BR_DEAD_BINDER messages, and the kernel always delivers BR_DEAD_BINDER to a looper. So there's no scenario where Android userspace will call BC_DEAD_BINDER_DONE on a non-looper thread.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux6.19.10-1DEBIAN-CVE-2026-23400
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-23400
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-23400

Affected products (as reported)

VendorProductVersions
Linux Linux eafedbc7c050c44744fbdf80bdf3315e860b7513 – before dd109e3442817bc03ad1f3ffd541092f8c428141eafedbc7c050c44744fbdf80bdf3315e860b7513 – before 3be72099067d2cd4a0e089696f19780f75b2b88aeafedbc7c050c44744fbdf80bdf3315e860b7513 – before 2e303f0febb65a434040774b793ba8356698802b
Linux Linux 6.18

References