NATS-Server — это высокопроизводительный сервер для NATS.io, собственной облачной и периферийной системы обмена сообщениями. Обработка сообщений NATS в WebSockets обрабатывает сжатые сообщения посредством согласованного сжатия WebSockets. До версий 2.11.2 и 2.12.3 реализация ограничивала размер памяти сообщения NATS, но не ограничивала независимо потребление памяти потоком памяти при создании сообщения NATS, которое затем могло не пройти проверку по причинам размера.
Злоумышленник может использовать бомбу сжатия, чтобы вызвать чрезмерное потребление памяти, что часто приводит к завершению серверного процесса операционной системой. Использование сжатия согласовывается до аутентификации, поэтому для его использования не требуются действительные учетные данные NATS. Исправление, присутствующее в версиях 2.11.2 и 2.12.3, заключалось в том, чтобы ограничить распаковку, если сообщение было слишком большим, вместо продолжения.
Эта уязвимость затрагивает только развертывания, использующие WebSockets и предоставляющие сетевой порт ненадежным конечным точкам.
Показать оригинальное описание (EN)
NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging system. The WebSockets handling of NATS messages handles compressed messages via the WebSockets negotiated compression. Prior to versions 2.11.2 and 2.12.3, the implementation bound the memory size of a NATS message but did not independently bound the memory consumption of the memory stream when constructing a NATS message which might then fail validation for size reasons. An attacker can use a compression bomb to cause excessive memory consumption, often resulting in the operating system terminating the server process. The use of compression is negotiated before authentication, so this does not require valid NATS credentials to exploit. The fix, present in versions 2.11.2 and 2.12.3, was to bounds the decompression to fail once the message was too large, instead of continuing on. The vulnerability only affects deployments which use WebSockets and which expose the network port to untrusted end-points.
Характеристики атаки
Последствия
Строка CVSS v3.1