Skip to main content

Signal K Server CVE-2026-118690

| EUVDEUVD-2026-112491 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-10-28 VulnCheck
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify exposed Signal K server
  2. Delivery
    Send unauthenticated GET /skServer/ziplogs
  3. Exploit
    Extract secretKey from security.json in ZIP
  4. Execution
    Forge admin JWT with HS256 key
  5. Persist
    Create persistent admin account
  6. Impact
    Full server/vessel control

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

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

Exploitation Conditions

Exploitation requires network reachability to the Signal K server's HTTP interface and the presence of the unauthenticated /skServer/ziplogs endpoint, whose handler zips getFullLogDir(app) - normally the config directory - and therefore includes security.json containing the HS256 secretKey. The practical prerequisite is that security is enabled so that security.json with a signing key exists; the sibling /skServer/logfiles/ route is admin-protected while ziplogs was not, so no credentials, configuration change, or user interaction is needed. Limiting factors: the server must be reachable by the attacker (the GHSA notes many instances run on the default port and are internet-discoverable, but non-exposed LAN/vessel deployments are not remotely reachable), and all versions before 2.33.0 are affected (confirmed on 2.32.0).

Impact

All available signals align toward high real-world risk, with one caveat about exposure scale. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a network-reachable, low-complexity flaw requiring no privileges and no user interaction, and the vuln.today Decision label is act_now - the strongest urgency signal in the input. The source-code evidence is unusually strong: the fixing commit adds exactly one line (addAdminMiddleware on the /skServer/ziplogs route), confirming the root cause is a missing authentication check (CWE-306) rather than a theoretical weakness, and the GHSA advisory walks the full chain from unauthenticated ZIP download to secretKey (CWE-312) disclosure to forged admin JWT to persistent admin account. Impact is genuinely VC:H/VI:H/VA:H: full administrative takeover of the Signal K server. The tempering factors are exposure and exploitation status: no CISA KEV entry, no EPSS score, and no confirmed public exploit are present in the input, and the GHSA notes only around 66 internet-exposed servers found via Shodan - so this is a critical flaw in a small, niche population rather than a mass-exploitation event. No signals conflict; the only missing data is EPSS and any active-exploitation telemetry.

Exploit ScenarioDerived

A remote attacker on the network issues a single unauthenticated GET request to /skServer/ziplogs and receives a ZIP archive containing security.json, which holds the HS256 JWT secretKey. Using that symmetric key the attacker forges a valid admin JWT, creates a persistent administrator account through the authenticated API, and then logs in normally - gaining lasting control over NMEA routing, plugins, and alarms. No public working exploit is identified in the input, but the GHSA advisory documents the exact steps and the trigger is a simple HTTP request against a default endpoint.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Unauthenticated remote attackers can pull a ZIP of the Signal K Server log/config directory from the /skServer/ziplogs route in every signalk-server release before 2.33.0, and that archive contains security.json with the server's HS256 JWT signing key. Possession of the secretKey lets an attacker forge administrator tokens or create a persistent admin account and then authenticate through the normal login flow, yielding full control over NMEA routing, plugin configuration and alarms on affected installations, including vessel deployments. The endpoint was confirmed reachable without credentials on a live signalk-server 2.32.0 instance and roughly 66 potentially affected servers were visible to Shodan at disclosure; no public exploit identified at time of analysis, and the vendor addressed the issue in 2.33.0 by placing the route behind admin middleware.

RemediationAI

Upgrade to signalk-server 2.33.0 or later (release https://github.com/SignalK/signalk-server/releases/tag/v2.33.0, fix commit 728bab82742d16c54e50525b95dc9b6e32396107), which applies admin middleware to /skServer/ziplogs so unauthenticated requests receive 401. Because secretKey disclosure is equivalent to admin compromise, patching alone is not sufficient where the endpoint may have been reachable: rotate the secretKey in security.json and audit for unknown admin accounts, since forged tokens remain valid until the signing key changes. Where an immediate upgrade is not possible, block /skServer/ziplogs at the reverse proxy or firewall and avoid exposing the Signal K HTTP interface to the internet (the trade-off is that administrators lose the bundled log-download convenience and must retrieve logs directly from the host, and proxy rules must be maintained as routes change); the vendor's own guidance notes that updating is the complete fix, and excluding security.json from downloadable archives is a supplementary hardening step rather than a substitute for the middleware.

Affected VersionsENISA

signalk-server 0 <2.33.0

Affected Packages

euvd signalk_server fix: 2.33.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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/Express application that acts as a marine data hub, and this is a CWE-306 missing authentication for a critical function compounded by CWE-312 cleartext storage of sensitive information. In src/interfaces/logfiles.js the sibling route /skServer/logfiles/ is registered with app.securityStrategy.addAdminMiddleware(), but the /skServer/ziplogs handler is not; it calls sendZip() over getFullLogDir(app), which is normally the config directory and therefore sweeps security.json into the archive (e.g. sk-logs--<timestamp>/security.json). That file holds the symmetric HMAC key used by src/tokensecurity.ts, where tokens are validated with jwt.verify(token, configuration.secretKey) and extracted from an 'Authorization: JWT <token>' header, with the payload 'id' claim mapped to an admin username. Because HS256 is symmetric, disclosure of the verification key is equivalent to disclosure of the signing key: any token the attacker mints with a matching admin 'id' claim is accepted exactly like a legitimate session. The upstream commit 728bab82742d16c54e50525b95dc9b6e32396107 fixes the root cause with a one-line addition of addAdminMiddleware(${SERVERROUTESPREFIX}/ziplogs), and the advisory additionally suggests excluding security.json from downloadable archives regardless of authentication.

Know when Signalk 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

Vendor (VulnCheck) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.8 CRITICAL

Unauthenticated network request to a default endpoint (AV:N/AC:L/PR:N/UI:N) leaks the JWT signing key enabling full admin takeover, giving C:H/I:H/A:H; scope stays within the same server authority (S:U).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Signal K Server before 2.33.0 contains a missing authentication vulnerability that allows unauthenticated remote attackers to download log archives via the /skServer/ziplogs endpoint. Attackers can extract the JWT secretKey from security.json in the ZIP, forge administrator tokens, and create persistent admin accounts for full server control.

Technical POC Analysis

Bug class: CWE-306, Missing Authentication for Critical Function.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-118690 is a critical unauthenticated vulnerability in Signal K Server (all releases before 2.33.0) that allows remote attackers to download a configuration archive containing the JWT signing key, enabling administrator token forgery and persistent admin account creation. This affects marine, vessel, and industrial deployments relying on Signal K for NMEA routing and alarms, exposing them to full system compromise. Leadership should prioritize immediate patching because the vulnerability is remotely exploitable without credentials and affects safety-critical operations.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Low
niche open-source marine vessel data server, ~66 instances seen via Shodan
Social Media
2
Sightings
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 CRITICAL
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
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.

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