I’m really excited for us to shed light on some really cool work we’ve been doing to harden the XNU allocator! This has been a huge effort by so many people, and I’m very proud of the direction:
Unfortunately my BlackHat US submission about the V8 sandbox was rejected, but we should still have some cool announcements to share about how we're making V8 harder to exploit soon. In any case I'll be around at the conference! :)
I'm excited (and also a little sad) to announce that after 3 fantastic years with Project Zero, it's time for me to try something new. So starting this month, I'll be building up and leading a new V8 security team at Google!
I played DiceCTF this weekend and solved a V8 challenge. I bypassed the latest "Virtual Memory Cage" protection in V8 and here is how I achieved it XD https://blog.kylebot.net/2022/02/06/DiceCTF-2022-memory-hole/…
Today I'm releasing my JavaScript/v8 Fuzzer JS Raider. I developed the fuzzer for my master thesis and later improved the code for the "Fuzzilli Research Grant Program". You can find the source code, results and my key learnings in my blog post at: https://apt29a.blogspot.com/2022/01/fuzzing-chromes-javascript-engine-v8.html…
Wie funktionierte der leider ziemlich phänomenale iPhone-Zero-Click-Exploit von NSO? Ich wollte die Analyse von Googles Project Zero unbedingt verstehen und habe sie nun für mich und euch „übersetzt“. Mit freundlicher Unterstützung von
I usually let the team's work speak for itself, but I wanted to make sure a few larger points aren't lost in this work.
Firstly, the takeaway here isn't "NSO exceptionalism". It's just that NSO was caught this time and we get a peek at how they are attacking iOS/iMessage.
Today we're publishing a detailed technical writeup of FORCEDENTRY, the zero-click iMessage exploit linked by Citizen Lab to the exploitation of journalists,
activists and dissidents around the world. https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-into-nso-zero-click.html…
All of this will likely take a couple of iterations (reserving lots of virtual memory can be surprisingly complex...), and we'll need to add support for Android as well (or rather, Linux on ARM64). But it's an important first step for the V8 sandbox. EOF
If all goes well and we are confident that the cage works everywhere, we'll enable CagedPointers. Objects in the cage then reference each other through offsets instead of pointers, stopping exploits from (ab)using them for arbitrary memory read/write (i.e. a v8 sandbox escape).
When the cage is enabled, V8 tries to reserve 1TB of virtual address space and will place its heaps, ArrayBuffers, and WASM memory in there. To allow for a smooth rollout, we can still fall back to allocating these objects outside the cage (or not creating a cage at all) though.
This week we are starting an experiment that enables V8's Virtual Memory Cage in Chrome on Desktop (currently only on Dev + Canary channels, then Beta and finally Stable). Here is how that'll work: