K dispozícii sú opravy serverovej JavaScript platformy Node.js 21.6.2, 20.11.1, 18.19.1, v ktorých bolo opravených 8 zraniteľností, z ktorých 4 majú vysokú úroveň nebezpečenstva:
- CVE-2024-21892 — možnosť nasadenia kódu bez privilegovaného používateľa, ktorý zdedí zvýšené privilégiá, s ktorými sa vykonáva pracovný proces. Zraniteľnosť je spôsobená chybou v implementácii výnimky, ktorá umožňuje spracovanie premenných prostredia nastavených nepriviligovaným používateľom v procese so zvýšenými privilégiami. Výnimka mala byť poskytnutá iba pre oprávnenia CAP_NET_BIND_SERVICE, ale kvôli chybe sa vzťahovala aj na niektoré ďalšie oprávnenia.
- CVE-2024-22019 — odmietnutie služby cez vyčerpanie dostupných zdrojov (naťaženie CPU a spotreba šírky pásma) pri spracovaní špeciálne formátovaných chunked požiadaviek, ktoré vedú k čítaniu neobmedzeného množstva bajtov v jednom pripojení.
- CVE-2024-21896 — prekročenie základného adresára vo файловых cestách. Zraniteľnosť umožňuje obísť normalizáciu súborových ciest pomocou path.resolve() pri prenose cesty s využitím triedy Buffer. Na získanie takejto cesty po overení sa volá metóda Buffer.from(), ale v aplikácii môže byť použitý volanie Buffer.prototype.utf8Write, čo vedie k zmene obsahu po vykonaní path.resolve() a vzniku zraniteľnosti.
- CVE-2024-22017 — volanie setuid() nezmazalo všetky privilégiá. Najmä, setuid() nemá vplyv na operácie io_uring používané v libuv, ak boli inicializované pred volaním setuid().
- CVE-2023-46809 — zraniteľnosť v API privateDecrypt(), ktorá umožňuje vykonanie útoku Marvin na dešifrovanie RSA na základe merania času operácií.
- CVE-2024-21891 — možnosť obídenia modelu prístupových práv pri použití vlastných spracovateľov normalizácie súborových ciest.
- CVE-2024-21890 — nesprávne spracovanie masiek v parametroch "—allow-fs-read" a "—allow-fs-write". Napríklad, "—allow-fs-read=\/home\/node\/.ssh\/*.pub" povedie k poskytnutiu prístupu k celému obsahu " .ssh/", a nie iba k súborom s príponou ".pub", pretože maska "*" sa spracováva ako posledný prvok cesty.
- CVE-2024-22025 — DoS útok prostredníctvom vyčerpaného zdroja pri dekódovaní komprimovaných dát vo formáte Brotli, prijatých prostredníctvom volania fetch().
Ďalším zaujímavým faktom je vydanie knižnice libuv 1.48.0, ktorá sa používa v Node.js pre multiplexovanie pripojení a asynchrónne spracovanie vstupu/výstupu. Okrem Node.js sa táto knižnica využíva aj na DNS serveroch BIND 9 a Knot DNS, HTTP serveri H2O, Lua frameworku Luvit. virtuálnom stroji MoarVM, programovací jazyk Julia a Python framework uvloop. V novej verzii bola odstránená zraniteľnosť (CVE-2024-24806), ktorá sa prejavovala v projektoch používajúcich libuv a umožnila útok SSRF (Server-side request forgery) na získanie prístupu k vnútornému API. Zraniteľnosť vznikla v dôsledku zrezania názvu hostiteľa funkciou uv_getaddrinfo() na 256 znakov pred rezolúciou domény prostredníctvom funkcie getaddrinfo(), čo môže viesť k určitým a obchádzaniu kontrol. IP adresy Napríklad služby ako MySpace, ktoré vytvárajú subdomény vo forme „username.example.com“, môžu byť napadnuté zadaním dlhého používateľského mena.
Rovnako bolo vydané aktualizované HTTP klienta undici 5.28.3, ktorý sa používa v Node.js, v ktorom bola odstránená zraniteľnosť (CVE-2024-24758) spôsobená absenciou čistenia HTTP hlavičky Proxy-Authorization pri presmerovaní požiadaviek.
Zdroj: opennet.ru
