Quick answers
- Is CVE-2025-66398 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2025-66398 being exploited in the wild.
- How severe is CVE-2025-66398?
- Critical severity, with a CVSS score of 9.6, published 1 January 2026.
- Which products and versions are affected?
- signalk-server (npm) < 2.19.0, SEMVER:introduced=0,fixed=2.19.0.
- Is there a fix for CVE-2025-66398?
- Yes. signalk-server (npm): upgrade to 2.19.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2025-66398 attacked?
- It is attacked over the network, in a hosted service.
- Am I affected by CVE-2025-66398?
- Check whether you run signalk-server (npm) or Signalk Signal K Server at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- signalk-server (npm): upgrade to 2.19.0 or later
npm install signalk-server@2.19.0
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
Identifiers
- CVE-2025-66398
- GHSA-w3x5-7c4c-66p9
Timeline
- 2026-01-02: disclosed
- 2026-01-02: patched: Version 2.19.0 patches the vulnerability