Redis Lua Use-After-Free Exploit Enables 0-Click RCE at Pwn2Own

· 25:14 · Watch on YouTube ↗

Summary

At HEXACON 2025, Benny Isaacs and Neil Braha explain how they exploited a Redis Lua use-after-free for 0-click RCE at Pwn2Own Berlin. Redis had disclosed a patch, and they withheld a PoC while organizations upgrade.

Key points

  • Benny Isaacs and Neil Braha said they discovered and exploited the Redis vulnerability during Pwn2Own in Berlin, earning a $40,000 prize.
  • The bug involves Lua's load function: garbage collection freed a source string still referenced by lexer state on the native stack, creating a use-after-free.
  • The exploit triggered a later garbage-collection mark operation that reset two bits in the freed string's memory.
  • Heap shaping let the researchers reclaim that memory with a Lua table, corrupt its node pointer, and create fake Lua objects.
  • They described using an address leak and forged objects to perform absolute reads and gather pointers needed to bypass the pointer guard.
  • A forged C closure triggered a chain that called system; the live demonstration obtained a remote shell running as the Redis user.
  • The speaker said Redis had disclosed a patch and that the researchers withheld a PoC while organizations upgraded.

Article Details

Topics
  • [00:36] Redis vulnerability background and Pwn2Own discovery
  • [02:11] Lua's sandbox and the load function callback
  • [04:00] Lua garbage collection and the use-after-free
  • [13:30] Two-bit memory corruption and heap shaping
  • [17:13] Address leakage, fake objects, and absolute reads
  • [21:16] Forged C closure and exploit chain to system
  • [23:10] Live demonstration of a remote shell
  • [24:33] Patch disclosure and withholding a PoC

People