Signal K Server Privilege Escalation via Unprotected /enableSecurity Endpoint
The Signal K server is vulnerable to privilege escalation due to the /skServer/enableSecurity endpoint remaining active after initial setup, allowing unauthenticated users to inject a new admin account and gain full server control; this affects versions prior to 2.24.0-beta.4.
The Signal K server, a popular open-source project for marine navigation data, contains a critical vulnerability that allows unauthenticated privilege escalation. The vulnerability resides in the /skServer/enableSecurity endpoint, which is intended for initial administrator setup when security is disabled. However, this endpoint is not disabled after the initial setup, leaving it perpetually exposed. Consequently, any unauthenticated user can call this endpoint to inject a new, fully privileged “admin” account by crafting a malicious POST request. This vulnerability affects Signal K server versions prior to 2.24.0-beta.4 and poses a significant risk to maritime systems relying on this software. Successful exploitation grants attackers full control over the Signal K server and access to sensitive vessel data, potentially leading to manipulation of routing, alteration of server configurations, and access to restricted API endpoints.
Attack Chain
- The attacker identifies a vulnerable Signal K server running a version prior to 2.24.0-beta.4.
- The attacker sends an unauthenticated POST request to the
/skServer/enableSecurityendpoint. - The POST request contains a JSON payload with the attacker’s desired username, password, and the critical
"type": "admin"parameter. - The Signal K server’s
addUserfunction insrc/tokensecurity.tsblindly trusts the injected “type” field without validation. - A new user account is created with administrator privileges, bypassing any existing authentication mechanisms.
- The attacker uses the newly created account’s username and password to obtain a valid JWT token via the
/signalk/v1/auth/loginendpoint. - The attacker uses the JWT token to authenticate to restricted API endpoints, demonstrating successful privilege escalation.
- The attacker can now modify vessel routing data, alter server configurations, and access sensitive information.
Impact
Successful exploitation of this vulnerability grants an unauthenticated attacker full Administrator access to the Signal K server. This allows them to modify sensitive vessel routing data, which can have serious safety implications. The attacker can also alter server configurations, potentially disrupting services or injecting malicious code. Furthermore, the attacker gains access to restricted endpoints, exposing sensitive information and enabling further malicious activities. This vulnerability affects Signal K server versions prior to 2.24.0-beta.4, potentially impacting numerous vessels and maritime systems relying on the vulnerable software.
Recommendation
- Upgrade Signal K server to version 2.24.0-beta.4 or later to patch CVE-2026-33950.
- Deploy the Sigma rule
Detect SignalK Admin Role Injectionto detect attempts to exploit this vulnerability by monitoring for POST requests to the/skServer/enableSecurityendpoint. - Enable web server logging and specifically monitor POST requests to the
/skServer/enableSecurityendpoint to investigate any suspicious activity.
Detection coverage 2
Detect SignalK Admin Role Injection
criticalDetects attempts to inject an admin user via the /skServer/enableSecurity endpoint in SignalK, indicating a privilege escalation attempt.
Detect SignalK Login Attempt with Default Admin User
highDetects login attempts using the potentially created 'admin' user via /signalk/v1/auth/login, indicating a potential takeover.
Detection queries are kept inside the platform. Get full rules →