Podatność w modelu uprawnień Node.js umożliwia atakującemu obejście restrykcji `--allow-fs-read` i `--allow-fs-write` przy użyciu spreparowanych ścieżek względnych z dowiązaniami symbolicznymi. Skutkuje to możliwością odczytu i zapisu dowolnych plików poza dozwolonym katalogiem, co może prowadzić do kompromitacji systemu.
▸ Pokaż oryginał (EN)
A flaw in Node.js’s Permissions model allows attackers to bypass `--allow-fs-read` and `--allow-fs-write` restrictions using crafted relative symlink paths. By chaining directories and symlinks, a script granted access only to the current directory can escape the allowed path and read sensitive files. This breaks the expected isolation guarantees and enables arbitrary file read/write, leading to potential system compromise. This vulnerability affects users of the permission model on Node.js v20, v22, v24, and v25.
Atakujący tworzy skrypt, któremu przyznano dostęp wyłącznie do bieżącego katalogu. Poprzez łączenie katalogów i dowiązań symbolicznych (symlinków) ze spreparowanymi ścieżkami względnymi, skrypt jest w stanie wyjść poza dozwolony obszar systemu plików. Mechanizm weryfikacji uprawnień (CWE-289: Authentication Bypass by Alternate Name) nie rozpoznaje spreparowanych ścieżek jako wychodzących poza zezwolony zakres, co pozwala na ominięcie izolacji gwarantowanej przez model uprawnień.
Atakujący może odczytywać wrażliwe pliki systemowe oraz zapisywać dane poza dozwolonym katalogiem, naruszając oczekiwaną izolację. W konsekwencji możliwa jest pełna kompromitacja systemu, na którym uruchomiony jest podatny proces Node.js.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — szczegóły w komunikacie bezpieczeństwa Node.js z grudnia 2025 roku: https://nodejs.org/en/blog/vulnerability/december-2025-security-releases
Node.js w wersjach v20, v22, v24 oraz v25 — dotyczy użytkowników korzystających z modelu uprawnień (Permission Model)
Podatność dotyczy wyłącznie środowisk, w których aktywnie wykorzystywany jest eksperymentalny model uprawnień Node.js (flagi --allow-fs-read / --allow-fs-write). Instalacje nieużywające Permission Model nie są zagrożone.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NNode.js
APPNodejs20.0.0 – 20.20.0 (bez)22.0.0 – 22.22.0 (bez)24.0.0 – 24.13.0 (bez)25.0.0 – 25.3.0 (bez)
Powiązane podatności
Node.js TLS: błąd obsługi hostname z null-bajtem prowadzi do przekierowania authority
Node.js: obejście modelu uprawnień przez Unix Domain Socket
Command injection w aplikacjach Windows korzystających z CreateProcess
Path traversal w Permission Model Node.js przez monkey-patching Buffer
Various `node:fs` functions allow specifying paths as either strings or `Uint8Array` objects. In Node.js envir...