Severity by source
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
PR:L reflects that arbitrary file read is reachable by any authenticated user including read-only tokens; A:N because no direct availability impact is described in the vulnerability.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
2DescriptionCVE.org
Node-RED's local-filesystem library storage module (getLibraryEntry() and saveLibraryEntry() in packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/library.js), reachable via GET/POST /library/:lib/:type/*path, joins the user-supplied path parameter directly into the filesystem path via fspath.join(libDir, type, path) with no traversal sanitization, containment check, or path normalization/prefix verification. An authenticated user (including read-only-scoped tokens for the read path) can supply a path containing ../ sequences to read arbitrary files outside the library directory; a user with write access can write arbitrary files, enabling remote code execution via SSH authorized_keys or cron injection. This is a distinct, separately unpatched traversal from the previously fixed CVE-2021-21298 (Projects API).
AnalysisAI
Path traversal in Node-RED's library storage API (GET/POST /library/:lib/:type/*path) allows any authenticated user - including those holding read-only scoped API tokens - to read arbitrary files outside the library directory by injecting ../ sequences into the path parameter. Users with write-access credentials can escalate to remote code execution by writing attacker-controlled content to SSH authorized_keys files or system cron directories. This vulnerability is distinct from the previously patched CVE-2021-21298 (Projects API traversal), affects all published Node-RED versions per CPE wildcard, carries no vendor-released patch at time of analysis, and has no confirmed active exploitation or CISA KEV listing.
Technical ContextAI
Node-RED is a Node.js-based flow programming runtime exposing a REST API for managing user libraries. The vulnerable code in packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/library.js constructs filesystem paths via fspath.join(libDir, type, path), where path is taken verbatim from the HTTP request parameter with no sanitization, prefix verification, normalization, or containment check to ensure the resolved path stays within the intended library directory. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory - Path Traversal) identifies the root cause: unchecked user-supplied input in path construction. Both the GET handler (getLibraryEntry) and the POST handler (saveLibraryEntry) share this flaw, making the vulnerability bidirectional - arbitrary file read and arbitrary file write are both exposed through the same missing sanitization. The CPE cpe:2.3:a:node-red:node-red:*:*:*:*:*:*:*:* confirms no version bound exists; all published releases are affected.
RemediationAI
No vendor-released patch has been identified at time of analysis; the Node-RED GitHub repository at https://github.com/node-red/node-red should be monitored closely for a fix and any released patch applied immediately. The most impactful interim control is to restrict network access to the /library/ API endpoint to trusted, internal networks only using a reverse proxy or firewall rule, reducing the pool of users who can reach the vulnerable handler - the trade-off is that this blocks legitimate remote library management workflows. For the write-to-RCE path specifically, run Node-RED as a dedicated low-privilege OS user account that has no write access to sensitive filesystem locations such as ~/.ssh/authorized_keys, /etc/cron*, or /var/spool/cron - even a successful file-write traversal will then be unable to escalate to OS-level shell access; the trade-off is additional OS configuration overhead but this control is highly effective and should be applied regardless of patch status. Operators should also audit currently issued write-scoped API tokens and revoke any that are not operationally necessary, limiting the exploitable credential surface. Defenders with log access should monitor HTTP access logs for /library/ requests containing literal or URL-encoded ../ sequences as an indicator of active traversal attempts.
Node-Red is a low-code programming for event-driven applications built using nodejs. Rated medium severity (CVSS 6.5), t
Node-Red is a low-code programming for event-driven applications built using nodejs. Rated medium severity (CVSS 6.5), t
Same weakness CWE-22 – Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-53354
GHSA-f3wc-7g8m-89m9