Slashdot Log In
Mozilla/Firefox Bug Allows Arbitrary Program Execution
Posted by
CowboyNeal
on Thu Jul 08, 2004 05:21 PM
from the no-one's-perfect dept.
from the no-one's-perfect dept.
treefort writes "An article at eWeek has the lowdown. The article also has a link to the bug report which addressed this issue some time ago. Still, I feel safer using Firefox since malicious persons are much more unlikely to target any vulnerabilites. Note that this only affects users of Mozilla and Firefox on Windows XP or Windows 2000." New releases are already available on mozilla.org that fix this. Update: 07/09 00:41 GMT by CN : I removed the bum link to Bugzilla, since I guess they don't like us. Also I discovered that OSDN's own NewsForge has more on the situation.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
A clear advantage (Score:5, Informative)
FYI, in case you didn't read the article, you can download the fix here [mozilla.org].
Re:A clear advantage (Score:5, Interesting)
Come on we blast M$ for putting vbscripting and whatnot in IE, but this is just as dumb.
Parent
It's not "in" the browser (Score:5, Informative)
Parent
Bad way (Score:5, Interesting)
IE bad because it is integrated into the OS
Moz bad because it calls the OS because it's not integrated
Both are bad. In fact, this is quite bad for Moz, as one of the touted improvements is that not being OS-integrated avoids such issues.
Basically, you're passing on data from the windows URI handler... so it's almost like importing a windows IE/Web insecurity into Moz. Perhaps if Moz just imported the windows URI handlers as a datafile, and stripped out known baddies?
Parent
Re:Bad way (Score:5, Interesting)
Relying on stripping out "known baddies" means that what you're really relying on is your list of known baddies. Any new baddie is, by definition, not on that list. Stripping them out is a start (web pages don't need access to shell://), but it's not a complete solution.
Parent
Re:Bad way (Score:5, Interesting)
Parent
Re:It's not "in" the browser (Score:5, Informative)
Agreed. It's not really a bug in the browser, it's a flaw in Windows.
Windows has a bunch of protocol handlers registered. Mozilla knows how to handle a few (e.g. http, ftp, etc.). Whenever it encounters a protocol it doens't know what to do with, it sees if Windows knows how to handle it. Windows either handles it in some way or it doesn't. If it doesn't, Mozilla puts up a message saying "xyz is not a registered protocol." Mozilla has no way of knowing that anything is bad or dangerous.
The real bug is in Windows. The only real options the Mozilla developers have is to black/white list known dangerous protocols or simply don't allow protocols Mozilla itself doesn't handle. Neither are optimal. If you can't trust the OS you're on, you really limit yourself, bugs or not.
So we banish the "shell" protocol today. Who's to say Windows won't have another flaw in another protocol tomorrow?
This really isn't any different than plugins, which are in a sense, external protocol handlers. i.e. they know how to handle certain content...just like a protocol handler. What if there is an exploit in a plugin? Mozilla just starts the plugin with the listed parameters and lets it go. Are you going to blame Mozilla for allowing the plugin to run, or are you going to require that Mozilla not allow "known, dangerous plugins" to run?
Parent
Re:A clear advantage (Score:5, Insightful)
Parent
Re:A clear advantage (Score:5, Informative)
Yeah, it was years before it was addressed. If you read the Bugzilla report, it was first opened in 2002. This is not a good example of "open software fixes things faster".
Parent
Re:A clear advantage (Score:5, Informative)
Parent
Re:A clear advantage (Score:5, Insightful)
However much developer attention it received (and actually it wasn't much - see my comments below), it doesn't change the fact that this exploit was present for almost two years
The speed with which a fix was issued after the general public was made aware of the problem was good
The specific comments you cite are indicative of this lack of concern- Comment #2 basically claims that it's not worth fixing security issues that are initiated without any form of user intervention whatsoever. And why? because it's easy enough to get a luser to click on a malicious link, so why should we worry about sites that just bypass the malicious click?? I don't know about everyone else here, but that sort of logic concerns me!
Just looking at the amount of interest in this bug after 2002 (only brief two comments in 2003 and another two in 2004; no patches submitted or even thought about) seems to suggest that if this had not been reported by the internet media this would never have been fixed. Or at least, not until exploits of it became commonplace.
And with the recent internet-banking trojans using a similar exploit (i.e. download and run malicious code without any user prompting) in IE, the issue seems serious enough to me to have warranted a quicker fix.
Parent
Re:A clear advantage (Score:5, Informative)
This isn't really a fix for a security problem in Mozilla, it's a workaround for a security problem in windows... which is why this only affects Mozilla on windows.
Parent
Re:A clear advantage (Score:5, Insightful)
Parent
Re:A clear advantage (Score:5, Informative)
Will probably end up happening soon. Open online bug tracking has already started for some of their products.
Parent
Re:A clear advantage (Score:5, Informative)
Go to the source for better info!!!
http://www.mozilla.org/security/shell.html
Parent
Re:A clear advantage (Score:5, Informative)
Actually http://bugzilla.mozilla.org/show_bug.cgi?id=250180 is the first mention of the shell: bug. Bug 167475 is a catch all deciding whether or not Mozilla/Firefox should hand off unknown protocols. If it used a whitelist of known protocols as some people suggest then it would break a lot of things relied upon over various platforms.
The specific shell: bug was reported only Wednesday morning which gives us a total time of less than 48 hours.
Parent
Re:A clear advantage (Score:5, Informative)
The difference in large part in my opinon boils down to:
#1 WHO finds the bug. Is it the developers and community that discovers it in good faith, or is it a hacker and the rest of us find out after a billion dollars has been lost worldwide to the latest worm, virus, etc.
#2 As you said, how quickly is the problem fixed. Certainly, private companies aren't necessarily horrible at doing this, to spite what people say. I work for a small software company and assure you that any security issues with our product would be corrected promptly. By the same token, some open source projects w/o a steady lead or direction could have exploits that go unfixed for some time.
However, based on my observations and considering those two points, I'd say I certainly feel better using Firefox than IE.
Parent
Re:A clear advantage (Score:5, Insightful)
Parent
Re:A clear advantage (Score:5, Funny)
#include
int main()
{
printf("Hello World\n");
return 0;
}
Parent
Re:A clear advantage (Score:5, Funny)
Parent
Re:A clear advantage (Score:5, Informative)
Except for the semicolon, as the other poster pointed out, this does have some portability problems. Not sure if you'd call them bugs or not.
You could argue that a preprocessor should allow this, some will indeed choke because there's no space before the <.
The 0 is returned to the operating system, but operating systems have different rules for what return values mean. For example, in VMS, even numbers are errors, and
will generate a nasty error message upon completion.Some people argue that the compiler should return "success" when the code says to return a 0. I haven't read anything official that supports that. And if so, how would you return a 0 if that's indeed the error you need to return to the operating system?
For maximum portability with ANSI C, you probably want to do something like this:
[Slashcode says to use <ECODE> instead of <PRE or <CODE, but how do I inline code or do indentation with <ECODE>?]
Even his sig has a typo!
Parent
Re:A clear advantage (Score:5, Interesting)
Opened: 2002-09-09 04:41 PDT
As we can see in bug 163648, external protocols can cause a lot of security
issues. But exploits for this bug are dangerous mainly if external protocol
handler is being requested automatically from HTML code via <IMG
SRC="externalprotocol:URL">, <IFRAME SRC="externalprotocol:URL"> and other
similar cases.
More, with relation to common sense, invoking an external protocol is absurd in
this case, because <ANYTAG SRC="..."> is request to return some data in browser,
not for launch external application.
So, disable external protocols in all cases, excluding <A HREF=>, can solve this
problem.
Marking severity critical according to 163648.
Parent
Re:A clear advantage (Score:5, Insightful)
But some people [technewsworld.com] seem to be of the opinion that too many patches would be confusing.
If this other vendor is right that people want no more than monthly patches, such a fix may have to wait weeks.Parent
Re:A clear advantage (Score:5, Informative)
Parent
Re:A clear advantage (Score:5, Informative)
Valid point. Inspect the XPI before installing it. It's a ZIP file which contains two js files. "install.js" copies "bug250180.js" into the default-prefs folder. "bug250180.js" creates the preference string "network.protocol-handler.external.shell" with the value "false", which disables this particular handler.
The complete content of these files:
bug250180.js:install.js:...or something similar to that, which I can't show here because Slashcode fucks it up.Parent
Re:A clear advantage (Score:5, Informative)
http://bugzilla.mozilla.org/show_bug.cgi?id=167
Forgive me. I'm an idiot when I'm flamebait.
Parent
Re:A clear advantage (Score:5, Informative)
Parent
RTFBR (Score:5, Interesting)
Reading the bugzilla entries for this and related bugs (an earlier post has the bugzilla url for this bug) is interesting in itself.
It shows that the developers well understood the security implications of the bug - but they were also trying to fit the browser into the MS scheme of things in which programs seem (I'm not a windows expert at that level) to be able to register protocols (shell:, vbscript:, irc:) that they get to handle. Disabling this in windows would then lead to Mozilla/Firefox behaving differently than they've come to expect.
It was further pointed out that mozilla could require a "yes" click in a dialog window, but that that would lead to other security issues.
Interesting reading.
Parent
Here we go again... (Score:5, Insightful)
Just how does Mozilla/FireFox think it's going to keep malware from tricking the users into granting permission when the clueless masses come over from IE?
And this line says all I need to know (Score:5, Funny)
Sounds like a Windows problem, not a Mozilla problem. Oh, wait a minute...
Current versions of Mozilla and Firefox pass unknown protocol handlers to the operating system shell to handle.
Ding! Next. However:
The attacker would have to know the location in the file system of the program
So just in case, I'm renaming my
Re:And this line says all I need to know (Score:5, Funny)
Well now you've blown it!
Hint: Security through obscurity requires obscurity.
Parent
Huh? (Score:5, Funny)
I disagree... if anything, malicious people are MUCH more likely to target vulnerabilities.
Microsoft bug which affects Firefox (Score:5, Informative)
This proves once and for all (Score:5, Funny)
Update system (Score:5, Insightful)
Even better, take a leaf out of Norton's liveupdate program.
Incorrect bug link (Score:5, Informative)
The correct bug number for this hole is bug 250180.
Intentional (Score:5, Funny)
Oh yes, that's right! I went there.
Blacklisting vs. Whitelisting (Score:5, Insightful)
Duh.
I have been saying this for some time now: Never use blacklists. Always use whitelists.
If you forget to put an insecure operation on a security blacklist, you have a security hole. If you forget something on a whitelist, you just have an inconvenience.
I am disappointed that the Mozilla developers did not have enough common sense to use whitelists in the first place. But then, it seems like most computer security schemes are blacklist-based, which explains why computers are so insecure.
Webpage should highlight the patch more (Score:5, Insightful)
Re:Blast! (Score:5, Funny)
Parent
Re:Just to be fair... (Score:5, Insightful)
Parent
Re:Just to be fair... (Score:5, Interesting)
Last weekend, I converted three people from IE6 to Moz FF 0.9.1, based on the facts that it's more secure than IE. And now I'm reading that it has a critical issue (whether it is a bug or not, but it is an issue). How to get their machines pached without my intervention? Where is that big red bouncing icon that appears when starting FF, which says that "you need to install this/these updates immediately to keep your machine secure"?
Hello, FF developers! Critical FF updates are not found on windowsupdate.microsoft.com! [microsoft.com] Where is your own auto-update feature?
Parent
Re:And now for some helpful links: (Score:5, Informative)
Parent
Re:Next! (Score:5, Funny)
NCSA Mosaic?
Parent
Re:bias (Score:5, Insightful)
It's just frustrating to hear people whine about security via lower market share, but then excuse serious flaws using that logic when it's convenient.
I don't, however, refute the point. I'm just of the camp that would prefer stories to at least feign subjectivity, and leave the opinion for the comments.
Parent
Re:Firefox pass unknown protocol handlers to the O (Score:5, Insightful)
Yup. Because Mozilla, as a local application, has a much higher set of privs than a remote website does. This is basically taking code (high-level instructions, but code) from a known insecure zone and telling the OS to run it without any built-in safeguards. And what do you know: we have an exploit.
Here's a fun example of how IE gets it right. Take the URI file:///c:/windows/system32/mspaint.exe from another example on this discussion. Type that into start/run on a Windows box - it works. Type it into the Address bar of IE - it works. Toss it into a webpage on the local machine and click on it - it works. Toss that webpage onto a remote server and click on it - it doesn't work any more. Different behaviors for different levels of trust. Mozilla defeats this by passing things to the shell with the same level of trust as the user has given it, the local program, which includes the (necessary) ability to mess with the filesystem.
Parent
Re:Open Source Collaboration (Score:5, Informative)
Parent
Re:Open Source Collaboration (Score:5, Informative)
The proposed change wouldn't even have prevented this vulnerability. It would have increased the requirement to exploit it from "Get the victim to visit your site" to "Get the victim to visit your site and click a link".
Parent
Re:Open Source Collaboration (Score:5, Informative)
As other posters have been mistaken, so are you. The bug linked to in the
Parent
Re:What moron put in "shell:"? (Score:5, Insightful)
Parent