Vulnerabilnosti u Node.js i libuv

Dostupni su ispravci za poslužiteljsku JavaScript platformu Node.js 21.6.2, 20.11.1, 18.19.1, koji popravljaju 8 ranjivosti, od kojih su 4 ocijenjene kao visokorizične:

  • CVE-2024-21892 — mogućnost umetanja koda od strane nepriviligiranog korisnika koji nasljeđuje proširene privilegije s kojima se proces izvršava. Ranjivost je uzrokovana greškom u implementaciji izuzetka, omogućujući nepriviligiranim korisnicima obradu varijabli okoline kad je proces pod proširenim privilegijama. Izuzetak je trebao biti dodijeljen samo za ovlasti CAP_NET_BIND_SERVICE, no uslijed greške je primjenjivan i na neke druge ovlasti.
  • CVE-2024-22019 — DoS napad kroz iscrpljivanje dostupnih resursa (opterećenje CPU-a i potrošnja propusnosti) prilikom obrade specijalno oblikovanih chunked zahtjeva od strane ugrađenog HTTP poslužitelja, što dovodi do čitanja neograničenog broja bajtova u jednoj vezi.
  • CVE-2024-21896 — izlazak izvan osnovnog direktorija u datotečnim putanjama. Ova ranjivost omogućava zaobilaženje normalizacije datotečnih putanja korištenjem path.resolve() kada se putanja proslijedi putem klase Buffer. Nakon provjere poziva se metoda Buffer.from(), ali u aplikaciji može se koristiti poziv Buffer.prototype.utf8Write, što dovodi do zamjene sadržaja nakon izvršenja path.resolve() i pojave ranjivosti.
  • CVE-2024-22017 — poziv setuid() ne poništava sve privilegije. Konkretno, setuid() ne utječe na operacije io_uring, korištene u libuv-u, ako su prethodno inicijalizirane prije poziva setuid().
  • CVE-2023-46809 — ranjivost u API-ju privateDecrypt(), koja dopušta primjenu Marvin napada za dešifriranje RSA na temelju mjerenja vremena operacija.
  • CVE-2024-21891 — mogućnost zaobilaženja modela pristupnih prava pri korištenju korisničkih obrtnika za normalizaciju datotečnih putanja.
  • CVE-2024-21890 — nepravilna obrada maski u parametrima "—allow-fs-read" i "—allow-fs-write". Na primjer, "—allow-fs-read=\/home\/node\/.ssh\/*.pub" će omogućiti pristup cijelom sadržaju ".ssh\/", a ne samo datotekama s ekstenzijom ".pub", budući da se maska "*" obrađuje kao posljednji element putanje.
  • CVE-2024-22025 — DoS через исчерпание ресурсов при декодировании сжатых данных Brotli, полученных через вызов fetch().

Также стоит отметить выход библиотеки libuv 1.48.0, используемой в Node.js для мультиплексирования соединений и асинхронной обработки ввода/вывода. Кроме Node.js, библиотека также используется на DNS-серверах BIND 9 и Knot DNS, HTTP-сервере H2O, Lua-фреймворке Luvit, virtualni napravi MoarVM, языке Julia и Python-фреймворке uvloop. В новой версии устранена уязвимость (CVE-2024-24806), наблюдаемая в проектах, использующих libuv, которая позволяет осуществить атаку SSRF (Server-side request forgery) для доступа к внутреннему API. Уязвимость возникла из-за обрезания хоста функцией uv_getaddrinfo() до 256 символов на этапе до резолвинга домена через getaddrinfo(), что может привести к неправильному определению IP-naslove и обходу проверок. Например, сервисы типа MySpace, создающие поддомены вида «username.example.com», можно атаковать через указание длинного имени пользователя.

Также выпущено обновление для HTTP-клиента Node.js undici версии 5.28.3, в котором устранена уязвимость (CVE-2024-24758), вызванная отсутствием очистки HTTP-заголовка Proxy-Authorization при перенаправлении запросов.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster