OpenBao — это система управления секретами, основанная на идентификации. В версиях OpenBao до 2.4.1 после декодирования JSON‑объекты могут …
OpenBao — это система управления секретами, основанная на идентификации. В версиях OpenBao до 2.4.1 после декодирования JSON‑объекты могут потреблять заметно больше памяти, чем их сериализованный размер, позволяя достичь коэффициента использования памяти ≈35 (аналог zip‑bomb). Это позволяет обойти параметр **max_request_size**, предназначенный для защиты от атак отказа в обслуживании. Тело запроса разбирается в map[string]interface{} (http/logical.go строка 50) очень рано в цепочке обработки запросов, до аутентификации, поэтому неавторизованный атакующий может отправить специально сформированный JSON‑объект и вызвать крах процесса из‑за нехватки памяти. Кроме того, при большом числе строк в запросе подсистема аудита может потреблять значительные ресурсы CPU.\n\nДополнительные технические детали из контекста: был введён новый параметр **max_request_json_complexity** (по умолчанию 10000) — ограничение количества токенов в JSON‑теле запроса, которое используется для оценки потенциального расхода памяти при распаковке. При превышении лимита команда git rejects JSON‑тела, потребляющие слишком много RAM. Также в коде была добавлена проверка и удаление конфликтующих файлов/символических ссылок перед записью LFS‑объектов.\n\nИсточники:\n - [1] https://github.com/openbao/openbao/security/advisories/GHSA-g46h-2rq9-gw5m\n - [2] https://github.com/openbao/openbao/pull/1756\n - [3] https://github.com/openbao/openbao/commit/d418f238bc99adc72c73109faf574cc2b672880c\n - [4] https://github.com/openbao/openbao/blob/788536bd3e10818a7b4fb00aac6affc23388e5a9/http/logical.go#L50
Продукт не управляет должным образом выделением ограниченного ресурса и его обслуживанием.
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 →