There is a protocol in Windows that has been around since the days of Windows XP, which has been found to be insecure.
Tavis Ormandy, a security researcher with Google's Project Zero security team, was the one that first notified Microsoft about the problems with it. He published a blog about it this week, which went public after 90 days for the responsible disclosure period.
He found messages between windows in a session were being handled by "CTF", which is buried as part of the Windows Text Services Framework. TSF also manages things like input methods, keyboard layouts, text processing and the like.
Ormandy put the intended function this way: "When users start an app, Windows also starts a CTF client for that app. The CTF client receives instructions from a CTF server about the OS system language and the keyboard input methods."
He goes on to say, "If the OS input method changes from one language to another, then the CTF server notifies all CTF clients, who then change the language in each Windows app accordingly, and in real-time."
So, CTF can change the rails the program is running on in real time. But Ormandy found there was no access control in CTF.
Any application, any user -- even a sandboxed process -- can connect to any CTF session. Clients are expected to pass along all of their thread data, but there is no authentication involved and an attacker can simply lie about it.
A system resident attacker that gained access to the system by some other means could connect to another user's active session via CTF and take it over. They could send messages to the CTF client that will be interpreted by it as coming from Windows. If an app has a high level of privileges, the attacker may be able to take full control over a victim's computer.
You don't have to take Ormandy's word alone on this. He recorded a demo to show what he was talking about.
Microsoft admitted the problem after being told about it by Ormandy, assigning CVE-2019-1162 to the privilege escalation concept.
MSFT even made some patches in the most recent Patch Tuesday that were specifically directed at it. But those patches alone are not going to fix everything that could arise from CTF misuse.
The protocol is used as low-level glue for Windows, and is embedded deeply into it. As Ormandy says, "CTF is vast and complex. The CTF system was most likely designed for LPC in Windows NT and bolted onto ALPC when it became available in Vista and later. The code is clearly dated with many legacy design decisions."
Dealing with all the second-order effects of CTF is not going to be easy. MSFT may be able to patch known problems as they did this week, but attackers will now have a new way to spread their malware.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.