CVE-2026-23400

Source
https://cve.org/CVERecord?id=CVE-2026-23400
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23400.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-23400
Downstream
Published
2026-03-29T12:55:50.660Z
Modified
2026-04-02T13:12:24.017302Z
Summary
rust_binder: call set_notification_done() without proc lock
Details

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

rustbinder: call setnotification_done() without proc lock

Consider the following sequence of events on a death listener: 1. The remote process dies and sends a BRDEADBINDER message. 2. The local process invokes the BCCLEARDEATHNOTIFICATION command. 3. The local process then invokes the BCDEADBINDERDONE. Then, the kernel will reply to the BCDEADBINDERDONE command with a BRCLEARDEATHNOTIFICATIONDONE reply using pushworkiflooper().

However, this can result in a deadlock if the current thread is not a looper. This is because deadbinderdone() still holds the proc lock during setnotificationdone(), which called pushworkiflooper(). Normally, pushworkiflooper() 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 setnotificationdone(). It was not intentional that it was held during that function to begin with.

I don't think this ever happens in Android because BCDEADBINDERDONE is only invoked in response to BRDEADBINDER messages, and the kernel always delivers BRDEADBINDER to a looper. So there's no scenario where Android userspace will call BCDEADBINDERDONE on a non-looper thread.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23400.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
eafedbc7c050c44744fbdf80bdf3315e860b7513
Fixed
dd109e3442817bc03ad1f3ffd541092f8c428141
Fixed
3be72099067d2cd4a0e089696f19780f75b2b88a
Fixed
2e303f0febb65a434040774b793ba8356698802b

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23400.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.18.0
Fixed
6.18.19
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
6.19.9

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23400.json"