Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. signalk-server
  4. ›
  5. GHSA-7m8x-x364-m26j

GHSA-7m8x-x364-m26j: Signal K Server: Buffered logs exposed to unauthenticated WebSocket clients

November 12, 2026

An unauthenticated WebSocket client can subscribe to the log path and receive buffered server logs.

WebSocket connections are intentionally permitted before authentication because login occurs over the WebSocket connection. However, the log subscription path does not enforce an authorization check.

processSubscribe handles subscriptions to the log path separately, without applying access control:

if (
Array.isArray(msg.subscribe) &&
msg.subscribe.length > 0 &&
msg.subscribe[0].path === 'log'
) {
if (!spark.logUnsubscribe) {
spark.logUnsubscribe = startServerLog(app, spark)
}
} else {
// normal subscriptions go through subscriptionmanager, which applies
// securityStrategy.filterReadDelta
}

startServerLog then replays the whole buffer to that socket:

app.logging.getLog().forEach((log) => {
spark.write({ type: 'LOG', data: log })
})

The asymmetry is inside this one file. Writes are gated by securityStrategy.shouldAllowWrite (ws.ts:961), normal delta subscriptions are filtered by securityStrategy.filterReadDelta (ws.ts:1159, the else branch of this same function), and the log branch consults neither.

An unauthenticated socket, which is legitimately open for login, can subscribe to log and receive buffered server logs.

Fix: Requires an administrator principal, before startServerLog, in the same way the other branch defers to securityStrategy. The fix was released with version 2.31.0-beta.1.

The investigated code path was reviewed at commit 26ab199. No server was run and no WebSocket frames were captured. AI assistance was used during the investigation.

References

  • github.com/SignalK/signalk-server/commit/1bee85114a4cb7403aba71632d9902792d6b4f0c
  • github.com/SignalK/signalk-server/releases/tag/v2.31.0
  • github.com/SignalK/signalk-server/releases/tag/v2.31.0-beta.1
  • github.com/SignalK/signalk-server/security/advisories/GHSA-7m8x-x364-m26j
  • github.com/advisories/GHSA-7m8x-x364-m26j

Code Behaviors & Features

Detect and mitigate GHSA-7m8x-x364-m26j with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions before 2.31.0-beta.1

Fixed versions

  • 2.31.0-beta.1

Solution

Upgrade to version 2.31.0-beta.1 or above.

Impact 5.3 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Learn more about CVSS

Weakness

  • CWE-306: Missing Authentication for Critical Function

Source file

npm/signalk-server/GHSA-7m8x-x364-m26j.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Fri, 13 Nov 2026 12:17:07 +0000.