В криптобиблиотеке для Linux и macOS нашлась предельно простая для использования брешь

ПО Безопасность

, Текст: Роман Георгиев

Разновидность ошибки переполнения буфера в библиотеке Libgcrypt ставит
под угрозу Fedora, Gentoo и macOS. Разработчики скандалят с критиками.

Без проверки длины буфера

Знаменитый эксперт Google Project Zero Тэвис Орманди (Tavis Ormandy) выявил серьезную ошибку в свежей версии
библиотеки шифрования Libgcrypt. Уязвимость класса «переполнение буфера» сама по
себе довольно тривиальна, но простота ее эксплуатации превращает ее в серьезную
угрозу. «Сама расшифровка данных может приводить к переполнению буфера в
динамически выделяемой области памяти данными от потенциального злоумышленника;
никаких проверок и никакой авторизации не производится», — отметил Орманди.

Libgcrypt — популярная библиотека криптографических примитивов, разработанная
специально для GNU Privacy Guard (GPG), свободной реализации
стандарта OpenPGP (RFC4880).
Ее код присутствует в дистрибутивах Linux Fedora и Gentoo, а также в менеджере пакетов macOS.

Последняя, уязвимая версия Libgcrypt 1.9.0 вышла 19
января 2021 г., поэтому широкого распространения еще не получила. Ее уже успели
встроить в предрелизную версию Fedora 34, но, по-видимому, к тому моменту как состоится
окончательный релиз, уязвимая версия будет заменена на более новую. Версия 1.9.0 также попала в Gentoo, но теперь
разработчики поспешно ее оттуда удаляют.

В криптографической библиотеке для Linux и macOS выявлена критическая ошибка

Попытка выпустить патч сразу
не задалась: версия 1.9.1 на процессорах Intel приводит к сбоям при компиляции.

Арифметические ошибки случаются

Специалист по криптографии,
работающий в Google в команде разработчиков языка программирования Go, Филиппо
Вальсорда
(Filippo Valsorda) утверждает, что проблема вызвана отсутствием
средств защиты памяти в коде Libgcrypt (написанном на С).

«Арифметические ошибки
случаются. В C
они моментально становятся уязвимостями», — написал Вальсорда. По его мнению,
ошибка была вызвана попыткой исправить другую проблему — возможность атак по
побочному каналу. Но это привело к нежелательным последствиям.

«В результате получилась
критическая ошибка, тривиальная и в плане того, как такие ошибки возникают, и в
том, насколько легко ее эксплуатировать, — говорит Анастасия Мельникова, эксперт по информационной безопасности компании SEC Consult Services. — Речь идет о переполнении буфера в области
динамически выделяемой памяти, возникшей из-за некорректной проверки длины
буфера, и, по-видимому, неиспользованием средств проверки кода на подобные баги.
Подобные ошибки могут приводить к запуску произвольного кода, так что,
безусловно, эту оплошность разработчикам стоит исправить как можно скорее. И
без создания дополнительных проблем».

Но это не все

В процессе обсуждения GPG возник еще один скандал:
эксперт по безопасности и журналист Ханно
Бёк
(Hanno Böck) раскритиковал
разработчиков GnuPGP не только за неиспользование таких инструментов как Address Sanitizer (asan), которые могли бы помочь обнаружить баг, а также
обратил внимание на использование небезопасных ссылок git://, которые можно применять для MITM-атак.

На это руководитель
разработки GnuPGP Вернер Кох (Werner Koch) в грубой форме
предложил Бёку заниматься своими делами, что лишь подлило масла в огонь критики
в Twitter.


Источник: CNews