One of the security bulletins released by Microsoft on Tuesday addresses a vulnerability that should have been patched since August 2010.
The existence of the flaw (CVE-2010-2568) came to light in mid-2010, months after it was used by the notorious Stuxnet worm in an operation aimed at Iran’s nuclear program. This was one of the four zero-day vulnerabilities leveraged by Stuxnet.
The vulnerability can be exploited for remote code execution if the attacker can convince the victim to browse to a malicious website, open a specially crafted file, or access a folder containing a specially crafted DLL file.
“Windows allows .LNK files, which define shortcuts to other files or directories, to use custom icons from .CPL (Control Panel) files. The problem is that in Windows, icons are loaded from modules (either executables or dynamic link-libraries),” Dave Weinstein, a researcher at HP’s Zero Day Initiative (ZDI), described the flaw. “In fact, .CPL files are actually DLLs. Because an attacker could define which executable module would be loaded, an attacker could use the .LNK file to execute arbitrary code inside of the Windows shell and do anything the current user could.”
In the Stuxnet attacks, the threat actors planted a specially crafted LNK file on a USB drive. When the drive was accessed, the malicious code was executed, even if the Autorun feature in Windows was disabled.
Microsoft released an update to address the vulnerability in August 2010, but German researcher Michael Heerklotz discovered in early 2015 that the patch was ineffective.
“The patch failed. And for more than four years, all Windows systems have been vulnerable to exactly the same attack that Stuxnet used for initial deployment,” Weinstein said.
An attacker can exploit the new vulnerability (CVE-2015-0096) by creating a malicious LNK file with a link path of exactly 257 characters containing embedded unescaped spaces, and two “target” files – one with embedded unescaped spaces and one without, researchers at Kaspersky Lab explained in a blog post.
HP says there have been rumors that the vulnerability has been exploited publicly.
Microsoft fixed the failed patch on Tuesday with the MS15-020 bulletin, but ZDI has pointed out that the workaround recommended by the software giant back in 2010, which involved modifying a registry entry, has still been effective.
On the other hand, Microsoft said that the fix released in 2010 was “comprehensive.”
“This is a new vulnerability that required a new security update. Microsoft released a comprehensive security fix in 2010 to address the vulnerability the Stuxnet virus exploited,” Microsoft told SecurityWeek in an emailed statement. “As technology is always changing, so are the tactics and techniques of cybercriminals. It is an unfortunate reality of today’s interconnected world that some people and organizations seek to disrupt technology and steal information for nefarious purposes. We will continue to stand guard against any attempts to exploit our products and do what is necessary to help further protect our customers.”
Stuxnet is not the only threat that used the LNK exploit. The bug was also leveraged by a piece of malware used by the recently documented Equation Group, which is possibly connected to the NSA, to map air-gapped networks. The exploit was used by this second worm, dubbed “Fanny,” before it was integrated in Stuxnet.
While Microsoft’s failure to properly patch the vulnerability might have left users exposed, many devices would have been vulnerable even if the patch had been effective. A report published by Kaspersky Lab in August 2014 revealed that the security firm had detected tens of millions of exploits targeting the old Stuxnet flaw between November 2013 and June 2014.
*Updated with statement from Microsoft