Уязвимость в приложениях на базе HTTP-библиотеки Hyper
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В библиотеке Hyper, предлагающей реализацию протоколов HTTP/1 и HTTP/2 на языке Rust, выявлена особенность работы с памятью, которая может использоваться для инициирования отказа в обслуживании через исчерпание доступной процессу памяти. Для эксплуатации уязвимости достаточно отправить специально оформленный HTTP-запрос уязвимому обработчику, использующему Hyper. Библиотека достаточно популярна (67 млн загрузок) и используется в качестве зависимости у 2579 проектов, представленных в каталоге crates.io.
Причиной уязвимости является отсутствие ограничений на размер ресурсов, передаваемых в HTTP-запросах и -ответах. В библиотеке Hyper для копирования запроса или тела ответа предлагается функция body::to_bytes, копирующая данные запроса и ответа целиком в один буфер без проверки размера полученных данных. Соответственно, атака сводится к передаче очень большого запроса или ответа, обработка которого приведёт к выделению буфера, не вмещающегося в доступную память. Примечательно, что указанное поведение явно описано в документации, в которой рекомендуется выполнять отдельные проверки размера, но предупреждение игнорировалось в различных продуктах, использующих Hyper (например, проблема всплыла в проектах Axum, Salvo и conduit-hyper).
В реальных условиях для атаки нет необходимости отправлять большой объём данных - так как при обработке chunked-запросов буфер выделяется на основе информации в заголовке Content-Length, для выделения большого блока памяти или аварийного завершения процесса достаточно отправить начальный пакет с большим значением в Content-Length.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://jfrog.com/blog/watch-o...)
- OpenNews: Уязвимости в пакетном менеджере Cargo, применяемом для проектов на языке Rust
- OpenNews: Уязвимость в стандартной библиотеке языка Rust
- OpenNews: GitHub добавил поддержку отслеживания уязвимостей в проектах на языке Rust
- OpenNews: Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
- OpenNews: Уязвимости в Please, альтернативе sudo, написанной на языке Rust
Похожие новости:
- Выпуск языка программирования Rust 1.66
- Фронтэнд для языка Rust доведён до готовности для интеграции в GCC 13
- Выпуск Buttplug 6.2, открытой библиотеки для управления внешними устройствами
- Выпуск Arti 1.1, официальной реализации Tor на языке Rust
- Доступен Wasmer 3.0, инструментарий для создания приложений на базе WebAssembly
- Выпуск операционной системы Redox OS 0.8, написанной на языке Rust
- Открытый драйвер Rusticl сертифицирован на совместимость с OpenCL 3.0
- АНБ рекомендует переходить на языки программирования, безопасно работающие с памятью
- Выпуск языка программирования Rust 1.65
- В ядро Linux 6.1 приняты изменения, обеспечивающие поддержку языка Rust
Теги для поиска: #_rust, #_hyper
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 21:08
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В библиотеке Hyper, предлагающей реализацию протоколов HTTP/1 и HTTP/2 на языке Rust, выявлена особенность работы с памятью, которая может использоваться для инициирования отказа в обслуживании через исчерпание доступной процессу памяти. Для эксплуатации уязвимости достаточно отправить специально оформленный HTTP-запрос уязвимому обработчику, использующему Hyper. Библиотека достаточно популярна (67 млн загрузок) и используется в качестве зависимости у 2579 проектов, представленных в каталоге crates.io. Причиной уязвимости является отсутствие ограничений на размер ресурсов, передаваемых в HTTP-запросах и -ответах. В библиотеке Hyper для копирования запроса или тела ответа предлагается функция body::to_bytes, копирующая данные запроса и ответа целиком в один буфер без проверки размера полученных данных. Соответственно, атака сводится к передаче очень большого запроса или ответа, обработка которого приведёт к выделению буфера, не вмещающегося в доступную память. Примечательно, что указанное поведение явно описано в документации, в которой рекомендуется выполнять отдельные проверки размера, но предупреждение игнорировалось в различных продуктах, использующих Hyper (например, проблема всплыла в проектах Axum, Salvo и conduit-hyper). В реальных условиях для атаки нет необходимости отправлять большой объём данных - так как при обработке chunked-запросов буфер выделяется на основе информации в заголовке Content-Length, для выделения большого блока памяти или аварийного завершения процесса достаточно отправить начальный пакет с большим значением в Content-Length. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 21:08
Часовой пояс: UTC + 5