Signal K Server — это серверное приложение, которое работает в центральном хабе на судне. До версии 2.25.0 конечные точки входа HTTP (POST/login и POST/signalk/v1/auth/login) защищены экспресс-ограничением скорости (по умолчанию: 100 попыток за 10-минутное окно, настраивается через HTTP_RATE_LIMITS). Путь входа в WebSocket — отправка сообщений {login: {имя пользователя, пароль}} через установленное соединение WebSocket — вызывает app.securityStrategy.login() напрямую без какого-либо ограничения скорости.
Злоумышленник может полностью обойти ограничение скорости HTTP, открыв соединение WebSocket и попытавшись подобрать неограниченное количество паролей со скоростью, допускаемой bcrypt (~ 20 попыток в секунду с 10 соляными раундами). Эта проблема исправлена в версии 2.25.0.
Показать оригинальное описание (EN)
Signal K Server is a server application that runs on a central hub in a boat. Prior to version 2.25.0, the HTTP login endpoints (POST /login and POST /signalk/v1/auth/login) are protected by express-rate-limit (default: 100 attempts per 10-minute window, configurable via HTTP_RATE_LIMITS). The WebSocket login path — sending {login: {username, password}} messages over an established WebSocket connection — calls app.securityStrategy.login() directly without any rate limiting. An attacker can bypass HTTP rate limiting entirely by opening a WebSocket connection and attempting unlimited password guesses at the speed bcrypt allows (~20 attempts/sec with 10 salt rounds). This issue has been patched in version 2.25.0.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Signalk Signal_K_Server
cpe:2.3:a:signalk:signal_k_server:*:*:*:*:*:*:*:*
|
— |
2.25.0
|