The attack is a variation of a WPAD/PAC attack. In Project Zero’s case, the WPAD/PAC attack focuses on chaining several vulnerabilities together relating to the PAC and a Microsoft JScript.dll file in order to gain remote command execution on a victim’s machine.
“We identified 7 security vulnerabilities in (JScript.dll) and successfully demonstrated reliable code execution from local network (and beyond) against a fully patched (at the time of writing) Windows 10 64-bit with Fall Creators Update installed,” wrote Project Zero researchers on the teams’ website Monday.
The vulnerabilities have since been patched.
Previous researchers have found holes in WPAD ranging from an “UNHOLY PAC” attack identified by SafeBreach to a man-in-the-middle attack technique identified by Context Information Security. The technique allowed an attacker to see the entire URL of every site visited even if the traffic is protected with HTTPS encryption.
Google’s Project Zero team took WPAD/PAC attacks a step further.
“As far as we know, this is the first time that an attack against WPAD is demonstrated that results in the complete compromise of the WPAD user’s machine,” researchers said.
Project Zero focus was on identifying new vulnerabilities in the version of JScript.dll used by the WPAD service. (CVE-2017-11810, CVE-2017-11903, CVE-2017-11793, CVE-2017-11890, CVE-2017-11907, CVE-2017-11855 and CVE-2017-11906)
Five of the vulnerabilities outlined by Project Zero on Monday were patched last week as part of Microsoft’s Patch Tuesday. The additional two were patch in October by Microsoft.
Researchers chained two specific JScript bugs (an infoleak and a heap overflow) and leveraged several other techniques (such as return-oriented programming) to bypass Windows security mitigations. Next, researchers used a privilege escalation technique to move from the Local Service account (where the WPAD service runs, but doesn’t have many permissions) to SYSTEM, according to an analysis of the technique by Stone.
“The chain requires all its links in order to work, but still, in my opinion the memory read primitive (out-of-bounds read) is the enabler to all the other steps, and has usability beyond this particular chain,” said Amit Klein, vice president of security research at SafeBreach.
Despite the fact Microsoft has patched against this type of attack, Project Zero researchers agree with Klein’s assessment.
“Since the bugs are now fixed, does this mean we are done and can go home? Unlikely. Although we spent a fair amount of time, effort and compute power on finding jscript.dll bugs, we make no claims that we found all of them. In fact, where there are 7 bugs, there is likely to be an 8th,” Project Zero researchers wrote.
Researchers recommend Microsoft users disable WPAD by default and sandbox the JScript interpreter inside the WPAD service.