Уязвимы все программы, которые используют SSL-библиотеку от Apple, в том числе браузер Safari, почтовый клиент Mail, приложения Calendar, FaceTime, Keynote, Twitter, iBooks. На браузеры Chrome и Firefox уязвимость не распространяется, потому что они не используют библиотеку sslKeyExchange.c от Apple.
Уязвимость вызвана тривиальной ошибкой в исходном коде, где используется две строки goto fail подряд. Первая из них корректно связывается с оператором if, а вторая вызывает завершение программы.
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; ...
Проверить наличие уязвимости на конкретном устройстве OS X можно, если попробовать зайти по ссылке https://www.imperialviolet.org:1266/. Если она открывается на порту 1266, то баг в наличии.
Как вариант, можно воспользоваться утилитой otool. Уязвимая библиотека sslKeyExchange.c имеет номер версии 55471.
otool -L `which ssh` | grep 55471

«Мы в курсе проблемы и уже подготовили программное обновление, которое выйдет очень скоро», — сказали представители Apple в интервью Reuters. Неофициальный патч можно взять здесь.
В то же время кто-то зарегистрировал домен gotofail.com: сайт посвящён багу Apple.
ссылка на оригинал статьи http://habrahabr.ru/post/213725/
Добавить комментарий