A Security Bug In Mozilla - The Human Perspective
xslf writes "Alex Vincent, the reporter of the data-loss security bug 259708, writes about the behind the scene process of reporting it, casting light on the problems of dealing with security related bugs reported by the community, which isn't always aware of the security implications of the bugs reported. The issues with the FLOSS process shown in this bug might get worse, once more and more people use FLOSS and add to the process, without being full fledged coders, and rely on binary releases of software." (Note, you'll have to copy and paste that link to view the bug report, or click through from the linked story.)
What are you trying to do? Shut down the Mozilla project?!? If you absolutely NEED to see the bug, go to MirrorDot and look it up there.
Javascript + Nintendo DSi = DSiCade
"Well, some smarty-pants decided to repost my entire blog entry about bug 259708 as a comment on one of my entries, with an e-mail address of "fulldisclosure@netsys.com". Word for word, no changes, and no commentary either.
This annoyed the hell out of me. On the one side, I could see this anonymous poster's point: the bug was already in the public domain when it disappeared very suddenly."
What are you complaining about? Isn't this your fault for taking the entry down to begin with?
I'm going to troll a bit here, but doesn't this essay/blog entry just bitch about how he feels things weren't handled in a manner to his liking? And shouldn't he be faulted for how he initially handled the bug? (Noted below-)
"Losing data is horrendous, yes, but not as bad as losing it to someone else. That just wasn't happening here. So I decided not to ask for a security group review. That was my first mistake.
Lesson Number One: The very instant you start to wonder if a bug might cause a security concern, stop wondering and ask the security group to review. Don't try to do the security group's job by trying to decide if it really is one or not."
I think the bigger concern here was whether or not the bug got fixed, and once it was properly classified, it was indeed fixed. There probably could have been a faster fix for this bug, but I think most of what happened in this case can be directly faulted to him.....
-thewldisntenuff
My MythTV HowTo
See that text at the top of the page? Now look at the last part of it. See the text that reads "(Note, you'll have to copy and paste that link to view the bug report, or click through from the linked story.)"? Now why do you think that a post about how you cant use the link would be redundant?
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
Bug 69070
The bug was on bugtraq in 2001! It allows remote pages to open and use files on the local machine, and is also a denial of service on Linux, since Mozilla stupidly allows the opening of paths which are not regular files (/dev/tty).
My experience with 69070 has been educational. I've learned if there's a security bug you care about, you had better fix it yourself. Unfortunately I can't but maybe someone in the audience has the spare time to step up.
Opps.. where are ALL my precious precious downloaded files?
-Woof woof woof!
If you don't want to copy & paste...
Here is a rough mirror. (links are relative, so they won't work)
Wait a sec, you're bitching that they won't pay you to work for them, when you don't pay them for thier product?
Holy hypocrisy...
feh. stuff.
Acronym loving developer: I advocate the use of FLOSS and if it's with ENEMA, all the better.
CIO: You're fired.
I've been swashdotted -- Elmer Fudd
If you offered to pay them to fix the bug, it would probably be a shade more consistent with your "I don't work for free" stance. Or is it just other people who should work for free?
What the heck is FLOSS ?
There was a 2002 paper published by the Mitre Corporation that used the term "FOSS", meaning "free and open-source software". As far as I know, this was the first use of the term, but it may go back a bit farther than this.
I don't, however, have any idea what "FLOSS" is supposed to mean. Assuming that it isn't related to dental hygiene, what is it supposed to stand for ? "Free {Linux, liberty, low-cost} open-source software" ? Just a nonsense corruption of "FOSS" ?
The closest explanation I can find is this blog entry by David Wheeler: "Free-Libre / Open Source Software". Is this really what people are trying to say ?
DO NOT LEAVE IT IS NOT REAL
is not very positive. If you ever dare to ask if any progress has been made, or for an ETA on a fix, you're bound to get a "well why don't you fix it yourself" indignant reply.
If progress is made, you'll see patches added to the bug, or comments from developers discussing the fix. Parents get annoyed by incessant kids in the car asking "are we there yet?", and developers get annoyed by incessant users asking "is this fixed yet?". In both examples, the question's answer is obvious.
Spamming a bug with comments like "why isn't this fixed?", "this bug still annoys me", "don't wontfix this bug" and "this bug is really old and annoying, you guys suck and don't care" doesn't help fix the bug - I can't speak for other developers, but getting many useless emails about a bug only makes me more likely to remove myself from the CC list and forget about it. Having to read through 150+ "why isn't this fixed" comments to find relevant information doesn't help anything either. If someone takes the time to figure out where a fix for a bug needs to go, or contributes something, it's different.
I would be more than willing to contribute code under contract for this project. Unfortunately, my services do not come free.
Mozilla is free. Many of the people who fix bugs (for example, me - you'll have to copy and paste that URL) aren't paid. Whining about volunteers not fixing a bug you care about doesn't do anything. Insulting them is even less productive. If you don't have anything constructive to say, don't bother people.
My server
I would be more than willing to contribute code under contract for this project. Unfortunately, my services do not come free.
I know this that was probably just an indignant reply, but I think you escalated it too much.
Out of curiousity, why should one expect to be paid to contribute to a product they themselves get for free? Free software generally doesn't allow the users to control the priority of bug fixes, and it's not as if they have a big enough budget such that they can pay people to fix the bugs they themselves complain about.
If you want a specific timeline for a particular project, rather than letting the (unpaid) developers perform their own opinion of how a bug triage should prioritize bugs, I suspect that you'd have to contribute.
"you're bitching that they won't pay you to work for them, when you don't pay them for their product?"
And complaining about how slow they are to fix their free product.
I knew a guy who participated in a church program to distribute donated furniture to the needy. They showed up at one house and the lady told them to take the couch back since it didn't match her drapes. For some reason, he stopped participating.
FOSS means that you don't have to wait for someone to change program behavior if you do not want to do so; however, it also means that you don't have any leverage if you want them to change the behavior for you -- they will always be happy to refund your $0.
Hmmm. That's a rather difficult conclusion to reach if you really read the article and think about it. Alex accepted the blame where he messed up, and noted other places he wasn't sure about.
The fact is,the other person should not have reposted someone else's blog entry without permisison.
The article was quite insightful. Hopefully it will lead to a better process.
This guy made the #1 mistake you can make when it comes to bug advocacy. He assumed his bug was more important than all the others. It had to be fixed now! Now! Now! Now!
Which can be entirely correct, but you don't get anywhere by running around like chicken little trying to make everybody look at your bug. They heard you the first time. If you don't have any new substantive information to give them, sit back and relax. People never respond to selfish requests well. It can even discourage them from taking a look at it.
>Whining about volunteers not fixing a bug you care about doesn't do anything.
Welcome to the real world. This is why companies have sales people/help desks/managers. The OSS model does away with it, and so now you see why they are needed.
>Insulting them is even less productive. If you don't have anything constructive to say, don't bother people.
Sort of like putting up your code for everyone to see and reviewing it (isn't this one of the strenghts of OSS?), people will look at your application. And they will critize on it. Don't want to hear what they have to say, don't listen.
The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
This bug was a security bug in part because Firefox 1.0 changed the default download directory so that downloadable files were saved directly to the desktop.
Microsoft is always criticized for having bad defaults. In this case, having the default download directory be the desktop was a bad default. I would argue that you wouldn't neccessarily do bad to create a folder for each downloadable file. No one would be annoyed by that, and it would provide protection in the file system for any future holes.
You could also have a "recently downloaded files" directory on the desktop. Even a shortcut to "Location of downloaded files". Mozilla has been known for its innovation. Using the desktop is not innovative--the desktop should never be a permenant storage location. Everything Microsoft puts there is a shortcut.
I also question whether it was wise to change or set defaults in a "1.0" milestone release.
First off, if someone reports a bug, it should be ASSUMED that there is a potential security issue there, until proven otherwise. Why? Because there are generally side-effects. Even if the bug doesn't directly do anything nasty, it may very well cause something unintended which, in turn, causes something else unintended, and so on. Programmers generally talk of such effects "cascading" or "snowballing", because the effects usually do build up over time. Sooner or later, this will result in a corruption of data, a program crash or an exploit due to insufficient value checking.
There are two classes of bugs in a computer program. Those that cause the program to crash, and those that don't. The second type are much harder to track down (because you've no real indication of where the problem started), but they are generally much worse and much more prevelent.
The "correct" way to handle bugs is to assume that (almost) any problem puts the software at risk of a non-fatal bug that could (eventually) destabilize the program or open an exploit. Spelling errors in text messages are probably OK, but even there, if you're placing them in fixed-length buffers, it is saner to check and be sure that the risks are low than to ignore apparently trivial "appearance" stuff that could be catastrophic. I've seen programmers give themselves buffer overflows, I've even seen programmers rely on certain OS quirks when an overflow occurs. The code may not be portable, and it sure as hell isn't safe, but it does work.
(I've actually seen some code that won't run, unless the debug flag is present. The code will actually segfault if the extra padding the debug data creates is not there. Not from the Mozilla team, this was in a prior place of employment, but it does demonstrate that coding is not just about making something "work" it's about making it work for the right reasons.)
Now, the Mozilla team is probably simply too small to regard every bug entered in their database as a potentially critical show-stopping security hazard. This, however, reflects more on the userbase than on the Mozilla folks. Open Source works if, and only if, the "lots of eyes" out there looking for problems also translate into "lots of hands" for fixing problems.
Sure, not everybody is going to be a coder. So? If a mere 1 in every 100 users took the time to chase down not only the bug as seen, but at least some of the prior bugs that that bug depended upon to do anything at all... Mozilla would be in a lot better shape.
Politics in projects don't help. GCC and Glibc suffer badly from a management style that can be diplomatically summed up as "Old-Style IBM without the money - or the justification". There's a lot of "Not Invented Here", "Somebody Else's Problem" and "It Works For Us", although the GCC team is apparently a lot better than it used to be.
The moment any project suffers from any of those three things is the moment that it is under a self-imposed sentance of death, to be carried out the moment a better alternative arrives, where the only possible hope of a reprieve is to tackle those attitudes and eliminate them.
9 out of every 10 security bugs are caused by a fault in attitues, at the time of coding or later, and not by any fundamental nature of computing.
BTW, this is off-topic, but biologists and geneticists are mourning the passing of one of the three scientists who discovered the structure of DNA. The BBC is reporting the death of Professor Maurice Wilkins, aged 87. He died in hospital, no cause was given.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
yes, but the but affected versions from 0.8 on also.
the download link on the website now though, links to a fixed firefox
I follow the SDK and GDN principles.. Spelling Dont Kount, Grammer Dont Neither
I'm flabbergasted that the mozilla security people seem to think that "hiding" a previously public bug after it's noticed that it has security ramifications is an effective way to keep black hats from noticing it.
I think it's safe to assume that black hats interested in finding 0-day security holes in mozilla have already, or soon will create a mirror of the bugzilla archive, with history. Then they can look for bugs that are suddenly removed from the public bugzilla archive, and have some very good candidates for fresh security holes.
And there's no way the mozilla security people can effectively combat this. At best they get into a technology arms race with the black hats, trying to figure out what techniques they're using to spider and mirror the archive.
Once a bug is posted to a public bug tracking system, even if it's only been there for an hour, you might as well give up and assume it's widely publically known.
Oh and in my personal experience, the best way to get a security bug fixed once you discover it is to immediatly write an exploit, clearly flag the bug as a security hole, and post it to a public forum with a sifficuently broad readership that someone in a position to fix the bug will, be that the project's BTS or bugtraq.
see shy jo
Not sure if anyone noticed.. but this post happens to support some of the anti-Linux talking points:
Linux developers are lazy and/or fickle. They will work only on what they want to work on.
"...only makes me more likely to remove myself from the CC list and forget about it."
There is little/no money to be made from developing Open Source
"Many of the people who fix bugs (for example, me) aren't paid."
Running Mozilla or Firefox in a chroot environment would greatly enhance security.
I recently tried to get this working but didn't have much luck (haven't given up yet). There isn't much info on the web.
I currently run Firefox under a separate user ID, which is better than the default.
Any suggestions to get chroot working with Firefox?
The "Libre" is there to "thoroughly describe the movement in one acronym". This is becasue of the dual meaning of the word "free" in the English language. The French have two words that translate to "free": Libre and Gratis. The later refers to cost rather than freedom and "free-gratis" software such as Acrobat Reader, Yahoo Messenger or Bonzi Buddy have nothing to do with the movement.
I agree that the acronym is unfortunately rather stupid. "Remember kids to use FLOSS daily"...whatever...
Wow.. one post, so much criticism. I honestly haven't experienced that on /.
;p
/. ) I was flamed.
Guess it's not a good idea to criticize Mozilla developers
OK.. allow me to respond to all of the replies in one post.
1) Bug reports = good. Insulting bug reporters = bad.
As a developer, I'll tell you that having your customers report bugs to you is a GOOD THING. Something that you want to ENCOURAGE. There is no amount of alpha or beta testing that can substitute for real world use. However, I've been encouraged by this experience to very much just "shut up and take it or leave it" (paraphrasing from one of the more colourful indignant replies I alluded to). I'm not going to report more bugs if this is the response I'm going to get to them. Which is a BAD THING for the Mozilla project.
2) Encouraging and reminding developers = good.
Developers are human beings. They can forget, get distracted, etc. And like all people, sometimes it's a good thing to remind them of outstanding issues. Perhaps they forgot about it? Perhaps they've completed the task, but haven't checked it in? Perhaps the guy responsible for the bug has too much work on his plate, but is reluctant to say so without being prodded.
Certainly, a post every few days asking if the bug's been fixed is just about as annoying as "are we there yet?" queries on car trips with children. But that was not the case here.
3) There ARE paid developers working on Mozilla
Most of them work for Netscape. I wouldn't doubt if there were contract workers as well. Personally, as an independant developer, I don't have the time or resources to program if I'm not being compensated for it. The question was asked why I don't fix it myself, and I gave a truthful answer. As a result (as here on
I hope this clears up any confusion.
I am the maverick of Slashdot
Anyone who is claiming that FLOSS is the perfect software development model is either trying to sell you something or simply mistaken. One of the weaknesses is simply everything is subject to interptation.
The people who find the bugs are often do not agree with the people fixing/writing the application. If you are using one of the "for profit" models, its easier to prioritorize bugs: you target the ones that are the most expensive first. With FLOSS it is the one that is most anoying. A bug might be the most anoying bug in the world but if the core team is not going to hit it they aren't inclined to fix it.
What is implied in the FLOSS development model is that the reporter is savy enough to jump into the code and either fix it themselves or give enough inside help to someone who can to cut down the fix time. When this does not happen you have problems.
In short, OSS is IMHO a better model for colaborative project development. However no one should ever believe it it is perfect. Everyone must remember that neither colaboration nor agreement are guarenteed with FLOSS.
No :), but people who are more experienced/skilled get more rights in Bugzilla. With those extended rights you can fill a bug as NEW (which doesn't necessarily mean your bug gets more attention).
He seems to have gotten a bounty from the Mozilla Foundation for this.
What???? FRENCH words spoken on US soil? Change it to "FFOSS" = Freedom Fries Oopen Source Sofware.
"Long run is a misleading guide to current affairs. In the long run we are all dead." (John Maynard Keynes)
Yes, ideally all bugs are fixed even more rapidly. But originally this wasn't marked as a security bug, and nonsecurity bugs often take more time to fix than you'd wish in any development process:
What changed everything was marking it as a security requirement. Here I agree with the author - the author should have identified this as a security problem in the first place. And I'm really sympathetic to his sitatuation; we all make mistakes, and at least he reported the bug in the first place. Thankfully, a later reader DID realize this, and raised it to a security issue. As a security issue, suddenly the "unlikely" problem becomes "near certainty" since an attacker WANTS to cause trouble, and will work to cause the unlikely to happen.
And once it was labelled as a security problem - look at the speedy response! It was fixed in less than a half hour - that's extraordinarily fast in any software development process, OSS/FS or proprietary. It's even more amazing because the problem was in a completely different place than 3 previous developers had thought... so this was clearly not an easy bug to find and fix (at least for most project developers).
And Firefox is still at the "previous release" level, it's not even officially released! I routinely use Mozilla and Netscape, not Firefox, because Firefox THEMSELVES state that the product's not ready. When they say it's ready, I'll let other people try it out first; version 1.0s are often a little wet behind the ears (remember Windows 1.0? Probably not, and there's a reason for that). But once Firefox 1.0 is out for a little while, I'll probably switch to it; it looks really nice. Obviously a lot of people
Getting ansy about taking a little extra time to find a non-security bug, when the product can't be released til it's fixed anyway, and it's hard to fix, seems a little excessive.
The process issues he raises are interesting issues, and they're certainly worth addressing. E.G., how do you "make secret" that which is already public? But I'm sure there are many possible answers; discuss, pick one, and move on.
- David A. Wheeler (see my Secure Programming HOWTO)
Today's Headline - A Security Bug In Mozilla - The Human Perspective
;o)
Tomorrow's Headline - A Security Bug in IE - Sweet Jesus, Microsoft Fucking Sucks Yet Again
Don't worry, I hate Microsoft too
FLOSSing by itself is not enough. You must also BRUSH to prevent tooth decay and maintain your health.
It's certainly not all right for someone to publish a vulnerability without contacting MS; any responsible FOSS developer will agree. However, once a security vulnerability is in the wild, it's in the wild, and pretending it doesn't exist will not help matters any.
The big beef most FOSS developers have with MS lies in the fact that the current rendering engine for MSIE, Trident, is obsolete, MS acknowledges it as such, and yet still refuses to overhaul it. I quote from Wikipedia (emphasis mine):
Now, this is a problem because many Windows users use versions of Windows which are obsolete: 98SE, ME, 2000. When Longhorn comes, this trend will of course hold true: people don't rush to the stores to buy the newest Operating System version. This means that people will be using still old versions of MSIE long after IE7 comes, which will, of course, be unsupported by MS because they don't want to trail support for 5 or 10 different versions of a single product.
Finally, tying the web browser to the OS version ensures that a product that is upgraded for free today won't be in the future: remember, you may get the "newest" version of MSIE for free, but you must pay $50 or $60 (if memory still serves) for a new version of Windows, not counting the hardware upgrades which prove necessary. Most people will think that the old version works "well enough" and blissfully go on surfing the Web. Remember, security vulnerabilities are such because they're not obvious.
In conclusion, FOSS developers do not criticize MS for keeping quiet about security vulnerabilities which do not yet have a fix; they criticize it for denying the need for a complete overhaul of their application even faced with massive evidence that their rendering engine has given what it had to give; instead, they concoct a scheme to force users to upgrade (spending money they might not have) in order to keep their data safe.
I use the following shell script to create hourly backups using rsync. It was taken from a very nice tutorial called something like "easy automated backups using rsync". Google should find it.
:)
o ther/dir/partition/or/system
Ad the script to an hourly cron cycle. All the backups will take only ORIGINAL_SIZE + CHANGED_FILES_SIZE. This script does 9 backups spanning nine hours into the past. Or days, or weeks or whatever you set your cron cycle to.
You can restore from backups simply by copying the desired file from one of the bak.n dirs. Of course, subversion or CVS will give you nice backups as well but this is pretty easy to do.
If anyone has any suggestions for improving the script, please reply!
#!/bin/bash
SOURCE=/home/someuser
DEST=/some/
rm -rf $DEST/bak.9
mv $DEST/bak.8 $DEST/bak.9
mv $DEST/bak.7 $DEST/bak.8
mv $DEST/bak.6 $DEST/bak.7
mv $DEST/bak.5 $DEST/bak.6
mv $DEST/bak.4 $DEST/bak.5
mv $DEST/bak.3 $DEST/bak.4
mv $DEST/bak.2 $DEST/bak.3
mv $DEST/bak.1 $DEST/bak.2
mv $DEST/bak.0 $DEST/bak.1
rsync -a --delete --link-dest=$DEST/bak.1 $SOURCE $DEST/bak.0
# End script
"A few great minds are enough to endow humanity with monstrous power, but a few great hearts are not enough to make us w
So.. please help me understand how this reflects so poorly on the Mozilla developers? Also, how does the way this was handled put them in the same crowd as MS? Especially after MS is caught sitting on serious security flaws for six months or more then sneaking the patches into a service pack without ever telling anyone the flaw existed?
Somehow, however, the quality of the product hasn't suffered; lots of work continues on Firefox. In the past, before open source, such a thing would be a death nell to a software project.
That's what you missed, listening to anyone with any level of maturity and experience in the OSS community . Red Hat doesn't say that can NEVER happen with OSS. Linus doesn't say its IMPOSSIBLE for OSS software to ever have bugs or security issues that aren't found and fixed. The Debian developers don't claim they have fixed every single potential bug in every single package they put out.
One of the most annoying things users do is pick one single instance and say "HA!!!, this proves OSS is whatever". Newsflash, one OSS project doesn't=every OSS project. There is well written and secured OSS code out there and there is shoddy insecure OSS code out there. Nobody ever claimed that OSS is a panacea for all security issues.
Nice straw man though. Insightful my ass.
If you wanna get rich, you know that payback is a bitch
Spamming a bug with comments like "why isn't this fixed?", "this bug still annoys me", "don't wontfix this bug" and "this bug is really old and annoying, you guys suck and don't care" doesn't help fix the bug
On the flip side, each program has its own bug tracking system, with its own specialized demands for information that I have to hunt up and assemble in its own specialized manner. Furthermore, I have to localize the bug and provide a reasonable testcase. And after spending that time to help you find a bug in your program, to be told that "nobody uses that feature", or worse yet just ignored, isn't amusing and encourages me, in the future, to work around bugs instead of reporting them, since we know you aren't going to fix them.
In business, if a virus sweeps your network and deletes 10-15 peoples home directories, no sweat. You tell them to keep working, and one at a time restore their files from the backup you did of those directories yesterday. (Any non-braindead company I would hope would be doing daily backups of user data). But if the virus takes out the *OS*, thats a whole other ball of wax. The sysadmin, who is a limited resource, has ot go around to N machines and re-install/re-image them. And for the hours this takes him, all the people involved cannot do any work. So you're basically throwing thousands of dollars of salary per hour down the toilet.
You're seeing the effect of bug 179944 ( http://bugzilla.mozilla.org/show_bug.cgi?id=179944 ). To learn how to apply for the "canconfirm" privilege on bugzilla.mozilla.org, which grants the ability to file NEW bugs or to change UNCONFIRMED bugs to NEW, read Bug Triagers' Guide and Before you mail Gerv. If you're good at reducing examples of Gecko misbehavior to test cases, you may want to apply for "editbugs" as well.