{"id":"CVE-2026-23184","state":"PUBLISHED","title":"binder: fix UAF in binder_netlink_report()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbinder: fix UAF in binder_netlink_report()\n\nOneway transactions sent to frozen targets via binder_proc_transaction()\nreturn a BR_TRANSACTION_PENDING_FROZEN error but they are still treated\nas successful since the target is expected to thaw at some point. It is\nthen not safe to access 't' after BR_TRANSACTION_PENDING_FROZEN errors\nas the transaction could have been consumed by the now thawed target.\n\nThis is the case for binder_netlink_report() which derreferences 't'\nafter a pending frozen error, as pointed out by the following KASAN\nreport:\n\n  ==================================================================\n  BUG: KASAN: slab-use-after-free in binder_netlink_report.isra.0+0x694/0x6c8\n  Read of size 8 at addr ffff00000f98ba38 by task binder-util/522\n\n  CPU: 4 UID: 0 PID: 522 Comm: binder-util Not tainted 6.19.0-rc6-00015-gc03e9c42ae8f #1 PREEMPT\n  Hardware name: linux,dummy-virt (DT)\n  Call trace:\n   binder_netlink_report.isra.0+0x694/0x6c8\n   binder_transaction+0x66e4/0x79b8\n   binder_thread_write+0xab4/0x4440\n   binder_ioctl+0x1fd4/0x2940\n   [...]\n\n  Allocated by task 522:\n   __kmalloc_cache_noprof+0x17c/0x50c\n   binder_transaction+0x584/0x79b8\n   binder_thread_write+0xab4/0x4440\n   binder_ioctl+0x1fd4/0x2940\n   [...]\n\n  Freed by task 488:\n   kfree+0x1d0/0x420\n   binder_free_transaction+0x150/0x234\n   binder_thread_read+0x2d08/0x3ce4\n   binder_ioctl+0x488/0x2940\n   [...]\n  ==================================================================\n\nInstead, make a transaction copy so the data can be safely accessed by\nbinder_netlink_report() after a pending frozen error. While here, add a\ncomment about not using t->buffer in binder_netlink_report().","publishedAt":"2026-02-14T16:27:14.167Z","updatedAt":"2026-08-05T12:20:31.428Z","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":"63740349eba78f242bcbf60d5244d7f2b2600853","status":"affected","lessThan":"a6050dedb6f1cc23e518e3a132ab74a0aad6df90","versionType":"git"},{"version":"63740349eba78f242bcbf60d5244d7f2b2600853","status":"affected","lessThan":"5e8a3d01544282e50d887d76f30d1496a0a53562","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":"6.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.18","versionType":"semver"},{"version":"6.18.10","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","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/a6050dedb6f1cc23e518e3a132ab74a0aad6df90","https://git.kernel.org/stable/c/5e8a3d01544282e50d887d76f30d1496a0a53562"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:21.040Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/23xxx/CVE-2026-23184.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-23184","state":"PUBLISHED","datePublished":"2026-02-14T16:27:14.167Z","dateUpdated":"2026-08-05T12:20:31.428Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-01-13T15:37:45.984Z"},"containers":{"cna":{"title":"binder: fix UAF in binder_netlink_report()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbinder: fix UAF in binder_netlink_report()\n\nOneway transactions sent to frozen targets via binder_proc_transaction()\nreturn a BR_TRANSACTION_PENDING_FROZEN error but they are still treated\nas successful since the target is expected to thaw at some point. It is\nthen not safe to access 't' after BR_TRANSACTION_PENDING_FROZEN errors\nas the transaction could have been consumed by the now thawed target.\n\nThis is the case for binder_netlink_report() which derreferences 't'\nafter a pending frozen error, as pointed out by the following KASAN\nreport:\n\n  ==================================================================\n  BUG: KASAN: slab-use-after-free in binder_netlink_report.isra.0+0x694/0x6c8\n  Read of size 8 at addr ffff00000f98ba38 by task binder-util/522\n\n  CPU: 4 UID: 0 PID: 522 Comm: binder-util Not tainted 6.19.0-rc6-00015-gc03e9c42ae8f #1 PREEMPT\n  Hardware name: linux,dummy-virt (DT)\n  Call trace:\n   binder_netlink_report.isra.0+0x694/0x6c8\n   binder_transaction+0x66e4/0x79b8\n   binder_thread_write+0xab4/0x4440\n   binder_ioctl+0x1fd4/0x2940\n   [...]\n\n  Allocated by task 522:\n   __kmalloc_cache_noprof+0x17c/0x50c\n   binder_transaction+0x584/0x79b8\n   binder_thread_write+0xab4/0x4440\n   binder_ioctl+0x1fd4/0x2940\n   [...]\n\n  Freed by task 488:\n   kfree+0x1d0/0x420\n   binder_free_transaction+0x150/0x234\n   binder_thread_read+0x2d08/0x3ce4\n   binder_ioctl+0x488/0x2940\n   [...]\n  ==================================================================\n\nInstead, make a transaction copy so the data can be safely accessed by\nbinder_netlink_report() after a pending frozen error. While here, add a\ncomment about not using t->buffer in binder_netlink_report()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"63740349eba78f242bcbf60d5244d7f2b2600853","status":"affected","lessThan":"a6050dedb6f1cc23e518e3a132ab74a0aad6df90","versionType":"git"},{"version":"63740349eba78f242bcbf60d5244d7f2b2600853","status":"affected","lessThan":"5e8a3d01544282e50d887d76f30d1496a0a53562","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":"6.18","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.18","versionType":"semver"},{"version":"6.18.10","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","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/a6050dedb6f1cc23e518e3a132ab74a0aad6df90"},{"url":"https://git.kernel.org/stable/c/5e8a3d01544282e50d887d76f30d1496a0a53562"}],"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 - Binder is accessed via /dev/binder device file through ioctl(BINDER_WRITE_READ), requiring local system access. It is not reachable over the network.\nAC:L - The attacker controls both sides of the race: they freeze the target via BINDER_FREEZE (no privilege check), send the oneway transaction, then thaw the target to trigger the free. This makes the race reliably triggerable.\nPR:L - Any unprivileged process that can open /dev/binder can trigger this. On Android, any app has binder access. No special capabilities or root privileges are required.\nUI:N - No user interaction is needed. The attacker can trigger the entire sequence (freeze, send transaction, thaw) programmatically without any victim action.\nS:U - This is a standard kernel UAF exploitable for privilege escalation within the same security authority (kernel). No VM escape or sandbox boundary crossing is involved.\nC:H - The UAF allows reading freed kernel heap memory. With heap spraying to control the freed object's contents, an attacker can achieve arbitrary kernel memory reads.\nI:H - The UAF enables heap spraying the freed binder_transaction object, giving the attacker write primitives and control flow hijacking capability in the kernel.\nA:H - As demonstrated by the KASAN report, accessing freed memory causes a kernel crash. The UAF reliably triggers a kernel oops/panic."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:20:31.428Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18","versionEndExcluding":"6.18.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18","versionEndExcluding":"6.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}