Description
Signal K Server vulnerable to JWT Token Theft via WebSocket Enumeration and Unauthenticated Polling
EPSS Score:
0%
Comprehensive Technical Analysis of EUVD-2025-206136
1. Vulnerability Assessment and Severity Evaluation
The vulnerability described in EUVD-2025-206136 affects the Signal K Server, a server application used in marine environments. The vulnerability allows unauthenticated attackers to steal JWT (JSON Web Token) authentication tokens by exploiting two features: unauthenticated WebSocket request enumeration and unauthenticated token polling. The CVSS (Common Vulnerability Scoring System) base score of 9.1 indicates a critical severity level. The scoring vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N highlights the following:
- Attack Vector (AV): Network (N) - The vulnerability is exploitable over the network.
- Attack Complexity (AC): Low (L) - The attack requires minimal complexity.
- Privileges Required (PR): None (N) - No privileges are required to exploit the vulnerability.
- User Interaction (UI): None (N) - No user interaction is required.
- Scope (S): Unchanged (U) - The vulnerability does not change the security scope.
- Confidentiality (C): High (H) - The vulnerability results in high confidentiality impact.
- Integrity (I): High (H) - The vulnerability results in high integrity impact.
- Availability (A): None (N) - The vulnerability does not impact availability.
2. Potential Attack Vectors and Exploitation Methods
The vulnerability can be exploited through two primary attack vectors:
-
Unauthenticated WebSocket Request Enumeration:
- Attackers can connect to the SignalK stream endpoint with the
serverevents=allquery parameter. - The server sends all cached server events, including
ACCESS_REQUESTevents, to any connected client without verifying authorization. - This allows attackers to receive details about pending access requests, including request IDs, client identifiers, descriptions, requested permissions, and IP addresses.
- Attackers can connect to the SignalK stream endpoint with the
-
Unauthenticated Token Polling:
- The access request status endpoint at
/signalk/v1/access/requests/:idreturns the full state of an access request without requiring authentication. - When an administrator approves a request, the response includes the issued JWT token in plaintext.
- Attackers can poll this endpoint to retrieve the JWT token once the request is approved.
- The access request status endpoint at
Exploitation methods include:
- Active Exploitation: Attackers create their own access request and poll their own request ID until an administrator approves it, receiving the JWT token.
- Passive Exploitation: Attackers monitor the WebSocket stream to discover request IDs from legitimate devices and poll those IDs to steal JWT tokens when administrators approve them.
3. Affected Systems and Software Versions
The vulnerability affects Signal K Server versions prior to 2.19.0. All systems running these versions are at risk, particularly those with the allow_readonly configuration set to true, which permits unauthenticated WebSocket connections.
4. Recommended Mitigation Strategies
To mitigate the risk associated with this vulnerability, the following strategies are recommended:
-
Upgrade to Version 2.19.0:
- Immediately upgrade to Signal K Server version 2.19.0 or later, which addresses the underlying issues.
-
Disable Readonly Access:
- If upgrading is not immediately possible, disable the
allow_readonlyconfiguration to prevent unauthenticated WebSocket connections.
- If upgrading is not immediately possible, disable the
-
Network Segmentation:
- Implement network segmentation to isolate the Signal K Server from untrusted networks.
-
Monitoring and Logging:
- Enhance monitoring and logging to detect and respond to suspicious activities, such as unauthorized access attempts or unusual WebSocket connections.
-
Access Controls:
- Implement strict access controls and regularly review and update access permissions to ensure only authorized users have access to critical systems.
5. Impact on European Cybersecurity Landscape
The vulnerability poses a significant risk to the European cybersecurity landscape, particularly for marine and maritime industries that rely on Signal K Server for communication and data exchange. The potential for unauthenticated attackers to steal JWT tokens and gain full access to systems underscores the need for robust security measures and timely patch management. The critical nature of the vulnerability highlights the importance of continuous monitoring and proactive security practices to protect against such threats.
6. Technical Details for Security Professionals
Vulnerability Details:
-
Unauthenticated WebSocket Request Enumeration:
- The
startServerEventsfunction iterates overapp.lastServerEventsand writes each cached event to any connected client without verifying authorization. - WebSocket connections are allowed for readonly users, which includes unauthenticated users when
allow_readonlyis true.
- The
-
Unauthenticated Token Polling:
- The
queryRequestfunction returns the complete request object including the token field. - The REST endpoint uses readonly authentication, allowing unauthenticated access.
- The
Exploitation Steps:
-
WebSocket Connection:
- Connect to the SignalK stream endpoint with
serverevents=all. - Receive cached server events, including
ACCESS_REQUESTevents.
- Connect to the SignalK stream endpoint with
-
Token Polling:
- Poll the access request status endpoint at
/signalk/v1/access/requests/:id. - Retrieve the JWT token when the request is approved.
- Poll the access request status endpoint at
Detection and Response:
-
Detection:
- Monitor for unusual WebSocket connections and access request polling activities.
- Implement intrusion detection systems (IDS) to identify and alert on suspicious network traffic.
-
Response:
- Immediately investigate and respond to detected incidents.
- Apply patches and updates as soon as they are available.
- Conduct regular security audits and vulnerability assessments to identify and mitigate potential risks.
By addressing these vulnerabilities and implementing robust security measures, organizations can significantly reduce the risk of unauthorized access and data breaches, ensuring the integrity and confidentiality of their systems.