Уязвимость в приложениях на базе HTTP-библиотеки Hyper

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3263
Зарегистрирован: 20.08.2022

#

Уязвимость в приложениях на базе HTTP-библиотеки Hyper
Дата публикации:Fri, 06 Jan 2023 20:48:19 +0300


В библиотеке Hyper, предлагающей реализацию протоколов HTTP/1 и HTTP/2 на языке Rust, выявлена особенность работы с памятью, которая может использоваться для инициирования отказа в обслуживании через исчерпание доступной процессу памяти. Для эксплуатации уязвимости достаточно отправить специально оформленный HTTP-запрос уязвимому обработчику, использующему Hyper. Библиотека достаточно популярна (67 млн загрузок) и используется в качестве зависимости у 2579 проектов, представленных в каталоге crates.io.

Причиной уязвимости является отсутствие ограничений на размер ресурсов, передаваемых в HTTP-запросах и -ответах. В библиотеке Hyper для копирования запроса или тела ответа предлагается функция body::to_bytes, копирующая данные запроса и ответа целиком в один буфер без проверки размера полученных данных. Соответственно, атака сводится к передаче очень большого запроса или ответа, обработка которого приведёт к выделению буфера, не вмещающегося в доступную память. Примечательно, что указанное поведение явно описано в документации, в которой рекомендуется выполнять отдельные проверки размера, но предупреждение игнорировалось в различных продуктах, использующих Hyper.

В реальных условиях для атаки нет необходимости отправлять большой объём данных - так как при обработке chunked-запросов буфер выделяется на основе информации в заголовке Content-Length, для выделения большого блока памяти или аварийного завершения процесса достаточно отправить начальный пакет с большим значением в Content-Length.








Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58444

Жизнь за Нер'зула!

Ответить