BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/rsn/archive/2014/02/02.html

Лишний goto поломал SSL/TLS в iOS
dl // 22.02.14 17:13
Анализ внезапно выпущенного на днях обновления iOS до версии 7.0.6 выявил замечательную ошибку, позволяющую сайту отдавать iOS-устройствам одноразовые ключи, подписи которых вообще не имели отношения к его сертификату.
[Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2014/02/02.html]
Т.е. приводящей к фактически полной неработоспособности всего механизма SSL/TLS. В переводе на русский язык: любой владелец точки доступа, на которую налетели любители халявного WiFi, может элементарно реализовать атаку класса man-in-the-middle, на ходу меняя ключи и читая весь как бы защищенный трафик к любимому вконтакту/твиттеру/фейсбуку (или, что хуже, к платежной системе).

Причина ошибки - лишний goto (привет копипасту), который всегда приводил к переходу в конец функции, минуя проверку sslRawVerify.

Эта же уязвимость присутствует и в MacOS, Apple обещает выпустить исправление в ближайшее время.

А вообще, увидев в 21 веке такое количество goto в коде, хочется передать отдельный привет отпраздновавшему на той неделе 80 лет Вирту. Спагетти-код неистребим.

Update: Хочется уточнить - сам по себе goto на блок очистки перед выходом из функции, конечно, вполне допустим и ничуть не хуже, чем привычный break или continue (хотя в таких ситуациях особенно начинаешь ценить автоматическую отработку деструкторов из C++). Но при таком количестве типовых проверок с goto их нужно обвязывать элементарными макросами, которые и делают код чище, и исключают подобные ошибки. Собственно, те же привычные break и continue в C являются точно такими же обвязками вокруг goto на конец блока, только замаскированными на уровне языка. Строго говоря, их введение тоже было избыточным, но без них подобных косяков было бы гораздо больше.

Источник: Adam Langley's Weblog      
теги: ios, клоуны  |  предложить новость  |  обсудить  |  все отзывы (0) [5290]
назад «  » вперед

аналогичные материалы
Яндекс неуклюже оправдался за установку Теледиска // 29.07.20 17:09
Infosec-сообщество не поддержало отказ от термина black hat // 04.07.20 18:50
Расово верная чистка IT-терминологии // 16.06.20 18:03
ГПБ vs TV // 06.06.20 21:47
Все дополнения в Firefox поломались из-за просроченного сертификата // 04.05.19 15:39
Страшный бэкдор в роутерах Huawei оказался обычным телнетом // 01.05.19 17:43
Facebook хранил часть пользовательских паролей в открытом виде // 22.03.19 10:13
 
последние новости
Phrack #70/0x46 // 07.10.21 02:46
Возможно, Facebook наступил на те же грабли с BGP, что и Яндекс десять лет назад // 04.10.21 23:36
50 лет электронной почте // 02.10.21 00:00
Заканчивается действие одного из корневых сертификатов Let’s Encrypt // 30.09.21 17:01
Очередной юбилей Linux // 25.08.21 14:56
HP закрыла 16-летнюю уязвимость в драйверах принтеров // 20.07.21 15:14
Microsoft советует пользователям отключить службу печати // 17.07.21 03:22



  Copyright © 2001-2021 Dmitry Leonov Design: Vadim Derkach