CVE Catalog

CVE-2026-123807

CriticalCVSS 9.8
Published: Translated: NVD NIST

Summary

Signal K Server versions 2.0.0 through 2.33.x and @signalk/resources-provider 1.0.0 through 1.5.2 have a REST route GET /signalk/v2/api/resources/:resourceType/:resourceId that accepts an unsafe resourceId able to escape the intended resource directory. Lack of path containment allows reading arbitrary JSON files reachable by the server, and related PUT and DELETE operations can write or delete files outside the storage root. Reading security.json exposes the HS256 JWT signing secret and password hashes, enabling forged admin tokens and further escalation.

Risk Assessment

An attacker can read sensitive files, including JWT secrets and password hashes, then forge an administrator token and gain command execution on the server. In deployments with allow_readonly enabled, the attack requires no authentication.

Recommendation

Update Signal K Server to 2.34.0 and @signalk/resources-provider to 1.5.3. Until patched, restrict access to resource routes and disable allow_readonly if possible.

Other vulnerabilities in Signal K Server

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS