Разработчики Aurora OS включили исправление memcpy в Glibc

Разработчики мобильной операционной системы AuroraOS (форк операционной системы Sailfish, разработанный компанией Open Mobile Platform) поделился исправлением уязвимости что они обнаружили в memcpy. Устранение критической уязвимости (CVE-2020-6096) в Glibc, который проявляется только на платформе ARMv7.

Информация об уязвимости появилась в мае, но до последних нескольких дней исправления были недоступны, несмотря на то, что уязвимости был присвоен высокий уровень опасности и есть рабочий прототип эксплойта что позволяет организовать выполнение кода.

Эксплойт подготовлен действует во время обработки в функциях memcpy () и memmove () для определенных форматированных данных.

Важность Glibc заключается в том, что эта библиотека определяет системные вызовы и другие базовые функции в дополнение к тому, что она используется почти всеми программами.

О проблеме

Проявленная уязвимость в реализации memcpy () и memmove () на ассемблере для ARMv7 Причина - некорректная обработка отрицательных значений параметра, определяющего размер области.

Начались проблемы с разработкой патча когда SUSE и Red Hat объявили, что их платформы не пострадали из-за проблемы, поскольку они не компилировались для 7-битных систем ARMv32 и не участвовали в создании патча.

Разработчики многих встраиваемых дистрибутивов явно доверяли команде Glibc, а также не принимали активного участия в подготовке патча.

Разработки

Huawei предложила вариант за патч почти сразу заблокировать проблему, который пытался заменить инструкции ассемблера, которые работают со знаковыми операндами (bge и blt), на беззнаковые аналоги (blo и bhs).

Сопровождающие Glibc разработали набор тестов для проверки различных условий возникновения ошибки, после что оказалось что патч Huawei не подходит и он не обрабатывает все возможные комбинации входных данных.

При условии AuroraOS имеет 32-битную сборку для ARM., Его разработчики решили закрыть уязвимость самостоятельно и предложить решение сообществу.

Сложность заключалась в том, что нужно было написать эффективную реализацию. ассемблер функции и рассмотрим несколько вариантов входных аргументов.

Реализация переписана с использованием неподписанных инструкций.. Патч оказался небольшим, но основная проблема заключалась в поддержании скорости выполнения и устранении снижения производительности функций memcpy и memmove при сохранении совместимости со всеми комбинациями входных значений.

В начале июня были приготовлены два раствора, прохождение тестовой среды обслуживания Glibc и внутреннего набора тестов Aurora. 3 июня был выбран и отправлен один из вариантов. в список рассылки Glibc.

Через неделю был предложен другой аналогичный подход, который устранил проблему в многоархивной реализации, которую Huawei ранее пыталась исправить. Месяц ушло на тестирование и легализацию ввиду важности патча.

8 июля исправления приняты в основной ветке грядущего выпуска glibc 2.32. В состав приложения входят два патча:

  • Первое приложение для установления памяти Multiarch для ARMv7
  • Вторая для распространенной ассемблерной реализации memcpy () и memmove () для ARM.

Проблема затрагивает миллионы устройств ARMv7 Linux и без надлежащего обновления владельцы рискуют подключить их к сети (службы и приложения, доступные в сети, которые принимают ввод без ограничений по размеру, могут быть атакованы).

Например, подготовленный эксплойт исследователями, которые Обнаруженная уязвимость показывает, как атаковать http-сервер интегрируется в информационную систему автомобиля, передавая очень большой запрос GET и получая root-доступ к системе.

Пакетные решения для Debian и Ubuntu еще не выпущены y уязвимость остается неисправленной в течение почти двух месяцев с момента публичного раскрытия информации и пяти месяцев с момента уведомления разработчиков Glibc.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

bool (истина)