Boston University’s Ahmet Buyukkayhan and Northeastern University’s William Robertson presented results of their two-year research project about Firefox extensions at Black Hat Asia, which details how the extension system can be exploited by attackers.
Reusing Firefox Extensions for Malicious Purposes
Researchers showed how an extension reuse mechanism was able to make malicious calls to other extensions, which could then pass the calls to the underlying system.
In general, calls made by an extension through Firefox are given elevated privileges, which makes them an attractive vector for sophisticated attacks. The two researchers found that the reuse exploits permitted code execution vulnerabilities, event listener registration and hijacked network access.
They also found that these kinds of malicious extensions could go through Mozilla’s mandatory review process undetected. The extension sailed through review because the reuse mechanism doesn’t directly make any problematic calls to Firefox; it forces another extension to do that.
According to The Register, the presenters made a proof of concept for this attack method, submitting a harmless add-on to Mozilla that leverages the extension reuse attack scenario. Although they requested a full review for it from Mozilla’s staff, no problems were flagged in the review process.
The researchers eventually told Mozilla what they had done. They also provided a framework called Crossfire that would help Mozilla identify malicious extensions using this mechanism — the same framework used in the proof of concept.
Firefox extensions that are vulnerable to malicious exploits included NoScript, Video DownloadHelper and GreaseMonkey. Each of these programs has more than 1 million users, The Register reported.
The Firefox Pivot
There is a change already underway in how things are done in Firefox, especially with respect to how it handles browser extensions. Extensions written for the Chrome browser will be supported by Firefox, supposedly without any change in the way that they are written.
Mozilla’s new engine for this, called Blink, should be able to support multiple process browsers by default and mitigate the risk of misbehaving add-ons and malware. The ongoing migration to Blink may be the framework needed to help mitigate the reuse attack as well as other cyberthreats.
UPDATE, 4/6/16, 10:38 a.m. EDT: A Mozilla representative contacted Security Intelligence with the following statement from Nick Nguyen, VP of Product for Firefox:
“The way add-ons are implemented in Firefox today allows for the scenario hypothesized and presented at Black Hat Asia. The method described relies on a popular add-on that is vulnerable to be installed, and then for the add-on that takes advantage of that vulnerability to also be installed.
“Because risks such as this one exist, we are evolving both our core product and our extensions platform to build in greater security. The new set of browser extension APIs that make up WebExtensions, which are available in Firefox today, are inherently more secure than traditional add-ons and are not vulnerable to the particular attack outlined in the presentation at Black Hat Asia. As part of our electrolysis initiative — our project to introduce multiprocess architecture to Firefox later this year — we will start to sandbox Firefox extensions so that they cannot share code.”