Dostupne su ispravke serverne JavaScript platforme Node.js 21.6.2, 20.11.1, 18.19.1, koje ispravljaju 8 ranjivosti, od kojih su 4 klasificirane kao visoko rizične:
- CVE-2024-21892 — mogućnost zloporabe od strane neprivilegiranog korisnika da izvrši kod koji nasljeđuje proširene privilegije s kojima se izvodi radni proces. Ranjivost je uzrokovana greškom u implementaciji iznimke koja omogućuje neprivilegiranim korisnicima da obrađuju varijable okruženja tijekom rada s proširenim privilegijama. Izmjenu je trebalo omogućiti samo za ovlasti CAP_NET_BIND_SERVICE, no zbog greške to se primjenjivalo i na druge ovlasti.
- CVE-2024-22019 — uslužno odbijanje putem iscrpljivanja dostupnih resursa (opterećenje CPU-a i potrošnja propusnosti) prilikom obrade posebno oblikovanih chunked zahtjeva ugrađenim HTTP serverom, što dovodi do čitanja neograničenog broja bajtova u jednom spojenu.
- CVE-2024-21896 — izlazak izvan osnovne mape u putanjama datoteka. Ranjivost omogućuje zaobilaženje normalizacije putanja datoteka pomoću path.resolve() u slučaju poslane putanje korištenjem razreda Buffer. Nakon provjere poziva se metoda Buffer.from(), ali se može koristiti i poziv Buffer.prototype.utf8Write, što dovodi do zamjene sadržaja nakon izvršavanja path.resolve() i stvaranja ranjivosti.
- CVE-2024-22017 — poziv setuid() nije resetirao sve privilegije. Konkretno, setuid() ne utječe na operacije io_uring koje koristi libuv ako su inicijalizirane prije poziva setuid().
- CVE-2023-46809 — ranjivost u API-ju privateDecrypt(), koja dopušta izvršavanje Marvin napada za dešifriranje RSA na temelju mjerenja vremena operacija.
- CVE-2024-21891 — mogućnost zaobilaženja modela prava pristupa pri korištenju korisničkih obrada normalizacije putanja datoteka.
- CVE-2024-21890 — nepravilno rukovanje maskama u parametrima "—allow-fs-read" i "—allow-fs-write". Na primjer, "—allow-fs-read=\/home\/node\/.ssh\/*.pub" dovest će do dodjele pristupa 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 — usluge su nedostupne zbog potrošnje resursa prilikom dekodiranja komprimiranih podataka u Brotli formatu, dobivenih putem poziva fetch().
Također se može napomenuti oblikovanje izdanja biblioteke libuv 1.48.0, koja se koristi u Node.js za multiplexing veza i asinkrono procesiranje ulaza/izlaza. Osim Node.js, biblioteka se također koristi na DNS poslužiteljima BIND 9 i Knot DNS, HTTP poslužitelju H2O, Lua okviru Luvit, virtualnoj mašini MoarVM, jeziku Julia i Python okviru uvloop. U novoj verziji ispravljena je ranjivost (CVE-2024-24806), koja se očituje u projektima koji koriste libuv, a omogućava napad SSRF (Server-side request forgery) za dobivanje pristupa unutarnjem API-ju. Ranjivost je nastala zbog skraćivanja imena hosta funkcijom uv_getaddrinfo() na 256 znakova u fazi prije rezolucije domene putem funkcije getaddrinfo(), što može dovesti do definiranja netočnog IP adrese i zaobilaženja provjera. Na primjer, usluge poput MySpacea, koje kreiraju poddomene u obliku „username.example.com“, mogu se napasti određivanjem dugog korisničkog imena.
Također je objavljeno ažuriranje HTTP klijenta undici 5.28.3, korištenog u Node.js, u kojem je ispravljena ranjivost (CVE-2024-24758), uzrokovana nedostatkom čišćenja HTTP zaglavlja Proxy-Authorization prilikom preusmjeravanja zahtjeva.
Izvor: opennet.ru
