CVE-2026-123807
9.8 CRITICALpublic exploit availablePublished 2026-11-09 · Updated 2026-11-10
AI risk analysis
- Summary
- Signal K Server and @signalk/resources-provider contain a path traversal vulnerability (CWE-22) in the v2 REST API's /resources endpoint, allowing unauthenticated or authenticated attackers with read access to read arbitrary files on the server, including sensitive security.json which contains JWT secrets and password hashes. This enables token forgery and full administrative compromise via provider configuration manipulation.
- Exploitability
- Exploitation is straightforward for remote attackers: anonymous reads are possible if allow_readonly is enabled; otherwise a readonly user token suffices, and no user interaction or complex conditions are required.
- Blast radius
- Successful exploitation leads to complete system compromise: attackers can forge admin tokens, deploy malicious Execute providers to run arbitrary commands as the server process, and persist access across restarts—posing severe risk to marine vessel control systems.
- Detection
- Defenders should monitor for anomalous file access patterns in server logs, specifically requests to /signalk/v2/api/resources/ with resourceId values containing path traversal sequences (e.g., ../) or attempts to access files outside the expected resources directory such as security.json; also watch for unexpected provider creation events via POST /skServer/providers.
- Prioritized remediation
- Upgrade Signal K Server to version 2.34.0 or later and @signalk/resources-provider to version 1.5.3 or later immediately.
Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.
NVD description
Signal K Server is a server application that runs on a central hub in a boat. From 2.0.0 until 2.34.0 for Signal K Server and from 1.0.0 until 1.5.3 for @signalk/resources-provider, the v2 REST route GET /signalk/v2/api/resources/:resourceType/:resourceId accepts an unsafe resourceId that can escape the intended resource directory. The route passes the attacker-controlled resourceId through src/api/resources/index.ts to FileStore.getResource() in packages/resources-provider-plugin/src/filestorage.ts without adequate path containment, allowing arbitrary JSON files reachable by the server to be read. Related PUT and DELETE resource operations can write or delete files outside the storage root. Deployments with allow_readonly enabled permit anonymous reads, while other deployments require a readonly user token. Reading security.json exposes the HS256 JWT signing secret and password hashes, allowing an attacker to forge an administrator token. Administrative access to POST /skServer/providers can then create an Execute provider that runs commands with the server process privileges and persists its configuration across restarts. This issue is fixed in Signal K Server 2.34.0 and @signalk/resources-provider 1.5.3.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-22
Public exploit & PoC references
- https://github.com/SignalK/signalk-server/commit/83689f040d7e90280dddc643f44f3e4ce348fbb1
- https://github.com/SignalK/signalk-server/releases/tag/v2.34.0
- https://github.com/SignalK/signalk-server/security/advisories/GHSA-4xm8-rg9h-jhq2
- https://github.com/SignalK/signalk-server/security/advisories/GHSA-4xm8-rg9h-jhq2
All references
- https://github.com/SignalK/signalk-server/commit/83689f040d7e90280dddc643f44f3e4ce348fbb1
- https://github.com/SignalK/signalk-server/releases/tag/v2.34.0
- https://github.com/SignalK/signalk-server/security/advisories/GHSA-4xm8-rg9h-jhq2
- https://github.com/SignalK/signalk-server/security/advisories/GHSA-4xm8-rg9h-jhq2
Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.
Related CVEs
- CRITICALCVE-2026-112352
- CRITICALCVE-2026-124450PoC
- CRITICALCVE-2026-124490PoC
- CRITICALCVE-2026-103882
- HIGHCVE-2026-116249PoC
- HIGHCVE-2026-120315PoC
- CRITICALCVE-2026-9827
- CRITICALCVE-2026-100716PoC
Related by shared AI tags and CWE weakness class. Browse the full archive.