Bref — это проект с открытым исходным кодом, который помогает пользователям переходить на бессерверные технологии в Amazon Web Services с п…
Bref — это проект с открытым исходным кодом, который помогает пользователям переходить на бессерверные технологии в Amazon Web Services с помощью PHP. Когда Bref до версии 2.1.17 используется со средой выполнения Event-Driven Function и обработчик является `RequestHandlerInterface`, событие Lambda преобразуется в объект PSR7. Во время процесса преобразования, если запрос является MultiPart, каждая часть анализируется. В процессе анализа заголовок `Content-Type` каждой части считывается с помощью библиотеки `Riverline/multipart-parser`. Библиотека в функции `StreamedPart::parseHeaderContent` выполняет медленные многобайтовые строковые операции над значением заголовка. Точнее, функция `mb_convert_encoding` используется с первым (`$string`) и третьим (`$from_encoding`) параметрами, считываемыми из значения заголовка. Злоумышленник может отправлять специально созданные запросы, которые заставят сервер выполнять длительные операции с последующей длительной оплачиваемой продолжительностью. Атака имеет следующие требования и ограничения: Lambda должна использовать среду выполнения Event-Driven Function и обработчик `RequestHandlerInterface` и должна реализовывать как минимум конечную точку, принимающую POST-запросы; злоумышленник может отправлять запросы длиной до 6 МБ (этого достаточно, чтобы вызвать оплачиваемую продолжительность от 400 мс до 500 мс со стандартным образом Lambda 1024 МБ ОЗУ Bref); и если Lambda использует среду выполнения PHP <= php-82, воздействие выше, поскольку оплачиваемую продолжительность в стандартном образе Lambda 1024 МБ ОЗУ Bref можно довести до более чем 900 мс для каждого запроса. Обратите внимание, что уязвимость применяется только к заголовкам, считываемым из тела запроса, поскольку заголовок запроса имеет ограничение, которое допускает общий максимальный размер ~10 КБ. Версия 2.1.17 содержит исправление для этой проблемы.
Продукт не управляет должным образом выделением ограниченного ресурса и его обслуживанием.
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 →