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) [5890]
назад «  » вперед

аналогичные материалы
Маск поддержал создателя Дилберта, обвиненного в расизме // 27.02.23 20:39
Яндекс неуклюже оправдался за установку Теледиска // 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
 
последние новости
Три миллиона электронных замков готовы открыть свои двери // 22.03.24 20:22
Doom на газонокосилках // 28.02.24 17:19
Умер Никлаус Вирт // 04.01.24 14:05
С наступающим // 31.12.23 23:59
Четверть приложений, использующих Log4j, до сих пор уязвима // 11.12.23 18:29
Google Drive находит файлы // 07.12.23 01:46
Google Drive теряет файлы // 27.11.23 20:02





  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach