Skip to main content

Signal K Server CVE-2025-69203

HIGH
Authentication Bypass by Spoofing (CWE-290)
2026-01-01 security-advisories@github.com GHSA-vfrf-vcj7-wvr8
8.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach access-request endpoint (unauth)
  2. Delivery
    Enumerate device names via info disclosure
  3. Exploit
    Submit request for admin perms with readonly-looking description
  4. Execution
    Spoof X-Forwarded-For to trusted internal IP
  5. Persist
    Administrator approves deceptive request
  6. Impact
    Attacker gains full admin control

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Anti-spoofing controls
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a reachable Signal K access-request endpoint and that device/source onboarding via access requests is in use. Two product-specific conditions enable the attack: the admin access-request approval UI displays the attacker-supplied description prominently while rendering the authoritative permissions field less visibly (pre-2.19.0 behavior, fixed by PR #2179), and the server trusts the X-Forwarded-For header unconditionally for client IP (fixed by the opt-in trusted-proxy support in PR #2204). The decisive LIMITING factor is UI:R - a human administrator must manually approve the malicious request, so success depends on deceiving that operator rather than on an automatable code path (consistent with EPSS 0.02%). Exposure is materially higher for servers reachable from the Internet, which the vendor explicitly flags as needing urgent update.

Impact

Signals conflict sharply: the vendor CVSS 3.1 base score is 8.8 (High) with full C:H/I:H/A:H, yet EPSS is near the floor at 0.02% (6th percentile) and there is no CISA KEV listing - indicating essentially no observed or predicted mass-exploitation. The high score derives entirely from the consequence of success (an attacker ending up with admin on the server), but exploitation is gated by UI:R: a human administrator must be socially engineered into approving a malicious access request. CWE-290 (Authentication Bypass by Spoofing) is accurate - the core defects are a UI that de-emphasizes the requested permissions relative to the attacker-controlled description, and unconditional trust of the X-Forwarded-For header allowing source-IP spoofing. A GitHub Security Advisory (GHSA-vfrf-vcj7-wvr8) documents the technique publicly, so exploit/PoC information exists, but this is a social-engineering chain, not a point-and-click weaponized exploit; PoC availability should not be conflated with active exploitation. Net: this is a legitimately serious design flaw for exposed Signal K servers, but real-world priority is moderated by the niche deployment footprint, the mandatory admin-approval step, and the near-zero EPSS. Treat as a 'patch promptly if internet-exposed' item (the vendor itself flags the release as urgent for internet-accessible servers) rather than an emergency for isolated on-boat installs.

Exploit ScenarioDerived

An attacker who can reach the Signal K server's access-request endpoint enumerates legitimate device/source names via the companion information-disclosure flaw, then submits an access request that asks for admin permissions while writing a description implying harmless read-only sensor access, and sets a spoofed X-Forwarded-For header so the request appears to come from a trusted internal LAN address. The administrator, seeing a plausible description from a familiar device name at a trusted IP, approves it and unknowingly grants the attacker full admin control. The technique is publicly documented in the vendor's GitHub Security Advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Oct 01, 2026

Signal K Server releases before 2.19.0 let an unauthenticated remote attacker submit a device access request whose attacker-controlled description field reads like a benign read-only request while the permissions field actually asks for admin; the pre-2.19.0 admin UI displays the description prominently and the authoritative permission level less visibly. The same access-request handler trusts the client-supplied X-Forwarded-For header without validation, so the source IP shown to the approving administrator can be spoofed to look like a trusted internal address, and chaining this with the accompanying device/source-name information disclosure produces a convincing social-engineering scenario. Publicly available exploit code exists, but the attack is not confirmed actively exploited (CISA KEV is absent) and EPSS is only 0.02% (6th percentile) because a human administrator must manually approve the request (UI:R); Internet-reachable Signal K servers are the highest-risk deployments and the vendor explicitly urges immediate upgrade.

Earlier versions of this analysis (1)
v1 Mar 12, 2026 - 21:54 CVSS 6.3

Signal K Server is a server application that runs on a central hub in a boat. [CVSS 6.3 MEDIUM]

RemediationAI

Vendor-released patch: upgrade signalk-server to 2.19.0 (npm:signalk-server >= 2.19.0), which is the released version containing the fixes per GHSA-vfrf-vcj7-wvr8 and the v2.19.0 release notes; the underlying upstream fix commit is 221aff6cd89c56308084d1781b3abbf938605bd3 (https://github.com/SignalK/signalk-server/releases/tag/v2.19.0). If upgrading is not immediately possible, apply compensating controls with their trade-offs: block or restrict network access to the Signal K access-request/approval endpoints (firewall, reverse proxy ACL, or binding the server to a trusted network segment) - this removes remote reachability but also prevents legitimate remote device onboarding; where a reverse proxy is already used, configure the new trusted-proxy setting rather than allowing any client to set X-Forwarded-For, and strip/replace inbound X-Forwarded-For headers at the edge - note that on pre-2.19.0 code the header is trusted unconditionally, so header stripping at the proxy is the only reliable stopgap; and instruct administrators to approve access requests only after inspecting the actual requested permission level rather than the free-text description, treating any request with an unexpected source IP or an admin permission request as suspicious. Operators should also assume device and source names were enumerable and treat unsolicited requests that impersonate known devices as hostile.

Affected Packages

npm signalk-server fix: 2.19.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Signal K Server is a Node.js server (npm package signalk-server, CPE cpe:2.3:a:signalk:signal_k_server) that runs on a boat's central hub and brokers access for devices and sources that connect to it. Onboarding flows through an access-request system in which a device supplies three client-controlled fields - clientId, description, and permissions - and an administrator approves the request in the server-admin-ui. The root cause class is CWE-290, Authentication Bypass by Spoofing, manifesting in two places: the handler in src/tokensecurity.js accepts any permissions value independent of the free-text description (no cross-validation), and derives the client IP via req.headers['x-forwarded-for'] || req.connection.remoteAddress, trusting an HTTP header that is meant only to preserve the original client address behind a reverse proxy and is therefore trivially attacker-controlled when no trusted proxy is configured. The UI component packages/server-admin-ui/src/views/security/AccessRequests.js compounds this by rendering the attacker-authored description prominently while the security-relevant permission grant is displayed less visibly. A related information disclosure vulnerability allows enumeration of device and source names, letting an attacker impersonate a legitimate device. Version 2.19.0 addresses the cluster of issues: PR #2179 makes the requested permission prominent in the UI, PR #2204 introduces opt-in trusted-proxy support so X-Forwarded-For is only honored from configured proxies, and the same release adds stricter cookie flags, constant-time login handling, helmet security headers (PR #2195, #2197), and stricter log-file-name validation.

Know when Signal K Server gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network-reachable request with no attacker auth (PR:N); admin must approve (UI:R); successful approval grants full admin, yielding C:H/I:H/A:H; scope unchanged as impact stays within the Signal K server.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Analysis Updated
Oct 01, 2026 - 08:29 vuln.today
v2 - CVSS changed
Severity Changed
Oct 01, 2026 - 08:22 NVD
MEDIUM HIGH
CVSS changed
Oct 01, 2026 - 08:22 NVD
6.3 (MEDIUM) 8.8 (HIGH)
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
PoC Detected
Jan 06, 2026 - 17:54 vuln.today
Public exploit code
CVE Published
Jan 01, 2026 - 19:15 nvd
MEDIUM 6.3

DescriptionNVD

Signal K Server is a server application that runs on a central hub in a boat. Versions prior to 2.19.0 of the access request system have two related features that when combined by themselves and with an information disclosure vulnerability enable convincing social engineering attacks against administrators. When a device creates an access request, it specifies three fields: clientId, description, and permissions. The SignalK admin UI displays the description field prominently to the administrator when showing pending requests, but the actual permissions field (which determines the access level granted) is less visible or displayed separately. This allows an attacker to request admin permissions while providing a description that suggests readonly access. The access request handler trusts the X-Forwarded-For HTTP header without validation to determine the client's IP address. This header is intended to preserve the original client IP when requests pass through reverse proxies, but when trusted unconditionally, it allows attackers to spoof their IP address. The spoofed IP is displayed to administrators in the access request approval interface, potentially making malicious requests appear to originate from trusted internal network addresses. Since device/source names can be enumerated via the information disclosure vulnerability, an attacker can impersonate a legitimate device or source, craft a convincing description, spoof a trusted internal IP address, and request elevated permissions, creating a highly convincing social engineering scenario that increases the likelihood of administrator approval. Users should upgrade to version 2.19.0 to fix this issue.

Executive ViewAI

Why It Matters

Signal K Server, the open-source vessel and telemetry data hub used across marine and industrial deployments, exposes an administrative-approval workflow that a remote attacker can manipulate into granting full administrative rights under the guise of a harmless read-only request. Because the attack depends on a human administrator approving the request and the displayed source address can be falsified to resemble a trusted internal system, the practical exposure is concentrated on Internet-reachable or partner-accessible Signal K instances where someone is likely to click approve. Successful abuse hands an outsider administrative control of the platform that aggregates and distributes vessel operational data, creating safety, availability, and trust consequences for the owning organization.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 94% exploitable
Prevalence
Low
niche open-source server for recreational/marine boat navigation hubs
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)NVD

cpe:2.3:a:signalk:signal_k_server:*:*:*:*:*:*:*:*
cpe:2.3:a:signalk:signal_k_server:2.19.0:beta1:*:*:*:*:*:*
cpe:2.3:a:signalk:signal_k_server:2.19.0:beta2:*:*:*:*:*:*
cpe:2.3:a:signalk:signal_k_server:2.19.0:beta3:*:*:*:*:*:*
cpe:2.3:a:signalk:signal_k_server:2.19.0:beta4:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy