Apple SSL Bug In iOS Also Affects OS X
Trailrunner7 writes "The certificate-validation vulnerability that Apple patched in iOS yesterday also affects Mac OS X up to 10.9.1, the current version. Several security researchers analyzed the patch and looked at the code in question in OS X and found that the same error exists there as in iOS. Researcher Adam Langley did an analysis of the vulnerable code in OS X and said that the issue lies in the way that the code handles a pair of failures in a row. The bug affects the signature verification process in such a way that a server could send a valid certificate chain to the client and not have to sign the handshake at all, Langley found. Some users are reporting that Apple is rolling out a patch for his vulnerability in OS X, but it has not shown up for all users as yet. Langley has published a test site that will show OS X users whether their machines are vulnerable."
The researcher who found the bug is Adam Langley. CIA headquarters is in Langley, Virginia.
Coincidence? I think not!
#DeleteChrome
Let see how far back Apple will patch this thing, if they leave Snow Leopard (10.6) out for the wolves or not.
In the past under Jobs, only the last two OS X versions got security updates. He was a real prick about trying to force people to upgrade to their latest bloated your machine so you have to buy a new one prematurely crap.
blog
I bet you give root access to the world.
a blue background with white text
mind is blown
Some bloggers and commentators online (no mainstream media news sites... yet) have suggested that this bug was introduced by the NSA based on the fact that Snowden's leaked slides showed evidence that the NSA had developed and was working on further ways of targeting and compromising secured iOS traffic.
We know the NSA compromised RSA through Dual EC_DRBG. It's not hard to imagine they wanted to compromise SSL/TLS on Apple platforms.
The bug was found via internal code review according to the credits for discovery, which means nobody else has disclosed they knew about this in the wild (so this is an exposed zero day crypto exploit on both OS X and iOS platforms).
This link is informative - the kicker is he properly indented but obviously duplicated and incorrect "goto fail;"
https://www.imperialviolet.org...
static OSStatus ...
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
uint8_t *signature, UInt16 signatureLen)
{
OSStatus err;
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) ...
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
fail:
SSLFreeBuffer(&signedHashes);
SSLFreeBuffer(&hashCtx);
return err;
}
Maybe this came out due to bad coding practices, but the kind of bug where the code visually looks ok on the surface, compiles and passes without compiler warnings, and works fine aside from allow the comprise is very suspect.
And at the minimum the NSA has been exploiting this rather than alerting people. Our government needs to stop weakening computer security and go back to working for the people, not against them.
C and C++ still haven't fixed this egregarious bug in the standard. There is no reason for single line, un-braced blocks. People use them to show off how "cool" they are that they don't need to brace because it's only one line. It makes for difficult to spot bugs like this. We need to actually yell at the people on the standards committees to FIX THE BUGS in the standard. There are other really obvious ones and they all should be fixed before adding more new features. YES I'M LOOKING AT YOU C++14! There are plenty of ways you can make a new standard still work alongside code from an old one (compile old, broke, brittle, stupid code with a compiler flag indicating the old standard and new, beter files (yes "translation units c++") with the new one. Introduce a #THIS_FILE_IS_STUPID pragma to disable sanity on old code compiled with the new standard and plenty of others. Pick one, bless, it, implement it and FIX THIS CRAP http://opensource.apple.com/so... The 35th and 36th incidences of the words "goto fail;" in that file are the problem, not easy to spot until you look really closely and it's a bug that a sane standard would make impossible. FIX IT!!
I bet your mom gives out root access to the world.
No, it was a stupid coding standards error
if (x)
goto error;
goto error;
if (y)
goto error;
error:
return
if the coding standards required braces around the code block like this
if (x)
{
goto error;
goto error;
}
it would have eliminated the effects of this coding error
Sleep your way to a whiter smile...date a dentist!
Or maybe ios 7 takes some getting used to but is basically fine. It'd be nice if they added some chrome around buttons. In general, the new UI is less cramped and more gestural. I guess this expects more from the user as some features are blatantly visible.
So how does "Researcher Adam Langley" get access to the code in order to do "an analysis of the vulnerable code in OS X"?
Do these experts have access to the source via some agreement with the vendor?
APPLE DOESN'T TEST THEIR SECURITY CODE
I'm yelling because it's really a big deal.
I am forced to switch to Crome because of this and now I'm reading Slashdot Beta. FFFFFUCK BETA!!
At mine, the test site at https://www.imperialviolet.org:1266/ does not even load. Firefox says:
Secure Connection Failed An error occurred during a connection to www.imperialviolet.org:1266. A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot. (Error code: sec_error_pkcs11_device_error)
"You're bracketing it wrong."
Goto in a modern program... really? Hasn't the world pretty much come to the conclusion, since the invention of structured programming, that "goto" should be avoided. Every programming class I have ever taken I have been told to never use goto. Did Apple not get the memo?
>> The researcher who found the bug is Adam Langley. ...
>> Bug removes SSL
it's a feature, not a bug.
https://pbs.twimg.com/media/Bh...
aaaaaaa
If the language would require the braces it would even be better...
No, it was a stupid coding standards error
Which is just what you would do to have plausible deniability. :-P
If the language would require the braces it would even be better...
You mean like this?
if (0)
{ goto fail; }
{ goto fail; }
exit(0);
Someone had to do it.
If you like, yes. Because that usage would be certain to have people looking closely to see what the fuck is going on.
Except when you consider the possibility that this was introduced with a code merging utility with line number issues, and no human actually looked at the code for a good while.
Honestly I don't see how having two indented lines under an unbraced if sticks ouy any less. It certainly jumps off the page for me.
Someone had to do it.
That's even more alarming. This is not just "Widget A", this is the main TLS implementation in the operating system. You just don't do automatic code merges without looking at the result. Seriously.
Why on *earth* does this code have G*T*'s in it! !!!!
I'd suspect you were an Aussie, but you said mom, not mum...
I have no idea why this says I'm Anonymous Coward. I don't see anywhere to put in a name. I found this site on a search for "does the 'gotofail' bug affect iOS 6?" so I hope my question can be answered here. I have 6.1.4 on my iPhone 5. When I try to update to to 7.0.4 (which I don't really want to do but I read that I must to get rid of this bug), it tells me "iOS 7.0.4 failed verification because you are no longer connected to the Internet." But I am connected to the internet. I have the icon, I checked in settings to see if I'm connected and I can surf the Internet. Do I really have to do this update and if so, how do I do it? I've been getting this message all day. I thought maybe there were a bunch of people trying to update at the same time, but I had no problem updating my iPad.
Any help would be appreciated.