The Memory Sinkhole - Unleashing An X86 Design Flaw Allowing Universal Privilege Escalation
Video Statistics and Information
Channel: Black Hat
Views: 118,522
Rating: 4.9625182 out of 5
Keywords: Black Hat USA 2015, Information Security, InfoSec, BlackHat, Black Hat
Id: lR0nh-TdpVg
Channel Id: undefined
Length: 46min 33sec (2793 seconds)
Published: Tue Dec 29 2015
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.
TLDW; An old feature that lets you memory map a bunch of zeros to anywhere on the memory is used to force reading a bunch of zeros in ring -2 code. (ring -2 code has privileges even the operating system doesn't have) Causing that specific ring -2 code to read only zeros causes it to jump to and execute code at an offset from 0x00000000 which the operating system can modify allowing arbitrary code execution in ring -2 from ring 0. Effectively this means somebody with root access on a machine can royally screw up the machine. He used it to install a backdoor in a computer to allow an unprivileged user to gain root access in a way undetectable to anti virus. (Anti virus cannot access ring -2 code) Processors before 2013 have the flaw. The vulnerable machines cannot be patched.
TLDR; An old cpu feature opened up an exploit to escalate cpu privileges higher than even the operating system.
Wow, that's a deep rabbit hole. I commend the presenter on his ability to not only ferret out that issue, but to actually turn it into an exploit.
Isn't this the guy who also wrote an obfuscator which only uses mov operations? (Because obviously, mov on x86 is turing complete).
Google's NERF project had a section on how they are neutralizing the SMM ("ring -2.5") as well as other ring -2/ring-3 exploits. I don't know if the SMM work has had it's code published yet or if it was just a special kernel configuration on top of booting from u-root.
I remember this actually. It ended up only affecting a handful of ancient Intel boards, since AMD's x86 was unaffected
and SMM doesn't exist on x86_64. Those boards were salvageable with a firmware update.Quick Google search makes it look like it never even got a CVE. A deeply interesting flaw, but luckily a few years too late for it to have reached its full destructive potential.
Wild, this guy has the best job