Live data from Hacker News

Sandsifter: find undocumented instructions and bugs on x86 CPU

github.com

11–20 of 94 posts

Re: Sandsifter: find undocumented instructions and bugs on x86 CPU

#11
post #9

...isn't the usability of the tool limited because it's running in userspace, which has fewer privileges in terms of what instructions can be ran?

As the slides say, this approach prevents the system from falling over entirely, while still resolving instructions from deeper rings.

Re: Sandsifter: find undocumented instructions and bugs on x86 CPU

#15
post #9

...isn't the usability of the tool limited because it's running in userspace, which has fewer privileges in terms of what instructions can be ran?

I was wondering this myself until I read the pdf:

> For effective results, the injector should be able to identify instructions in more privileged rings, even if it cannot actually execute those instructions.

>This approach allows the injector to detect even privileged instructions: whereas a non-existing instruction will throw a #UD exception, a privileged instruction will throw a #GP exception if the executing process does not have the necessary permissions for the instruction. By observing the type of exception thrown, the injector can differentiate between instructions that don’t exist, versus those that exist but are restricted to more privileged rings. Thus, even from ring 3, the injector can effectively explore the instruction space of ring 0, the hypervisor, and system management mode.

Re: Sandsifter: find undocumented instructions and bugs on x86 CPU

#17
post #9

...isn't the usability of the tool limited because it's running in userspace, which has fewer privileges in terms of what instructions can be ran?

As the slides say, this approach prevents the system from falling over entirely, while still resolving instructions from deeper rings.

Makes sense. I was thinking if there could be a bootable fuzzer of this kind, but you're right that it would be very difficult for it to be both usable and not crash very quickly.

Re: Sandsifter: find undocumented instructions and bugs on x86 CPU

#18
post #8

This is highly interesting. I assume a lot of those are going to be debug and instructions to help the binning process. Some of these might even unlock access to parts of the CPUs we aren't supposed to have access too, opening the doors to custom microcode (unlikely that anyone outside the CPU OEM can do that though) but may allow us to disable "security features" such as the Management Engine. This is a really inter…

I expect Intel burn a fuse bit at the end of the binning process to prevent such features being accessed in the finished product.

Re: Sandsifter: find undocumented instructions and bugs on x86 CPU

#19
post #17

Earlier quoted context omitted.

As the slides say, this approach prevents the system from falling over entirely, while still resolving instructions from deeper rings.

Makes sense. I was thinking if there could be a bootable fuzzer of this kind, but you're right that it would be very difficult for it to be both usable and not crash very quickly.

I think once you found all possible instructions it shouldn't be too hard (for someone much smarter then me) to essentially generate a minimal OS that systematically tries out all found instructions from ring 0. That should dramatically reduce the amount of reboots necessary to actually try them all out compared to bruteforcing them from ring 3

Re: Sandsifter: find undocumented instructions and bugs on x86 CPU

#20
post #10
post #7

tl'dr of the slides: Found on one processor... instruction Single malformed instruction in ring 3 locks Tested on 2 Windows kernels, 3 Linux kernels Kernel debugging, serial I/O, interrupt analysis seem to confirm Unfortunately, not finished with responsible disclosure No details available [yet] on chip, vendor, or instructions He's found a new f00f bug, winter 2017 is going to be interesting :)

For those not aware: https://en.wikipedia.org/wiki/Pentium_F00F_bug Can these kind of bugs possible to exploit to cause anything more than minor annoyance?

If it works inside a VM, an attacker could potentially cause a widespread denial of service on cloud computing platforms like Azure and AWS.
Post reply on HN