Abacus — это высокомасштабируемый API-интерфейс для подсчета данных без сохранения состояния. В реализации событий, отправленных сервером (SSE) сервера Abacus была обнаружена критическая уязвимость утечки горута. Проблема возникает, когда клиенты отключаются от конечной точки /stream, поскольку серверу не удается должным образом очистить ресурсы и завершить связанные горутины.
Это приводит к истощению ресурсов, когда сервер продолжает работать, но в конечном итоге перестает принимать новые соединения SSE, сохраняя при этом высокий уровень использования памяти. Уязвимость, в частности, связана с неправильной очисткой канала в механизме обработки событий, в результате чего горутины остаются заблокированными на неопределенный срок. Эта уязвимость исправлена в версии 1.4.0.
Показать оригинальное описание (EN)
Abacus is a highly scalable and stateless counting API. A critical goroutine leak vulnerability has been identified in the Abacus server's Server-Sent Events (SSE) implementation. The issue occurs when clients disconnect from the /stream endpoint, as the server fails to properly clean up resources and terminate associated goroutines. This leads to resource exhaustion where the server continues running but eventually stops accepting new SSE connections while maintaining high memory usage. The vulnerability specifically involves improper channel cleanup in the event handling mechanism, causing goroutines to remain blocked indefinitely. This vulnerability is fixed in 1.4.0.
Характеристики атаки
Последствия
Строка CVSS v3.1