Спецпроекты

Разработчики ОС «Аврора» исправили уязвимость в glibc

ПО Свободное ПО Безопасность Мобильность

Разработчики ОС «Аврора» разработали два патча, которые войдут в новый релиз glibc. Они закроют уязвимость, через которую злоумышленники могли получить доступ к автомобильным системам, мобильным, промышленным, потребительским, коммуникационным и встраиваемым устройствам.

Новые патчи для glibc

Разработчики мобильной операционной системы «Аврора» устранили критическую уязвимость CVE-2020-6096 в glibc, которая проявлялась в реализации функции memcpy() для 32-разрядной платформы ARMv7. Реализация была переписана с использованием беззнаковых инструкций. Патч получился небольшой, но основная проблема состояла в сохранении скорости выполнения и исключении снижения производительности функций memcpy и memmove при сохранении совместимости со всеми комбинациями входных значений.

В начале июня было подготовлено два варианта исправления, проходящих тестовый фреймворк мэйнтейнеров glibc и внутренний тестовый набор «Авроры». 3 июня был выбран один из вариантов и отправлен в список рассылки glibc. Через неделю был предложен еще один аналогичный по подходу патч, который исправлял проблему в multiarch-реализации. Месяц заняло тестирование и юридическое оформление. 8 июля исправления были приняты в основную ветку готовящегося релиза glibc 2.32. Реализация включает два патча: первый для multiarch-реализации memcpy для ARMv7, а второй для общей ассемблерной реализации memcpy() и memmove() для ARM.

«Очень важно не только использовать готовые opensource компоненты, но и обладать достаточной экспертизой для своевременного внесения изменений в глобальные
проекты, не дожидаясь пока кто-то это сделает за тебя, — комментирует Роман Аляутдин, директор департамента разработки ОС и сервисов компании «Открытая мобильная платформа» (ОМП) — разработчика ОС «Аврора». — Сегодня мы развиваем свою систему «Аврора» в трех российских центрах разработки и рады, что у нас такие эксперты есть».

История вопроса

Информацию об уязвимости опубликовали специалисты по информационной безопасности Cisco в мае 2020 г. По их данным, она была вызвана некорректной обработкой отрицательных значений параметра, определяющего размер копируемой области, из-за использования ассемблерных оптимизаций, манипулирующих знаковыми 32-разрядными целыми числами. Уязвимости был присвоен высокий уровень опасности, однако с ее исправлением возникли проблемы.

Разработчики мобильной операционной системы «Аврора» устранили критическую уязвимость CVE-2020-6096 в glibc

SUSE и Red Hat объявили о том, что проблема не затрагивает их платформы, потому что они не формируют сборки для 32-разрядных систем ARMv7. Остальные разработчики видимо решили, что проблему будут решать мэйнтейнеры glibc, и тоже не проявили желания заняться исправлением бага. Так, для Debian, Fedora, Ubuntu, OpenEmbedded, Tizen соответствующие пакеты не выпущены до сих пор. Собственный патч предложил Huawei, однако выяснилось, что он не обрабатывает все возможные комбинации входных данных.

Функция memcpy() активно применяется в приложениях, а процессоры ARMv7 распространены в автомобильных системах, мобильных, промышленных, потребительских, коммуникационных и встраиваемых устройствах, которые потенциально могут стать объектами атак с использованием Bluetooth, HD Radio/DAB, USB, CAN bus, Wi-Fi и других внешних источников данных.