Yahoo Leaks Private Key, Allows Anyone to Build Yahoo-signed Chrome Extensions
Yahoo was forced to release a new version of its Axis extension for Google Chrome after the original one contained a private key that allowed anyone to digitally sign extensions in Yahoo's name.
Axis is a new search and browsing tool from Yahoo that was released on Wednesday. It is available for desktop computers, as an extension for Google Chrome, Mozilla Firefox, Internet Explorer and Safari, as well as for iOS devices, as a stand-alone app.
However, while looking at the source code for the Google Chrome Axis extension, hacker and security blogger Nik Cubrilovic discovered a serious security flaw -- the package included the private cryptographic key used by Yahoo to sign the extension.
"With access to the private certificate file [private key] a malicious attacker is able to create a forged extension that Chrome will authenticate as being from Yahoo," Nik Cubrilovic said in a blog post on Thursday.
Google Chrome extensions come packed as CRX files, which are essentially digitally signed ZIP-format archives.
Every CRX file contains a public key that's part of a private-public key pair unique to its creator. The private key is used to sign the extension, while the public key is used by the browser to verify the signature's authenticity.
Since private keys allow developers to digitally sign new extensions or update their old ones, they should always be kept secret.
In order to prove the implications of the private key leak, Cubrilovic created a proof-of-concept Chrome extension that displays an alert on every visited website and signed it with Yahoo's private key.
An attacker can push a Yahoo-signed malicious extension to a browser that has the Axis extension installed, by using techniques like DNS spoofing, Cubrilovic said.
Google Chrome automatically checks for extension updates by querying update URLs specified by developers. If attackers can forge the DNS (domain name system) responses received by the browser, they can force it to install a rogue digitally signed extension update from a server under their control.
Yahoo confirmed the security issue. "We worked quickly to resolve the issue and have issued a new Chrome plug-in," a Yahoo spokeswoman said via email. "Users who downloaded Yahoo! Axis on Chrome between the hours of 6-9 p.m. Pacific Time on May 23, 2012, are encouraged to uninstall the previous version and reinstall the new version at axis.yahoo.com."