{"id":"CVE-2026-99075","kind":"vulnerability","aliases":["CVE-2026-99075"],"related":[],"title":"Linux kernel Rust Binder: dropped node refcount updates on thread exit","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nrust_binder: reschedule node refcount update on thread exit\n\nWhen a thread exits via BINDER_THREAD_EXIT, its pending work items are\ncancelled. If a thread exits while holding a pending node refcount\nincrement (e.g. pushed as deferred work to that thread), the refcount\nincrement was previously dropped because Node::cancel() and\nNodeWrapper::cancel() were no-ops.\n\nDropping the refcount update leaves the node's delivery state and count\nstate desynchronized, and userspace will not receive the notification,\nwhich can cause the node to never be freed from the process's nodes tree\nwhen all external references are dropped.\n\nFix this by implementing DeliverToRead::cancel() for Node and NodeWrapper\nto move the pending refcount update to the process's work queue on thread\nexit so another thread can deliver it to userspace.","summary":"In the Linux kernel's Rust Binder driver, a thread exiting with BINDER_THREAD_EXIT could drop a pending node refcount increment, because cancelling pending work was a no-op. The result is a desynchronized node state where userspace is not notified and the node may never be freed.","severity":"unknown","cvss":null,"epss":0.00206,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["android","binder","linux-kernel","runtime"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-23T13:17:31+00:00","first_seen_at":"2026-10-23T21:57:34+00:00","triaged_at":"2026-10-25T04:53:42+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"runtime","confidence":0.5,"triage":{"at":"2026-10-25T04:53:42Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel Rust Binder: dropped node refcount updates on thread exit","impact":"low","summary":"In the Linux kernel's Rust Binder driver, a thread exiting with BINDER_THREAD_EXIT could drop a pending node refcount increment, because cancelling pending work was a no-op. The result is a desynchronized node state where userspace is not notified and the node may never be freed.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","binder","android"],"confidence":0.5,"needs_auth":"unknown","worst_case":"unknown","analyst_note":"NVD entry only, no severity or affected kernel versions given; check the kernel stable commit that adds DeliverToRead::cancel() for Node and NodeWrapper to get fixed versions.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"unknown","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000536,"input_tokens":3509,"output_tokens":371,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-99075':14A,17A 'android':18B 'anoth':210C 'binder':4A,19B,30B,36B,85C,98C 'cancel':47B,106C,134C,137C,189C 'caus':165C 'could':39B 'count':153C 'cve':12A,15A 'defer':121C 'deliv':213C 'deliveri':150C 'delivertoread':188C 'desynchron':59B,155C 'driver':31B 'drop':5A,40B,131C,142C,183C 'e.g':118C 'exit':11A,34B,38B,92C,96C,100C,110C,208C 'extern':180C 'fix':184C 'follow':79C 'freed':73B,171C 'hold':112C 'implement':187C 'increment':45B,117C,128C 'item':104C 'kernel':2A,22B,27B,77C 'leav':146C 'linux':1A,21B,26B,76C 'linux-kernel':20B 'may':70B 'move':195C 'never':71B,169C 'no-op':52B,139C 'node':6A,43B,60B,69B,87C,115C,133C,148C,167C,176C,191C 'nodewrapp':136C,193C 'notif':162C 'notifi':66B 'op':54B,141C 'pend':42B,48B,102C,114C,197C 'previous':130C 'process':174C,202C 'push':119C 'queue':205C 'receiv':160C 'refcount':7A,44B,88C,116C,127C,144C,198C 'refer':181C 'reschedul':86C 'resolv':83C 'result':56B 'runtim':23B 'rust':3A,29B,84C 'state':61B,151C,154C 'thread':10A,33B,37B,91C,95C,99C,109C,125C,207C,211C 'tree':177C 'updat':8A,89C,145C,199C 'userspac':63B,157C,216C 'via':97C 'vulner':80C 'work':49B,103C,122C,204C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T13:17:31+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99075","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99075","severity":null,"published_at":"2026-10-23T13:17:31+00:00","modified_at":"2026-10-23T13:17:31+00:00","first_seen_at":"2026-10-23T21:57:34+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-99075","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-99075","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}