SignalK Server has Path Traversal leading to information disclosure
Description
Signal K Server is a server application that runs on a central hub in a boat. Prior to 2.20.3, a path traversal vulnerability in SignalK Server's applicationData API allows authenticated users on Windows systems to read, write, and list arbitrary files and directories on the filesystem. The validateAppId() function blocks forward slashes (/) but not backslashes (\), which are treated as directory separators by path.join() on Windows. This enables attackers to escape the intended applicationData directory. This vulnerability is fixed in 2.20.3.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
signalk-servernpm | < 2.20.3 | 2.20.3 |
Affected products
1- Range: 0.1.1, 0.1.10, 0.1.11, …
Patches
19bcf61c8fe2cfix(applicationData): sanitize applicationData paths
1 file changed · +15 −4
src/interfaces/applicationData.js+15 −4 modified@@ -218,7 +218,11 @@ module.exports = function (app) { } function validateAppId(appid) { - return appid.length < 30 && appid.indexOf('/') === -1 ? appid : null + return appid.length < 30 && + appid.indexOf('/') === -1 && + appid.indexOf('\\') === -1 + ? appid + : null } function validateVersion(version) { @@ -236,10 +240,17 @@ module.exports = function (app) { } function pathForApplicationData(req, appid, version, isUser) { - return path.join( - dirForApplicationData(req, appid, isUser), - `${version}.json` + const filePath = path.normalize( + path.join(dirForApplicationData(req, appid, isUser), `${version}.json`) ) + const configPath = path.resolve(app.config.configPath) + const resolvedPath = path.resolve(filePath) + + if (!resolvedPath.startsWith(configPath)) { + throw new Error('Invalid path: outside configuration directory') + } + + return filePath } function saveApplicationData(req, appid, version, isUser, data, callback) {
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-vrhw-v2hw-jffxghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-25228ghsaADVISORY
- github.com/SignalK/signalk-server/commit/9bcf61c8fe2cb8a40998b913a02fb64dff9e86c7ghsax_refsource_MISCWEB
- github.com/SignalK/signalk-server/security/advisories/GHSA-vrhw-v2hw-jffxghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.