Nine weeks after a hacker demonstrated how to spoof authentication certificates for virtually any website on the internet, users of Internet Explorer and many other applications remain susceptible because Microsoft hasn't patched the underlying vulnerability.
The bug, which resides in an application programming interface known as CryptoAPI, causes IE and other applications that rely on the code to be tricked by fraudulent secure sockets layer certificates. It can be exploited to impersonate websites, virtual private networks, and email servers by adding a null character to the prefix of an address in a legitimate SSL credential.
"There are thousands of products on Windows right now that are still vulnerable to this SSL attack, and if someone were to publicly publish a targeted null prefix certificate, they'd be in trouble," said the white-hat hacker, who goes by the moniker Moxie Marlinspike. "Basically, everything that runs on Windows would be vulnerable with that one certificate."
Among the browsers that rely on the Microsoft library to parse SSL certificates are Google Chrome and Apple Safari for Windows. The bug would cause both - and IE as well - to display a fraudulently authenticated website with no warning that anything was amiss. The Firefox browser, by contrast, fixed vulnerabilities related to the null character bug a few days after Marlinspike presented his demo at the Black Hat security conference in late July.
The bug stems from code that causes browsers, email clients, and other SSL-enabled apps to ignore all characters following the \ and 0 characters, which are used to denote the end of a sequence of characters in C-based languages. Some issuers of SSL certificates, by contrast, look at the entire domain name whether or not it contains the null character.
The discrepancy allows an attacker to obtain a certificate for a website under his control and then append the target site and a "\0" to the the address. Marlinspike, who holds legitimate claim to the domain thoughtcrime.org, said the common name field for a certificate targeting Bank of America's site would read:
"The thing that would be damaging for them would be if somebody released a targeted null prefix certificate for Bank of America," he said. "That would affect all Microsoft products that are still unpatched."
It remains unclear when the bug will be fixed.
"Microsoft is investigating a possible vulnerability in Windows presented during Black Hat," a spokesman for the company wrote in an email to The Reg. "Once we’re done investigating, we will take appropriate actions to protect customers."
Marlinspike's comments on Wednesday came as fellow hacker Jacob Appelbaum published a single wildcard SSL certificate that tricks older versions of the Network Security Services library into authenticating any website on the internet. Microsoft's CryptoAPI was never vulnerable to that attack.
While the bug has been fixed in NSS, and in the Firefox browser, Marlinspike speculated that many applications that rely on it have yet to apply the patch. Readers who are aware of specific programs that are still vulnerable are invited to contact your reporter here.
Both the wildcard and the more limited prefix attacks are serious because even if a fraudulent certificate is later revoked, there are ways to fool browsers into believing it's still valid. That's because of a separate attack targeting the Online Certificate Status Protocol, which Marlinspike also demonstrated at Black Hat.
No doubt, Microsoft engineers want to tread carefully when rewriting a core API, lest they break the countless programs that rely on it. But as the alacrity demonstrated by Mozilla showed in patching Firefox, the fix is possible. Redmond, are you listening? ®