Błąd w modelu uprawnień Node.js pozwala na nawiązanie połączeń przez Unix Domain Socket (UDS) z pominięciem restrykcji sieciowych, nawet gdy flaga `--allow-net` nie jest ustawiona. Podatność umożliwia dostęp do uprzywilejowanych usług lokalnych, co może prowadzić do privilege escalation lub wykonania kodu.
▸ Pokaż oryginał (EN)
A flaw in Node.js's permission model allows Unix Domain Socket (UDS) connections to bypass network restrictions when `--permission` is enabled. Even without `--allow-net`, attacker-controlled inputs (such as URLs or socketPath options) can connect to arbitrary local sockets via net, tls, or undici/fetch. This breaks the intended security boundary of the permission model and enables access to privileged local services, potentially leading to privilege escalation, data exposure, or local code execution. * The issue affects users of the Node.js permission model on version v25. In the moment of this vulnerability, network permissions (`--allow-net`) are still in the experimental phase.
Gdy Node.js uruchamiany jest z flagą `--permission`, model uprawnień powinien blokować nieautoryzowane połączenia sieciowe. Jednak atakujący może dostarczyć kontrolowane przez siebie dane wejściowe (np. URL lub opcję `socketPath`), które za pośrednictwem modułów `net`, `tls` lub `undici`/`fetch` nawiązują połączenie z dowolnymi lokalnymi gniazdami UDS. Mechanizm Unix Domain Socket nie jest objęty wymuszaną przez `--allow-net` kontrolą dostępu, co skutkuje przełamaniem zamierzonej granicy bezpieczeństwa modelu uprawnień. Pozwala to na komunikację z uprzywilejowanymi usługami lokalnymi dostępnymi wyłącznie przez UDS.
Atakujący może uzyskać nieautoryzowany dostęp do uprzywilejowanych usług lokalnych, co może skutkować privilege escalation, ujawnieniem wrażliwych danych lub lokalnym wykonaniem kodu (RCE/LPE).
Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://nodejs.org/en/blog/vulnerability/december-2025-security-releases). Do czasu aktualizacji należy unikać przekazywania niezaufanych danych wejściowych jako URL lub `socketPath` w aplikacjach uruchamianych z flagą `--permission`, a także ograniczyć dostęp do środowisk korzystających z Node.js v25.
Node.js w wersji v25 z włączonym modelem uprawnień (flaga `--permission`). Dotyczy środowisk działających na systemach Unix/Linux korzystających z Unix Domain Sockets.
Zgodnie z opisem w chwili ujawnienia podatności uprawnienia sieciowe (`--allow-net`) nadal mają status eksperymentalny w Node.js. Podatność dotyczy wyłącznie wersji v25.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HNode.js
APPNodejs25.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
Obejście modelu uprawnień w Node.js poprzez spreparowane symlinki
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...