Microsoft on Friday warned users that a critical bug in ASP.Net could be exploited by attackers to hijack encrypted web sessions and pilfer usernames and passwords from web sites.
The vulnerability went public that same day when a pair of researchers outlined the bug and attack techniques at the Ekoparty security conference in Buenos Aires, Argentina.
According to Microsoft's advisory, the flaw exists in all versions of its ASP.Net, the company's web application framework used to craft millions of sites and applications. Microsoft will have to patch every supported version of Windows, from XP Service Pack 3 (SP3) and Server 2003 to Windows 7 and Server 2008 R2, as well as other products, including its IIS and SharePoint server software.
At Ekoparty, Juliano Rizzo and Thai Duong demonstrated how a flaw in ASP.Net's encryption can be exploited to decrypt session cookies or other encrypted data on a remote server, and access and snatch files from a site or web application that relies on the framework.
According to Rizzo and Duong, their attack is able to access web applications with full administrator rights, resulting in everything from "information disclosure to total system compromise."
They estimated that 25% of the Internet's web sites use ASP.Net.
Hackers can exploit the vulnerability by force-feeding cipher text to an ASP.Net application and noting the error messages it returns. By repeating the process numerous times and analyzing the errors, criminals can learn enough to correctly guess the encryption key and thus decrypt the entire cipher text.
Although Microsoft said it would produce a patch, it has not set a timetable for its release. In the meantime, the company suggested site and application developers tweak their code.
"[You can] prevent this vulnerability [by enabling] the customErrors feature of ASP.Net, and explicitly configure your applications to always return the same error page regardless of the error encountered on the server," said Scott Guthrie, who runs several development teams at Microsoft, including the group responsible for ASP.Net. "By mapping all error pages to a single error page, you prevent a hacker from distinguishing between the different types of errors that occur on a server."
Microsoft included details on the same workaround in its security advisory.
The workaround protects users against the attack Rizzo and Duong outlined, but doesn't address the underlying problem. "We will obviously release a patch for this," Guthrie said in a comment added Saturday to his blog post. "Until then, the above workaround closes the attack vector."
Rizzo and Duong dubbed the attack "oracle padding" after the cryptographic term that describes a system which provides hints when queried.
The two released a tool dubbed POET (Padding Oracle Exploit Tool) three months ago that lets researchers sniff out frameworks vulnerable to attack. A month before that they presented their findings at Black Hat Europe and published a paper (download PDF).
Andrew Storms, director of security operations at nCircle Security, called the vulnerability "worrisome."
"For public services, people are going to be concerned about attackers getting access to any file [on the server] for example 'web.config' files with login/password information in them," Storms said in an instant message.
Attackers could also decrypt data sent from a server to client machines, added Guthrie.
Microsoft has published a Visual Basic script that detects vulnerable ASP.Net applications (download .vbs script) and has set up a dedicated support forum to handle questions from site and application developers.