{"id":"CVE-2026-64469","state":"PUBLISHED","title":"binder: fix UAF in binder_thread_release()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbinder: fix UAF in binder_thread_release()\n\nWhen a thread exits, binder_thread_release() walks its transaction stack\nto clear the t->from and t->to_proc that correspond with the exiting\nthread. However, a process dying in parallel might attempt to kfree some\nof these transactions. And if one of them has no associated t->to_proc,\nthe t->to_proc->inner_lock will not be acquired.\n\nThis means that transaction accesses in binder_thread_release() after\nt->to_proc has been cleared might race with binder_free_transaction()\nand cause a use-after-free error as reported by KASAN:\n\n  ==================================================================\n  BUG: KASAN: slab-use-after-free in binder_thread_release+0x5d0/0x798\n  Write of size 8 at addr ffff000016627500 by task X/715\n\n  CPU: 17 UID: 0 PID: 715 Comm: X Not tainted 7.1.0-rc5-00149-g8fde5d1d47f6 #30 PREEMPT\n  Hardware name: linux,dummy-virt (DT)\n  Call trace:\n   binder_thread_release+0x5d0/0x798\n   binder_ioctl+0x12c0/0x299c\n   [...]\n\n  Allocated by task 717 on cpu 18 at 67.267803s:\n   __kasan_kmalloc+0xa0/0xbc\n   __kmalloc_cache_noprof+0x174/0x444\n   binder_transaction+0x554/0x8150\n   binder_thread_write+0xa30/0x4354\n   binder_ioctl+0x20f0/0x299c\n   [...]\n\n  Freed by task 202 on cpu 18 at 90.416221s:\n   __kasan_slab_free+0x58/0x80\n   kfree+0x1a0/0x4a4\n   binder_free_transaction+0x150/0x294\n   binder_send_failed_reply+0x398/0x6d8\n   binder_release_work+0x3e4/0x4ec\n   binder_deferred_func+0xbd8/0x104c\n   [...]\n  ==================================================================\n\nIn order to avoid this, make sure that binder_free_transaction() reads\nthe t->to_proc under the transaction lock. This will serialize the\ntransaction release with the accesses in binder_thread_release(). Plus,\nit matches the documented locking rules for @to_proc.","publishedAt":"2026-07-25T08:51:34.025Z","updatedAt":"2026-08-17T04:56:14.927Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"1f96f8c0a6ed4f6d01d3dd29ad0cbf08dde96082","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"df1a17abba8d6fac5f965adcb8113ceace6e4949","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"38e1a71728e5795b670cc159c18e286a40aeebb4","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"faa070c7ad8ba25dcd0b12d7cdbb419e336f5391","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"e63032dc715026a96bcaa13d375a8e15c91caa84","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"ea02df466df60ecd758eb3b4df3f0cadc5c886ce","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"ef5439ba5b9ac93349f5df12ef88b42a0ce26340","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"114a116aaa5f0295376cdf12da743c5bce3b20ce","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/android/binder.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.14","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/android/binder.c"]}],"references":["https://git.kernel.org/stable/c/1f96f8c0a6ed4f6d01d3dd29ad0cbf08dde96082","https://git.kernel.org/stable/c/df1a17abba8d6fac5f965adcb8113ceace6e4949","https://git.kernel.org/stable/c/38e1a71728e5795b670cc159c18e286a40aeebb4","https://git.kernel.org/stable/c/faa070c7ad8ba25dcd0b12d7cdbb419e336f5391","https://git.kernel.org/stable/c/e63032dc715026a96bcaa13d375a8e15c91caa84","https://git.kernel.org/stable/c/ea02df466df60ecd758eb3b4df3f0cadc5c886ce","https://git.kernel.org/stable/c/ef5439ba5b9ac93349f5df12ef88b42a0ce26340","https://git.kernel.org/stable/c/114a116aaa5f0295376cdf12da743c5bce3b20ce"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64469.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64469","state":"PUBLISHED","datePublished":"2026-07-25T08:51:34.025Z","dateUpdated":"2026-08-17T04:56:14.927Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.790Z"},"containers":{"cna":{"title":"binder: fix UAF in binder_thread_release()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbinder: fix UAF in binder_thread_release()\n\nWhen a thread exits, binder_thread_release() walks its transaction stack\nto clear the t->from and t->to_proc that correspond with the exiting\nthread. However, a process dying in parallel might attempt to kfree some\nof these transactions. And if one of them has no associated t->to_proc,\nthe t->to_proc->inner_lock will not be acquired.\n\nThis means that transaction accesses in binder_thread_release() after\nt->to_proc has been cleared might race with binder_free_transaction()\nand cause a use-after-free error as reported by KASAN:\n\n  ==================================================================\n  BUG: KASAN: slab-use-after-free in binder_thread_release+0x5d0/0x798\n  Write of size 8 at addr ffff000016627500 by task X/715\n\n  CPU: 17 UID: 0 PID: 715 Comm: X Not tainted 7.1.0-rc5-00149-g8fde5d1d47f6 #30 PREEMPT\n  Hardware name: linux,dummy-virt (DT)\n  Call trace:\n   binder_thread_release+0x5d0/0x798\n   binder_ioctl+0x12c0/0x299c\n   [...]\n\n  Allocated by task 717 on cpu 18 at 67.267803s:\n   __kasan_kmalloc+0xa0/0xbc\n   __kmalloc_cache_noprof+0x174/0x444\n   binder_transaction+0x554/0x8150\n   binder_thread_write+0xa30/0x4354\n   binder_ioctl+0x20f0/0x299c\n   [...]\n\n  Freed by task 202 on cpu 18 at 90.416221s:\n   __kasan_slab_free+0x58/0x80\n   kfree+0x1a0/0x4a4\n   binder_free_transaction+0x150/0x294\n   binder_send_failed_reply+0x398/0x6d8\n   binder_release_work+0x3e4/0x4ec\n   binder_deferred_func+0xbd8/0x104c\n   [...]\n  ==================================================================\n\nIn order to avoid this, make sure that binder_free_transaction() reads\nthe t->to_proc under the transaction lock. This will serialize the\ntransaction release with the accesses in binder_thread_release(). Plus,\nit matches the documented locking rules for @to_proc."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"1f96f8c0a6ed4f6d01d3dd29ad0cbf08dde96082","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"df1a17abba8d6fac5f965adcb8113ceace6e4949","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"38e1a71728e5795b670cc159c18e286a40aeebb4","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"faa070c7ad8ba25dcd0b12d7cdbb419e336f5391","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"e63032dc715026a96bcaa13d375a8e15c91caa84","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"ea02df466df60ecd758eb3b4df3f0cadc5c886ce","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"ef5439ba5b9ac93349f5df12ef88b42a0ce26340","versionType":"git"},{"version":"7a4408c6bd3eb1dafba67986259191be081e3efb","status":"affected","lessThan":"114a116aaa5f0295376cdf12da743c5bce3b20ce","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/android/binder.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.14","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/android/binder.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/1f96f8c0a6ed4f6d01d3dd29ad0cbf08dde96082"},{"url":"https://git.kernel.org/stable/c/df1a17abba8d6fac5f965adcb8113ceace6e4949"},{"url":"https://git.kernel.org/stable/c/38e1a71728e5795b670cc159c18e286a40aeebb4"},{"url":"https://git.kernel.org/stable/c/faa070c7ad8ba25dcd0b12d7cdbb419e336f5391"},{"url":"https://git.kernel.org/stable/c/e63032dc715026a96bcaa13d375a8e15c91caa84"},{"url":"https://git.kernel.org/stable/c/ea02df466df60ecd758eb3b4df3f0cadc5c886ce"},{"url":"https://git.kernel.org/stable/c/ef5439ba5b9ac93349f5df12ef88b42a0ce26340"},{"url":"https://git.kernel.org/stable/c/114a116aaa5f0295376cdf12da743c5bce3b20ce"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Exploitation is reached through local Binder device ioctls, including BINDER_WRITE_READ and BINDER_THREAD_EXIT, rather than network input.\nAC:L - The attacker can control the communicating processes, nested synchronous transactions, thread exit, and concurrent target-process death, allowing repeated attempts at the race.\nPR:L - No capability check protects the vulnerable ioctls; ordinary Android applications can access Binder, and unprivileged user-namespace root can create private Binder devices through BinderFS.\nUI:N - The attacker directly creates the transaction stack and triggers both teardown paths without requiring any victim action.\nS:U - Exploitation compromises the kernel hosting the vulnerable Binder subsystem and constitutes standard local privilege escalation within the same security authority.\nC:H - The freed binder_transaction can be reclaimed with attacker-influenced contents, enabling kernel-memory access primitives and ultimately disclosure of arbitrary kernel or process memory.\nI:H - binder_thread_release() continues writing through the freed transaction, including pointer fields and the attacker-influenceable t->buffer path, permitting kernel-memory corruption and potential arbitrary write or code execution.\nA:H - The UAF can directly cause a kernel oops or panic and can be triggered repeatedly by an unprivileged local attacker."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:56:14.927Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"6.12.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}