13-Year-Old Password Security Bug Fixed 130
arglebargle_xiv writes "In a sign that many eyes don't really make (security) bugs shallow, a thirteen-year-old password-hashing bug that affects (at least) PHP, some Linux distros (Owl, ALT Linux, SUSE), and a variety of other apps has just been patched. This problem had been present in widely-used code since 1998 without anyone noticing it." Better late than never; reader Trailrunner7 points to this article outlining the dangers of old exploits, given old code for them to toy with.
At least it was fixed (Score:3, Interesting)
How many bugs are there in commercial software that we don't know?
What we do know is that there are many exploits for commercial software. The vendors claim that such exploits only exist because that software is more popular, but this does not explain why Apache doesn't have four times more exploits than IIS [netcraft.com]
Re:At least it was fixed (Score:4, Insightful)
How many bugs are there in commercial software that we don't know?
Heh.
Monday:
"Really old bug finally patched in some popular Microsoft software!"
This shows how terrible proprietary software is!
Tuesday:
"Really old bug finally patched in some popular OSS!"
This shows how terrible proprietary software is!
Re:At least it was fixed (Score:4, Interesting)
In all fairness, software is only as secure as the culture behind it. Everybody using PHP knew of this bug for ages, just, nobody gave a damn. Except those who didn't know that also didn't give a damn.
PHP has never been crazy about security, what else do you expect from a runtime that once let you insert arbitrary variables into the script namespace?
The few people using PHP who care about security that much are using DIY password management anyway.
So then the real question is!!! (Score:1)
So then the real question is... When was it fixed in the "BSD's"???
Ducks:)
Re: (Score:2)
Well, OpenBSD does have a custom branch of Apache =)
I think it's a fair point though, the BSDs seem more focused on being clean and correct, where Linux is more focused on extending functionality.
Re: (Score:2)
Ah, the astroturfing MS fanbois are at it again....
You can tell we're in for an intelligent discussion already.
How comes Apache doesn't have four times more exploits than IIS despite having four times the market share?
Did you ever stop and think about why people mess around with these exploits to begin with? Have you been paying attention to the news lately?
Sadly /. has become infested by high-level UID that keep on hating on OS X and Linux and it's really pathetic to see you MS astroturfing fanbois getting upvoted.
Are you done acting like you're the voice of reason alone in a sea of bias?
Re: (Score:2)
How many bugs are there in commercial software that we don't know?
And how many bugs are there in FOSS software that we don't know? The answer "none, because many eyes..." does not sound so convincing now.
Re: (Score:2)
Who ever said "none, because many eyes..." rather than "fewer, because many eyes..."?
It's a strawman. Nobody sensible ever made that claim.
Bug "half-life" (Score:2)
Re:At least it was fixed (Score:5, Insightful)
Uh-huh. Because "In a sign that many eyes don't really make (security) bugs shallow" is such an unbiased opening for the story.
Re:At least it was fixed (Score:4, Insightful)
And why is that not a reasonable opening for the summary?
Isn't the 13 year existence of a security bug in open source code a valid argument that open source does not really mean a product is more secure?
The correct answer for what makes a product secure: Proper coding practices combined with proper configuration.
IMO, Apache is certainly a better choice for a web server, but my opinion is not based on that fact that it is open source and instead based on the fact that it is actually more secure than IIS. Apache appears to be less often compromised, therefore I trust it more. However, if IIS one day holds the mantle of least compromised, then I will certainly consider it (I'm holding my breath though).
Re:At least it was fixed (Score:5, Informative)
Isn't the 13 year existence of a security bug in open source code a valid argument that open source does not really mean a product is more secure?
No, it isn't. In order to reach that conclusion, you'd have to compare it against closed-source code. Do you really believe there aren't now and have never been bugs that old in the closed-source world?
Re: (Score:1, Interesting)
Does it matter? Being open source is NOT what makes something secure. Following proper coding practices and being properly configured make a program secure. Open source *may* help a project follow better coding practices... or it may hinder a project by having too many chefs in the kitchen... hard to know.
But I do know that I'm not going to run some software merely because it is open source. I am going to run it because it has demonstrated security in the past.
In other words, I go with what has been pro
Re: (Score:2)
based upon vulnerability disclosures and compromises
So the more vulnerabilities the vendor hides, the more you are convinced to buy their software. Sounds like a plan!
Re: (Score:2)
Re: (Score:2)
Well not necessarily, I don't completely agree with his point, but I can't disagree either. If the vendor succesfully hides the vulnerabilities until they are patched, then that is = to a bug in an open source product that wasn't noticed until it was patched
Well yes, that's entirely my point. Those bugs you don't know about until they're patched, so it's impossible to factor them into your consideration when evaluating a product. If you're looking at two products, an open source system with 100 open issues, and a closed source with 5, you cannot compare the two based on disclosed vulnerabilities - they're tracking different things. The open source metric is a representation of known bugs. The closed source metric is a representation of known bugs that the deve
Re: (Score:2)
What they're saying is that the fact there is an old bug in open source software, doesn't necessarily mean open source is inferior to closed - especially when there's no sure way of knowing about comparable bugs in closed source software.
No, but conversely it also doesn't necessarily mean that open source is superior to closed if you can't directly compare them.
Re: (Score:2)
Which is fine, since nobody was claiming that
Re: (Score:2)
Isn't the 13 year existence of a security bug in open source code a valid argument that open source does not really mean a product is more secure?
No, it isn't. In order to reach that conclusion, you'd have to compare it against closed-source code. Do you really believe there aren't now and have never been bugs that old in the closed-source world?
No, the usual pro-FOSS argument isn't "FOSS is more secure than closed source software because fewer bugs happen to have been found" it is "FOSS is more secure by definition, because of the many eyes thing."
Re: (Score:3)
Isn't the 13 year existence of a security bug in open source code a valid argument that open source does not really mean a product is more secure?
(Emphasis added)
Not unless you have some measurement of non open-source code against which you can compare. Which the OP pointed out . And you (or some other AC, can't really tell you guys apart) flamed him for.
Re: (Score:2)
Isn't the 13 year existence of a security bug in open source code a valid argument that open source does not really mean a product is more secure?
It's not really insecure if there isn't a practicable exploit for it. This bug is more of a "sticky door" - annoying, but not really a big problem in day-to-day use.
Re: (Score:2)
Isn't the 13 year existence of a security bug in open source code a valid argument that open source does not really mean a product is more secure?
No, it's not. It's a data point. It should be considered along with other data points (namely, if any bugs have been found because of open source methodology) to craft an argument.
If it can be shown that the "many eyes" theory has not solved any security issues, then you have an argument against it. One example is not enough.
Not unprecedented (Score:3, Interesting)
http://www.osnews.com/story/19731/The-25-Year-Old-UNIX-Bug [osnews.com]
These kinds of stories make me nervous, because I always assume that crackers know about these and are using them secretly.
Though this is obviously not a OSS issue. Were this Windows, it might not have been found at all.
Re: (Score:2, Funny)
Re: (Score:2)
Exactly. In Windows, you'd simply be told to reboot frequently enough so the password bug doesn't get triggered :)
Nah, windows already reboots frequently enough. Its now a "feature".
Re: (Score:2)
laugh man, its good for you. clearly I was just poking fun at it.
I use windows 7 at home and I agree its pretty stable. However if you want to argue the point, windows DOES still need rebooting after certain software installations and settings changes. Far more often than the equivalent operations under MacOS or Linux.
Re: (Score:3)
I always assume that crackers know about these and are using them secretly.
And when caught at it publish everything they have and blame you for not securing your system.
Re: (Score:2)
17-year-old issues in NTLM not many people know about (now fixed)
http://www.ampliasecurity.com/research/OCHOA-2010-0209.txt [ampliasecurity.com]
http://www.ampliasecurity.com/research/NTLMWeakNonce-bh2010-usa-ampliasecurity.pdf [ampliasecurity.com]
Re: (Score:2)
Certainly not unprecedented:
17-year-old issues in NTLM not many people know about (now fixed)
http://www.ampliasecurity.com/research/OCHOA-2010-0209.txt [ampliasecurity.com]
http://www.ampliasecurity.com/research/NTLMWeakNonce-bh2010-usa-ampliasecurity.pdf [ampliasecurity.com]
And not forgetting the arithmetic error in Windows Calculator, which first affected the calculator in Windows 1.0 (November 1985) and persisted until Windows 98 (June 1998): almost 13 years. The version for Windows 3.x was not actually fixed until 2004 as a download from Microsoft, about 14 years after Windows 3.0 was released.
The existence of exactly the same bug in OS/2's built-in Windows subsystem (definitely OS/2 2.0, 2.1, 3.0; I never used 4.0) was evidence that IBM was using exactly the same code f
Re: (Score:2)
If crackers were using them a lot and there were viruses in the wild that were using them, then people would have quickly found out about those bugs and patched them. I think the reason they stayed hidden for such a long time was nobody really exploited them.
Re: (Score:3)
If you read the report, you'll notice that the bug introduces a slight incompatibility and a slight reduction in password strength if you use the 8th bit (read none-latin) characters. With blowfish (one of the many possible hash functions)
Yes, it's a bug. Yes, it needs to be fix. No, it's not OMG we're going to be pwned!
Re: (Score:2)
This one certainly needed fixing, but probably had a fairly small impact. Few passwords have the 8th bit set in any of the characters.
Re: (Score:2)
If you use Blowfish
If you use this library
If you use extended chars in a password
then sometimes (1/8 chance) a small part of hash is ignored reducing the strength slightly ...
A lot of if's to not very much effect ...
A 13 Year Old Bug ... (Score:3)
Re: (Score:2)
That's what they meant by "13-year-old password security bug"! Turns out you could get access to any system by screaming "Cockfag!" into the microphone.
Uh Oh... (Score:1)
Re: (Score:1)
Slashdot might be getting a lot of unwanted traffic from Google search queries containing "13-year-old" now...
At least Slashdot will not be alone [google.com]
Re: (Score:3)
You know, it's weird, but ya, it'll get you traffic.
One of the things I do is run a mainstream news site. In that, pedophiles get bused for all kinds of things. Those end up being keyword rich pages that seem to come up for all kinds of fucked up variations of what pedophiles look for. There's nothing like reviewing your logs to have an amazing disgust for society as we know it.
There is only one thing I feel good about. On some keywords and phrases, we come up
Re: (Score:2)
There is only one thing I feel good about. On some keywords and phrases, we come up in the top 3 results. So the pedophiles may be looking for underage smut, but instead they're presented with news stories about other pedophiles going to jail.
Which presumably just makes them into more careful pedophiles who are harder to catch. Good work!
So if I understand this right? (Score:2)
I can't easily tell exactly what the bug is here, but it appears to require that you have your password algorithm set to blowfish and use passwords with non-ASCII characters? That doesn't seem a likely combination on any modern Linux installation.
Re: (Score:3)
In the US maybe.
Though, yes, it implies you're using accented characters and have blowfish as your algorithm.
So it's a vulnerability enabled by a very small portion of a very small population.
Which is why it lasted for 13 years with nobody caring much, except academically.
But, if you knew you could use 8-bit characters, and you generated your passwords randomly, this could affect half of your password space. Which could be significant if your passwords were kept in compartmentalized files that themselves a
Re: (Score:2)
But, if you knew you could use 8-bit characters, and you generated your passwords randomly, this could affect half of your password space.
If you generate your passwords randomly, you are going to have a hard time entering them from a lot of keyboards and OS. For example, I don't seem to be able to enter this \xa3 "pound sign" on this OS using the "alt+0163" Windows hack.
In any case, if you cut the number of selections for each character in a password in half, you cut your password space by 2^n, where n is the number of characters in your password.
Re: (Score:2)
keyboard? [keepass.com]
and I meant hyperspace. damn autocollate.
Re: (Score:2)
I have a key for that (Shift 3) ... perhaps I am one of few people who don't live in the USA ?
Re: (Score:3)
It talks about "pound sign" as the test, but claims that it is "\xa3 in C". I didn't know that C had a different definition for ASCII characters than ASCII does, and in my ASCII tables the octothorpe is 0x23. Ahh, maybe a language difference, and the "british currency symbol" is what he is referring to.
Or maybe this points out the error of relying on non-standard characte
Re: (Score:3, Insightful)
Re: (Score:1)
Slashdot strips it, it's a known bug with Slashdot since 1998, and still not fixed. What's that? 13 years? I think the HTML works ... £
It also appears that if this library was used for any other hashing, that this bug would arise. And if that included binary files then it almost certainly would have been triggered.
The main issue is that it consistently generates the wrong hash, so that it actually appears to work fine.
However the bug fix means it now generates the correct hash. Which is going to be di
Re: (Score:2)
Slashdot strips it, it's a known bug with Slashdot since 1998, and still not fixed. What's that? 13 years? I think the HTML works ... £
I can't believe an open source coded site like slashdot could have a 13 year old bug.
hmmm (Score:2)
Also proof that security through obscurity works.
Re: (Score:3)
Also proof that security through obscurity works.
Evidence, perhaps, but certainly not a proof, unless you can prove that black hats haven't exploited this in the last 13 years.
Contrary to popular belief, most black hats aren't in it for the fame, but for other reasons including personal satisfaction, thrill and in some cases monetary gains. And when you're not in it for the fame, you don't disclose what you've found -- you guard the secret carefully so you can continue to exploit it. Yes, for thirteen years. I know of active backdoors far older than th
Re: (Score:2)
when you're not in it for the fame, you don't disclose what you've found -- you guard the secret carefully so you can continue to exploit it. Yes, for thirteen years
What you are saying is that there are worms and viruses out there using it, there are botnets based on that bug? Interesting, why has no one noticed anything so far?
Re: (Score:2)
Exploits are more than botnets and viruses. There are people who log in to a former employee's server every week, copies a few documents, and leave without a trace. For years.
Some spy on exes, bosses or celebrities just for the thrill.
Some skim a little CPU power or storage here and there.
Some do single account transfers that aren't discovered.
Others simply enter machines because they can, again without running botnets and viruses.
Re: (Score:2)
There are people who log in to a former employee's server every week, copies a few documents, and leave without a trace. For years.
And those, invariably, use social engineering. You don't break a password hashing function when all you have to do is read the post-it stuck under the table.
Re: (Score:2)
Re: (Score:2)
You're doing at least as well as the "intelligence" communities. Seems that all their secrets get leaked nowadays. ;>)
Re: (Score:3)
In a sign that many eyes don't really make (security) bugs shallow
Also proof that security through obscurity works.
How is this proof of that? For all we know, crackers have been exploiting this vulnerability for years.
Re: (Score:3)
Re: (Score:2)
More like bugs that are rarely triggered enough don't cause much trouble.
Come on, it's PHP (Score:2, Insightful)
Re: (Score:2)
Uh, crypt_blowfish is pretty definitely not written in PHP. You know you can't just scan the summary for buzzwords and draw conclusions without actually reading and comprehending it don't you?
Re: (Score:3, Funny)
Re: (Score:2)
Re:Come on, it's PHP (Score:5, Insightful)
To be fair, it's hardly PHP's fault that the shared library's implementation was broken. The primary benefits of using a library (not reinventing the wheel, wisdom of many, etc.) are generally outweighed by occasionally inheriting one of their bugs. Especially since you also inherit their bugfixes. While the core PHP team is actually quite well accomplished at security (even if PHP enables any idiot to make insecure sites by virtue of being easy to learn), I'd still rather them use widely adopted libraries than come up with their own implementation.
Re: (Score:2)
Re: (Score:3)
Honestly? A second function named blowfish_real_hash_string.
Re: (Score:2)
You win, sir! Well done. Somebody mod him up!
crypt_blowfish (Score:5, Informative)
The common thread among these systems (PHP, (Open)SUSE, etc.) is the use of crypt_blowfish, a flawed implementation of the blowfish hash function. Constructing passwords that collide is easy due to a sign extension bug. A SUSE user can observe the use of blowfish in /etc/default/passwd, where the default value of CRYPT_FILES is 'blowfish'.
To be clear, the problem is a flawed implementation; the blowfish hash algorithm itself remains sound.
The PHP crypt() function supports several common hash algorithms including blowfish. The PHP 'documentation' implies that DES is default. Anyone care to speculate on the likelyhood of widespread blowfish use by public sites?
Re: (Score:1)
Just to clarify something: there is no "blowfish hash function". Blowfish is just a (symmetric) block cipher with a relatively expensive (and memory-hungry) key schedule.
Although it's true there are several ways of turning a block cipher into a hash function (via Merkle-Damgaard construction, for instance), they are obviously not the same.
In a nutshell: there is no "blowfish hash function", but a "hash function based on Blowfish".
Re: (Score:3)
Anyone care to speculate on the likelyhood of widespread blowfish use by public sites?
Wide. Many major PHP projects have been moving toward Openwall's PHPass algorithm that uses Blowfish as its preferred hashing algorithm. Note that even with this bug it's still better than the unsalted MD5 or SHA1 hashes that most projects were using previously. Today any of those old hashes can be brute-force cracked by a $200 GPU in about a day.
Re: (Score:2)
Allowing the use of single DES should also be considered a security bug.
Re: (Score:2)
OpenSSL has a blowfish cipher, which I assume doesn't have the same bug. If your system has OpenSSL, but not OpenWall, would PHP use OpenSSL?
The OpenWall site says that PHP 5.3 uses it, but is it included in the PHP binary so OpenSSL isn't an option?
17yr-old bug in NTLM not many people knew about (Score:1)
http://www.ampliasecurity.com/research/OCHOA-2010-0209.txt
http://www.ampliasecurity.com/research/NTLMWeakNonce-bh2010-usa-ampliasecurity.pdf
Not used in reasonable systems anyways (Score:2)
These moved from DES to MD5 passwords a long time ago and were never vulnerable to this.
Re: (Score:2)
Many many moons ago I seem to recall the documentation saying not to use the passwd function and to use MD5 for password storage anyway.
no reason to conclude open source is not secure (Score:4, Insightful)
Re: (Score:3, Informative)
The famous quote doesn't apply to unidentified security flaws.
The point of the quote is that when someone points out buggy behavior, the many eyeballs will quickly pierce to the heart of the bug and find a way to fix it. With fewer eyes, really nasty bugs often remain unfixed long past the time they are first identified because none of the brains behind the few eyeballs that have looked at it have figured out the fix yet.
The nature of most security bugs is that their existence is not obvious. Most software
Re: (Score:2)
You sure? Because I could've sworn security is nothing without taking into account unidentified security flaws.
Or else, you could argue the best security is blinding your eyes, screaming: "LALALALALALALA, no bugs heeere!"
This is why privileged account is so silly to be logged in to, something Windows Vista and 7 tries to fix using UAE. Unix has been superior in that department since day 0 using unprivileged accounts by default (ie. in the default Ubuntu-install). Even if there is a vulnerability, ie. in the
Umm, It's not an official fix (Score:5, Interesting)
"I am going to provide an official fix for crypt_blowfish (likely the one-liner plus added tests). I thought I'd bring the issue up on oss-security sooner rather than later."
So, the bug appears to have been found today and the developer has a one liner solution but hasn't released a patch. I think the summary did a piss poor job talking about what is affected by the problem too... specifically crypt_blowfish, which i know my company uses for a few things. It is interesting to know that this hash is now far weaker than originally thought until it gets patched (which will prolly take a long time to make it into major distros).
Anyway, i'm done bitching, definitely a story worthy of
Re: (Score:2)
We're getting close to an official fix, which includes a quick self-test on every use (not just by "make check"), with both 7- and 8-bit chars: http://www.openwall.com/lists/oss-security/2011/06/21/2 [openwall.com]
Re: (Score:2)
Importance of Clarity (Score:2)
The first, and perhaps more intriguing, is how a bug like this could sit undetected for years. Regardless of whether it's proprietary or Open Source software, bugs will remain until someone, somewhere finds them.
The second, and this is where Open Source arguably has an advantage, is how soon a vulnerability is patched once it has been found - in this case pretty fast.
And of course wheth
Re: (Score:2)
It does seem odd that people haven't run fuzzed data against a number of different implementations of blowfish and not noticed differing output. I'd have thought that would be a fairly normal thing for someone developing a crypto algorithm implementation to do.
Re: (Score:1)
It does seem odd that people haven't run fuzzed data against a number of different implementations of blowfish and not noticed differing output. I'd have thought that would be a fairly normal thing for someone developing a crypto algorithm implementation to do.
Of course. But there are reasons why this didn't happen to a sufficient extent in this case. None of these reasons are valid excuses. There are lessons to learn from this.
There were test vectors, and the implementation behaved exactly like OpenBSD's on those. The code was in John the Ripper, and it was correctly cracking password hashes from OpenBSD. So it felt like the code was working just as it should have, because it actually did (on the tests that were thrown at it). There was no expectation that
Blowing things out of proportion (Score:1, Insightful)
A flaw in an obscure blowfish implementation that isn't used by any of the major distributions is not the dire situation implied here (considering SUSE basically irrelevant anymore). This incident actually reaffirms the many eyes philosophy. Few eyes had the motive to look at this particular code, so the flaw was simply not seen.
Re: (Score:1)
Guess what, I have currently one laptop and two desktops running the latest openSUSE, so for me this bug and platform is not irrelevant.
easily avoided (Score:1)
Do people still use the same salt for all hash-functions? I assume this can be easily fixed if you just use an unique value (like the username) as a salt.
Those Lulz guys... (Score:1)
Here's what's affected (Score:2)
The impact of this is actually pretty wide. Crypt_blowfish has been gaining popularity as a hashing algorithm in PHP thanks to Openwall's PHPass framework [openwall.com]. Four years ago most PHP projects that I know were still using MD5 or SHA1 to hash passwords. Today those MD5 and SHA1 hashes can be brute-force cracked by free software running on a $200 GPU in a matter of days if not hours. So even a buggy version of Blowfish is still better by far.
So yeah, it's a wide-ranging bug but not a world breaking one. For start
reduced entropy of hashed passwords (Score:2)
"Gawker used this broken implementation, which replaced all non-ascii characters with question marks prior to hashing". link [openwall.com]
"Versions of jBCrypt before 0.3 suffered from a bug related to character encoding that substantially reduced the entropy of hashed passwords containing non US-ASCII characters.
"An incorrect encoding step transparently replaced such characters by '?' prior to hashing. In the worst case of a password consisting solely of non-US-ASCII characters, this would cause its hash to be equivalen
It's true (Score:2)
Open source doesn't guarantee the code will get looked at. However, closed source does guarantee that it WON'T get looked at.
Re: (Score:1)
The 'shut up and submit a patch, bitch' excuse really sucks in the long term.
Re: (Score:2)
Actually, it just really sucks overall.
Re: (Score:2, Insightful)
It only holds water if people are actively looking at the code and noticing the bugs, which in many cases they are not.
But you must admit that in some cases people are looking at the code, while in commercial code no one but those who developed it can take a look.
If you have ever developed code you must have noticed how often you spend hours looking at your code trying to find a bug and then someone comes looking over your shoulder and points out the obvious error.
Re: (Score:2)
It only holds water if people are actively looking at the code and noticing the bugs, which in many cases they are not.
But you must admit that in some cases people are looking at the code, while in commercial code no one but those who developed it can take a look.
If you have ever developed code you must have noticed how often you spend hours looking at your code trying to find a bug and then someone comes looking over your shoulder and points out the obvious error.
So you only the specific developer who writes a piece of code gets to look at that code in commercial software? There is no review or management process whatsoever?
In that case, commercial software is certainly more error prone.
Re: (Score:2)
Parent said "those who developed it" (the organization), as opposed to "the individual who developed it". One set is doubtless larger than the other.
More to a point -- almost every commercial organization I've been in has had one or two reviewers for each patch. Almost every well-organized open source project I've been in has had patches posted to an open mailing list that everyone is encouraged to review, and then required explicit approval from one or two individuals for merge.
You tell me which of those i
Re: (Score:2)
Re: (Score:2)
When did ESR get elevated to Linus' level?
Re:Yikes, how do you roll out a fix for that. (Score:4, Insightful)
Have a setting in the tools that call it to use the legacy/broken implementation, and enable it by default in the next patch. See: MySQL old passwords [mysql.com]. Or some sort of option that you can set on the function, similar idea.
The better but less compatible way is to put a huge warning on the patch, telling people that if the password doesn't match, check again with the USE_BROKEN_BLOWFISH_IMPLEMENTATION flag passed into the function and if that matches, update your data with the good hash and continue on as normal. That will inevitably piss off a lot of people on shared hosting and/or unmaintained applications but from a security standpoint it's the better option.
Re: (Score:1)
Everybody tells me they still see asterisks [bash.org] ... :shrug:
You posted as AC because you're embarrassed about linking to bash.org, right?
Re: (Score:1)