signalk-server

CVE-2026-33950

CVE-2026-33950 is a critical-severity missing authorization vulnerability in signalk-server (npm), affecting versions < 2.24.0-beta.4. It is fixed in 2.24.0-beta.4.

Key facts
CVSS score
9.4
Critical
Attack vector
Network
Issuing authority
GitHub Advisory Database
Affected package
signalk-server
Fixed in
2.24.0-beta.4
Disclosed
2026

Summary

Summary According to SignalK's security documentation, when a server is first initialized without security enabled, the /skServer/enableSecurity endpoint is intentionally exposed to allow the owner to set up the initial admin account. This initial open access is by design. However, the critical vulnerability is that this route is never deregistered or disabled after the initial successful setup. Even after the genuine administrator has created their account, restarted the server, and activated token security, the /skServer/enableSecurity route remains perpetually open. Furthermore, the endpoint explicitly trusts the type field provided in the request body, passing it directly into the server's security configuration without validation. Because the route remains permanently listening, any unauthenticated user can call this endpoint at any time to silently inject a new, fully privileged admin account alongside the legitimate ones. Vulnerable Root Cause File: src/serverroutes.ts (Lines 685-754) File: src/tokensecurity.ts (Lines 980-994) Proof of Concept (PoC) Simulate Legitimate Initial Setup: Send a POST request to the open enableSecurity route defining the initial legitimate admin account. Inject Malicious Admin: Send the exact same request again to create a second, unauthorized admin account. This should ideally be blocked because security was already enabled. Verify Both Admins Exist: Login via JWT as the attacker and query the restricted users endpoint. <img width="1205" height="469" alt="Screenshot 2026-03-24 145906" src="https://github.com/user-attachments/assets/98855e54-cb78-4786-a9e3-63dcc1bed37a" /> Security Impact An unauthenticated attacker can gain full Administrator access to the SignalK server at any time, allowing them to modify sensitive vessel routing data, alter server configurations, and access restricted endpoints

Impact

What is missing authorization?

The application does not perform an authorization check before performing a sensitive operation. Typical impact: unauthorized access to restricted functionality or data.

Severity and exposure

CVE-2026-33950 has a CVSS score of 9.4 (Critical). The vector is network-reachable, no privileges required, and no user interaction. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment.

A fixed version is available (2.24.0-beta.4). Upgrading removes the vulnerable code path.

Affected versions

npm

  • signalk-server (< 2.24.0-beta.4)

Security releases

  • signalk-server → 2.24.0-beta.4 (npm)
Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter instead of chasing every advisory.

Kodem's runtime-powered SCA identifies whether CVE-2026-33950 is reachable in your applications. Explore open-source security for your team.

See if CVE-2026-33950 is reachable in your applications. Get a demo

Remediation advice

Upgrade signalk-server to 2.24.0-beta.4 or later to resolve this vulnerability.

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently asked questions about CVE-2026-33950

What is CVE-2026-33950?

CVE-2026-33950 is a critical-severity missing authorization vulnerability in signalk-server (npm), affecting versions < 2.24.0-beta.4. It is fixed in 2.24.0-beta.4. The application does not perform an authorization check before performing a sensitive operation.

How severe is CVE-2026-33950?

CVE-2026-33950 has a CVSS score of 9.4 (Critical). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.

Which versions of signalk-server are affected by CVE-2026-33950?

signalk-server (npm) versions < 2.24.0-beta.4 is affected.

Is there a fix for CVE-2026-33950?

Yes. CVE-2026-33950 is fixed in 2.24.0-beta.4. Upgrade to this version or later.

Is CVE-2026-33950 exploitable, and should I be worried?

Whether CVE-2026-33950 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo

What actually determines whether CVE-2026-33950 is exploitable, and how bad it is?

Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.

How do I fix CVE-2026-33950?

Upgrade signalk-server to 2.24.0-beta.4 or later.

Stop the waste.
Protect your environment with Kodem.