Библиотека cpp-httplib - это заголовок-only HTTP/HTTPS сервер и клиентская библиотека на C++. До версии 0.20.1 библиотека не обеспечивает с…
Библиотека cpp-httplib - это заголовок-only HTTP/HTTPS сервер и клиентская библиотека на C++. До версии 0.20.1 библиотека не обеспечивает соблюдение настроенных ограничений размера на входящие тела запросов при использовании `Transfer-Encoding: chunked` или когда не предоставлен заголовок `Content-Length`. Удалённый злоумышленник может отправить запрос с разбиением на chunks без завершающего chunk'а нулевой длины, вызывая неконтролируемое выделение памяти на сервере. Это приводит к потенциальному истощению системной памяти и вызывает сбой или неработоспособность сервера. Версия 0.20.1 исправляет проблему, обеспечивая соблюдение ограничений во время парсинга. Если ограничение превышено в любой момент чтения, соединение завершается немедленно. Доступно краткосрочное обходное решение через Reverse Proxy. Если обновление библиотеки сразу невозможно, разверните обратный прокси (например, Nginx, HAProxy) перед приложением `cpp-httplib`. Настройте прокси для обеспечения максимальных ограничений размера тела запроса, тем самым останавливая чрезмерно большие запросы до того, как они достигнут уязвимого кода библиотеки [1]. Источники: - [1] https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-px83-72rx-v57c - [2] https://github.com/yhirose/cpp-httplib/commit/7b752106ac42bd5b907793950d9125a0972c8e8e
Продукт не управляет должным образом выделением ограниченного ресурса и его обслуживанием.
https://cwe.mitre.org/data/definitions/400.html →Открыть в коллекции CWE →Злоумышленник инициирует атаку исчерпания ресурсов, при которой большое количество небольших XML-сообщений доставляется с достаточно высокой частотой для обеспечения отказа в обслуживании или аварийного завершения работы цели. Транзакции, такие как повторяющиеся SOAP-транзакции, способны исчерпывать ресурсы быстрее, чем обычный флудинг, из-за дополнительных ресурсов, потребляемых протоколом SOAP, и ресурсов, необходимых для обработки SOAP-сообщений. Используемые транзакции несущественны при условии, что они вызывают потребление ресурсов на цели. Иными словами, это обычная флудинг-атака, усиленная за счёт использования сообщений, требующих дополнительной обработки на целевой стороне.
https://capec.mitre.org/data/definitions/147.html →Открыть в коллекции CAPEC →Злоумышленник пытается лишить легитимных пользователей доступа к ресурсу, непрерывно занимая конкретный ресурс с целью удержания его занятым как можно дольше. Основная цель злоумышленника состоит не в том, чтобы привести цель к аварийному завершению или проводить флудинг, что привлекло бы внимание защитников, а в том, чтобы многократно выполнять действия или эксплуатировать алгоритмические недостатки, чтобы данный ресурс оставался занятым и недоступным для легитимного пользователя. Тщательно формируя запросы, удерживающие ресурс занятым посредством, казалось бы, безобидных запросов, злоумышленник ограничивает или полностью лишает легитимных пользователей доступа к ресурсу.
https://capec.mitre.org/data/definitions/227.html →Открыть в коллекции CAPEC →Злоумышленник может реализовать атаку на программу, использующую неэффективную реализацию регулярных выражений (Regex), подобрав входные данные, приводящие к крайне неблагоприятному сценарию работы Regex. Типичный крайний сценарий характеризуется экспоненциальным временем работы относительно размера входных данных. Это объясняется тем, что большинство реализаций использует недетерминированный конечный автомат (NFA) в качестве основы алгоритма Regex, поскольку NFA допускает обратный просмотр и тем самым поддерживает более сложные регулярные выражения.
https://capec.mitre.org/data/definitions/492.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| cpp-httplib | Отслеживается | |
| cpp-httplib | Отслеживается | |
| cpp-httplib | Отслеживается | |
| cpp-httplib | * | Отслеживается |