CVE-2026-23400Linux内核中的rust_binder组件存在一个死锁漏洞。当远程进程死亡并发送BR_DEAD_BINDER消息,本地进程在非looper线程调用BC_CLEAR_DEATH_NOTIFICATION后紧接着调用BC_DEAD_BINDER_DONE时,内核在持有proc锁的情况下尝试通过工作队列投递回复,需再次获取proc锁,从而引发死锁。
该漏洞源于rust_binder驱动中锁的持有顺序不当。函数dead_binder_done()在执行set_notification_done()时仍持有proc锁。若当前线程不是looper,push_work_if_looper()会试图将回复投递到进程工作队列,这涉及再次获取proc锁。这种重入获取导致死锁(AB-BA模式),使得内核线程挂起,从而导致拒绝服务。虽然Android标准环境通常规避此场景,但在特定内核配置下仍可被触发。