One of the main reasons why Firefox has become so successful is its extension framework, and the large community of extensions developers that has grown around it. What many users are not aware of, however, is that extensions are a bit of a security nightmare.
Extensions in the Mozilla world do not follow any security model, and Firefox, for instance, trust extension code completely. They aren’t isolated or sandboxed, and can even modify one another. Any Mozilla application supporting extensions suffers from this issue, and the code is completely platform independent. It can lead to fully compromised systems.
When looking into this problem, researchers found several issues in popular Firefox extensions Sage 1.4.3, InfoRSS 1.1.4.2, and Yoono 6.1.1 (including all previous versions). A flaw in Sage, for instance, allows a malicious RSS feed to change your NoScript settings, adding sites to NoScript’s whitelist. Flaws in IngoRSS and Yoono can even lead to fully compromised systems.
Maybe some attention to the security problems in the extension framework pushes Mozilla to think about some way to change this framework to solve or mitigate the issue. In fact, Mozilla Labs’ Jetpack project indeed proposes to use a sandbox security model, but this model is as of yet unimplemented in the test releases.
Any third party extension, just like a third party application, does not have to go through the same code review or testing that may or may not happen by the vendor.
From the article, there is at least one vulnerability against an arbitrary extension to attack the noscript extension’s whitelist. Malware writers are aware of the safeguards that users install and thus are making inroads to the weaker links in our chains of armor.
You hear often that what gives Firefox the edge over other browsers are the extension, and so this is the biggest hurdle security-wise. The same can almost be said for Windows especially in the business world.
Heck, not just browsers or OS (viewing third party software as plugins of sorts). I hear Facebook’s API is actually very good but the wild west of third party applets blows it all to hell. It seems any plugin framework’s time for a security review is coming due.
The recent video on ChromeOS security
http://www.youtube.com/watch?v=A9WVmNfgjtQ&feature=player_embedded
takes the sandboxing quite seriously. Maybe the Mozilla developers could have a look at the Chrome security model (which works even better on a device that has ChromeOS, due to trusted booting, etc.), which I’m sure they are….
One of the current projects at Mozilla is called Electrolysis, and it’s working at moving page rendering and plugins into separate processes so they can operate separately from the browser UI, effectively giving the browser the same security profile as Chrome. I think we’re aiming for FF 3.7 for this, but it might be 4.0 since moving things to separate processes will break a lot of the methods extensions use to interact with the browser.
I’d expect sandboxing to become increasingly necessary and popular.
The Yoono vulnerability in this article was fixed in Yoono 6.2 which was released in August. You can download it at http://www.yoono.com