When your OS kernel handles scroll bars, you're doing something wrong.<p>NT 3.5 had the GUI entirely outside the kernel. For compatibility with Windows 95, much of the Windows 95 GUI code was moved into the kernel. 20 years later, that decision is still causing bugs.
It's a flaw. A bad one. But things like this get patched every day. Only an idiot would believe there aren't plenty of other undiscovered security flaws in windows, or any other OS. What matters is whether this flaw was ever exploited, whether it was ever spotted in the wild, before it was patched.<p>I am more than happy to criticize microsoft. I truly hate windows and everything it represents. But the system seems to have worked here. The bug was reported and patched before it became a widespread issue. I'll save my venom for those all-to-common days where Microsoft fails to address a problem in a timely manner. (or also Apple, plenty of venom for them too.)
This doesn't "bypass all Windows security measures". As of Windows 8, processes can disable win32k syscalls using SetProcessMitigationPolicy with ProcessSystemCallDisablePolicy.<p><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/hh769088%28v=vs.85%29.aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/windows/desktop/hh7...</a>
How do they find exploits like this? Do they check every single kernel functions for unchecked pointers? Do they have some automated way to discover this?
How many of those new protections listed (DEP, ASLR, page 0 mapping) are still useful with a system like Rust? Cause it seems like a hell of a lot of effort is going into hardening the environment cause the code is just that leaky, but I'm probably misunderstanding something.
The dead code comment at the end was informative. Does anyone else use code analysis of C/C++ to find dead stores etc.?<p>I have used flawfinder, cppcheck and Xcode (clang's) analysis which has helped me find issues.
> <i>After some hard word, however, we managed to produce a fully working exploit which we’ll describe.</i><p>Wait, now I'm confused... was it a single bit, or an entire word that triggers this bug? ;)