Junglewise Threat Intelligence

CVE-2025-66398: Signal K Server has Unauthenticated State Pollution leading to Remote Code Execution (RCE)

CVE-2025-66398 · Severity: critical · CVSS 9.6 · Published 2026-01-02

Technologies: signalk-server (npm), Signal K Server. Vendors: npm, Signal K.

Executive brief

Signal K Server is a middleware engine for vessel data management commonly used in maritime systems. An unauthenticated attacker can manipulate the server's internal state through an unprotected backup validation endpoint, then hijack the administrator's restore function to inject malicious configuration files. This enables account takeover and arbitrary command execution with full server privileges, potentially compromising the entire vessel's automation and navigation systems.

Technical details

The vulnerability is a state pollution flaw in src/serverroutes.ts where a module-level global variable restoreFilePath is shared across all requests and updated by the unauthenticated /skServer/validateBackup endpoint. An attacker uploads a malicious zip file to validateBackup, which sets restoreFilePath to point to attacker-controlled content. When the /skServer/restore endpoint is triggered (either by the attacker or waiting for admin action), it extracts files from the polluted path, allowing the attacker to overwrite security.json with a backdoor administrator account. The attacker then leverages a separate command injection vulnerability in /skServer/appstore/install/ to execute arbitrary system commands. Attack vector is network-based with no authentication required for the initial state pollution; user interaction is not required if the restore endpoint is also unprotected, or limited if waiting for admin to manually restore. Patch available: version 2.19.0 and later.

Affected products

  • Signal K Server <= 2.18.0

Timeline

  • 2026-01-02: disclosed
  • 2026-01-02: patched: Version 2.19.0 patches the vulnerability

References

Related threats