CVE-2025-66398Signal K Server是一款运行在船舶中央集线器上的服务器应用程序,主要用于船舶数据的采集、转换和分发。在2.19.0版本之前,该应用存在严重的安全漏洞,允许未经认证的远程攻击者通过发送特制的HTTP请求污染服务器内部状态,进而利用管理员的Restore功能覆盖关键配置文件,最终实现远程代码执行(RCE)。由于该服务器通常部署在船舶网络中,攻击成功后攻击者可以完全控制船舶电子系统,包括导航设备、通信设备等敏感组件,对船舶安全和隐私构成严重威胁。CVSS 3.1评分高达9.6,属于严重级别漏洞。该漏洞无需任何认证凭证即可利用,但需要一定的用户交互(如诱骗管理员执行恢复操作),这使得漏洞利用在实际场景中具有一定可行性。
漏洞根源在于Signal K Server的`/skServer/validateBackup`端点存在状态污染缺陷。攻击者可以通过发送包含恶意`restoreFilePath`参数的POST请求来覆盖服务器的内部状态变量。在正常业务流程中,管理员可以使用Restore功能从备份文件恢复系统配置,而服务器会将用户选择的备份文件路径存储在`restoreFilePath`变量中。攻击者利用此漏洞,可以在管理员不知情的情况下,通过HTTP请求直接污染该变量,将其指向任意文件路径(如`security.json`或`package.json`)。当管理员执行恢复操作时,服务器会读取攻击者指定的备份文件内容,并将其写入被污染的目标路径。由于管理员具有写入系统配置文件的权限,攻击者可以通过精心构造的备份文件内容,将恶意的JavaScript代码或系统命令注入到配置文件中,从而在服务器下次启动或执行相关功能时触发远程代码执行。攻击者可以利用`package.json`注入npm脚本钩子,或通过`security.json`修改认证配置获取管理员账户权限。