The final part of our CVE-2023-20938 series: turning a Binder use-after-free into root on a Pixel 6 running Android 12.
Root turns out to be anticlimactic: a few fields in one kernel struct, set to zero.
๐ Read part 5: https://t.co/YK6rs0DVEO
Yes to both. The double free came from the Epoch recording alone, with nothing else used. And the suggested cleanup really does stop the crash. The agent could also have recompiled and re-run it on its own to confirm, and kept iterating if another bug showed up. It drives Epoch end to end.
Our exploit also crashed the kernel long after the real bug. Claude Code got the recording through Epoch's MCP server, with no bookmarks and no hints.
It traced the crash to a double free and named the missing cleanup step in our code.
Try it yourself: https://t.co/3zC4wL6YLe
The whole chain is in one Epoch recording. Step through it from a leaked Binder object to our own process's credentials, one pointer at a time, until the user ID flips from 2000 to 0 on a single write.
A single 2-byte instruction skip bypasses secure boot verification in the boot ROM of a widely deployed ARM router SoC, despite a constant-time compare and redundant verdict encodings.
Full write-up ๐
https://t.co/AsOMEmLLxC
Test the trigger first, not the exploit. Run the UAF on the older device, spray fresh nodes, and check whether the stale read returns reused data. Binder's kernel logs can show the error path ran, but without KASAN nothing flags the UAF itself. The offsets are Pixel 6 / 5.10 only.
Weโre publishing a full Android kernel exploit chain built on CVE-2023-20938, a use-after-free in Binder, on a Pixel 6 running Android 12.
๐ https://t.co/u5duFUTXPt
@for_N5R1 Landing is the unstable part, but one epitem is enough. In one batch, 34 of 768 stale slots held an epitem at 192 sprayed, 130 at 384. We never tested past 384.
Part 4 of our Android kernel exploit chain: CVE-2023-20938, a Binder use-after-free on a Pixel 6 running Android 12.
Freed kernel pages come back as epoll objects, and two ordinary syscalls read any address.
๐ https://t.co/1ZfafAV6Cb
#android#cve
Thank you for sponsoring #POC2026 as a GOLD!
eShard (@eshard) builds specialized technologies for advanced hardware and software security research. esDynamic helps researchers investigate side-channel leakage, fault injection and hardware failures, while esReverse brings together advanced capabilities for vulnerability research, malware analysis and reverse engineering โ including full-system Time Travel Debugging and AI-assisted investigation.
@for_N5R1 Getting the object back is the least stable part. Landing an epitem in the freed page is a probabilistic cross-cache hit: in one test batch, 192 epitems landed ~4% of the time, 384 ~17%. Once it lands, reads are just epoll_ctl(MOD) + ioctl(FIGETBSZ): no alloc, no free.
Exploiting a use-after-free (UaF) in Androidโs Binder driver (CVE-2023-20938) (@eshard)
Part 1: https://t.co/iWVoizBw7p
Part 2: https://t.co/KbPDa6Na7X
Part 3: https://t.co/c9qv8URcn8
Part 4: https://t.co/I7VPLexq4v
#infosec
Testing each part of a drone separately can miss the real weakness. This is why its hardware, firmware and radio link should be tested as one attack surface.
#drone#embeddedsecurity
https://t.co/FyYqrp9DpR