Mozilla officials say they’ll release a Firefox update on Tuesday that fixes the same cross-platform, malicious code-execution vulnerability patched Friday in the Tor browser.
The vulnerability allows an attacker who has a man-in-the-middle position and is able to obtain a forged certificate to impersonate Mozilla servers, Tor officials warned in an advisory. From there, the attacker could deliver a malicious update for NoScript or many other Firefox extensions installed on a targeted computer. The fraudulent certificate would have to be issued by any one of several hundred Firefox-trusted certificate authorities (CA).
While it probably would be challenging to hack a CA or trick one into issuing the necessary certificate for addons.mozilla.org, such a capability is well within reach of nation-sponsored attackers, who are precisely the sort of adversaries included in the Tor threat model. In 2011, for instance, hackers tied to Iran compromised Dutch CA DigiNotar and minted counterfeit certificates for more than 200 addresses, including Gmail and the Mozilla addons subdomain.
Update early and often
Friday’s advisory from Tor urges users to install the update as soon as possible. Shortly after this post went live, Mozilla officials said they planned to followed suit on Tuesday. According to a report posted Thursday by researcher Ryan Duff, production versions of Firefox are susceptible, although a nightly build version released on September 4 is not susceptible.
Duff said he was able to reproduce results published Tuesday by a different researcher that showed a Firefox-implemented protection known as “certificate pinning” was ineffective in preventing attacks using forged certificates. Certificate pinning is designed to ensure that a browser accepts only a specific certificate for a specific domain or subdomain and rejects all others, even if the certificates are issued by browser-trusted authority. Duff said the cause of the failure is linked to a form of static key pinning that’s not based on the HTTP Public Key Pinning protocol. More specifically, the failure is the result of Mozilla not properly extending the expiration dates for the static keys list which caused the pinning to go unenforced after they expired.