If you just want the skinny on the Firefox vulnerability
click here. We're starting off with a little background on Javascript. See important
Updates below.
We've said it many times before, the Internet is
not a safe place, diligence is key. Though we feel that Firefox is more secure than Internet Explorer this is large part due to the lack of ActiveX support. But there are many other avenues to attack the web browser other than ActiveX. One of those is Javascript. Javascript is a interpreted programming language that works on the client side of the connection (as opposed to the server side). When your web browser loads a web page and sees Javascript on the page it interprets the code and does what its told to do. This sounds inherently dangerous since you have no control over what may be hidden in the HTML of some web page. But Javascript was written from the ground up to run within the confines of the web browser and as such its powers are limited. Most often used for simple tasks such as mouse rollovers (eg; changing a graphic when you highlight a button, or changing a text color when you float the cursor over the text) or validating form input. It is also often used in flyout style menus. It is usually harmless.
But the bad guys have figured out ways to use it maliciously. One such use is in Cross-Site Scripting (XSS) where Javascript is fed through some site's form entry (etc) that will echo it back to the user. When this is done it appears that whatever the Javascript did in the browser actually came from the website. So when you think you are entering your pin number on the banks site you may actually be entering it on the phishing / hackers site (there are other malicious uses for XSS as well). XSS vulnerable sites are
everywhere. This author went hunting for them and found 2 major media sites that are vulnerable in less than 20 minutes.
Because Javascript must be interpreted by the browser to do things any oversight on the part of the browser programmers could be disastrous. A simple example would be Javascript used to load an image, if that routine could instead be used to load a local file with parameters a hacker could use this to run commands to download and start any malicious content they wanted. This would, in affect, make Javascript as dangerous as ActiveX (ActiveX can do almost anything if you let it. Its very powerful, it can also be very dangerous if used or configured incorrectly). These type problems with Javascript are rare but have come up from time to time.
Latest Firefox JavaScript Reentrant Vulnerability: (see updates below)
Two self-professed hackers, Mischa Spiegelmock and Andrew Wbeelsoi, gave a slide show at the ToorCon hacker conference showing Firefox being exploited to run arbitrary code. According to Spiegelmock the Firefox Javascript implementation is a "complete mess," and "is impossible to patch." Of course this this comes from a couple of hackers who's presentation was described on
ToorCon as "New ways of getting your load onto your quivering victim's stack Reaching into the hearts and minds (also the genitals) of users" and comments in the slide presentation like "Hahahahahahaha stick that in your pipes and smoke it Firefox fanboys!". According to people who saw the presentation it appeared to show enough to figure out how to recreate the exploit. So far the vulnerability has not been confirmed and it is possible this is all a ruse or greatly exaggerated. But the folks at Mozilla seem to have seen enough to be taking this serious.
Of course this could also be the real deal. If that is the case Firefox has a very potent vulnerability just waiting to be exploited. Javascript can often be loaded in to bulletin board posts and blogs so random surfing would not be safe. Of course it can also be used in targeted attacks via eMail links, or loaded on to compromised web servers. It will be imperative that this get fixed quickly. If you are using a pre-1.5 version of Firefox and don't want to upgrade you should install the NoScript Extension (see below) immediately. Firefox 1.5x will be updated to fix this problem, previous versions will not.
The vulnerability as presented could lead to running arbitrary executable code within the security context of the user. In other words make Firefox install whatever the bad guys want installed assuming your login has the rights to install software.
Mitigation:
- If you run Firefox you should immediately install the NoScript Extension. This script will prompt you when a page tries to run Javascript and give you the option to let it run. You can tell it to run just for this browser session or you can whitelist the site so that it always runs Javascript from that site. Some sites are very dependent on Javascript and won't show you anything without it. Some sites display nicely without it. We recommend whitelisting sites you visit often. Unless you do you'll never know what content you're missing out on. Some of the content might load using standard HTML, other content might load using JavaScript. For instance this site uses Javascript in several of the sidebar boxes.
- You could use Internet Explorer since it is not vulnerable to this particular bug. But it currently has several unpatched vulnerabilities of its own. Since it still commands about 75-80% of the browser market hackers often target its vulnerabilities harder than those in Firefox (besides their is a "stick it to the man" mentality in attacking MS).
References:
Updates:
- If you can't trust a couple of hackers who can you trust!! Quotes from Mozilla's interview with one of the two hackers that gave the presentation: "The main purpose of our talk was to be humorous." "I personally have not gotten it to result in code execution, nor do I know of anyone who has." The PoC can lead to a browser crash. They also admitted to not having "30 undisclosed Firefox vulnerabilities".
- Proof of Concept code has been posted on the web. Now its only a matter of time before this vulnerability is exploited in the wild.
Vulnerable - Windows, Mac, Linux. Apparently all versions of Firefox.
Share or Bookmark this Article Using:
No Longer Supported