Klever-Go — это реализация протокола блокчейна Klever на Go. Версии с 1.7.14 по 1.7.17 уязвимы к удаленному отказу в обслуживании. Оба REST API запускаются с помощью удобного метода Gin Engine.Run, который обслуживает запросы через HTTP-сервер Go по умолчанию без настроенных ReadHeaderTimeout, ReadTimeout или MaxHeaderBytes.
В результате входящие соединения, которые никогда не завершают свои заголовки запросов, остаются открытыми на неопределенный срок. Когда прослушиватель REST доступен за пределами локального хоста через документированную привязку всех интерфейсов или развертывание публикации порта Docker, один неаутентифицированный клиент может открыть множество соединений с медленным заголовком и удерживать их открытыми до тех пор, пока не будут исчерпаны файловые дескрипторы сервера, не позволяя API принимать новые соединения. Это делает REST API недоступным для законных клиентов.
Эта проблема исправлена в версии 1.7.18.
Показать оригинальное описание (EN)
Klever-Go is the Go implementation of the Klever blockchain protocol. Versions from 1.7.14 through 1.7.17 are vulnerable to a remotely triggerable denial of service. Both REST APIs are started with the Gin Engine.Run convenience method, which serves requests through Go's default HTTP server with no ReadHeaderTimeout, ReadTimeout, or MaxHeaderBytes configured. As a result, incoming connections that never complete their request headers are held open indefinitely. When a REST listener is reachable beyond localhost through the documented all-interface bind or a Docker port-publish deployment, a single unauthenticated client can open many slow-header connections and hold them open until server file descriptors are exhausted, preventing the API from accepting new connections. This renders the REST API unavailable to legitimate clients. This issue is fixed in version 1.7.18.
Характеристики атаки
Последствия
Строка CVSS v3.1