Në dispozicion janë lëshime korrigjuese për platformën serverike Node.js 21.6.2, 20.11.1, 18.19.1, ku janë rregulluar 8 dobësi, prej të cilave 4 u janë caktuar nivel të lartë rreziku:
- CVE-2024-21892 — mundësia e injektimit të kodit nga përdorues të paprivilegjuar, duke trashëguar privilegjet e zgjeruara me të cilat ekzekutohet procesi. Dobësia shkaktohet nga një gabim në implementimin e përjashtimit, duke lejuar që gjatë procesit me privilegje të zgjeruara të trajtohen variabla ambienti të vendosur nga një përdorues i paprivilegjuar. Përjashtimi duhej të jepet vetëm për këto privilegje CAP_NET_BIND_SERVICE, por për shkak të gabimit u aplikua edhe për disa privilegje të tjera.
- CVE-2024-22019 — refuzimi i shërbimit përmes shterimit të burimeve të disponueshme (ngarkesa në CPU dhe konsumimi i bandës) gjatë trajtimit nga serveri HTTP i integruar të kërkesave të formuara posaçërisht chunked, duke çuar në leximin e një sasie të pakufizuar bytes në një lidhje.
- CVE-2024-21896 — kalimi jashtë kufijve të katalogut bazë në rrugët e skedarëve. Dobësia lejon rrethimin e normalizimit të rrugëve të skedarëve përmes path.resolve() kur diçka kalon rrugën duke përdorur klasën Buffer. Për të marrë një rrugë të tillë pas verifikimit, thirret metoda Buffer.from(), por në aplikacion mund të përdoret thirrja Buffer.prototype.utf8Write, duke çuar në zëvendësimin e përmbajtjes pas ekzekutimit të path.resolve() dhe duke çuar në dobësi.
- CVE-2024-22017 — thirrja e setuid() nuk e rikthen të gjitha privilegjet. Në veçanti, setuid() nuk ndikon në operacionet io_uring, të përdorura në libuv, nëse ato janë inicializuar para thirrjes setuid().
- CVE-2023-46809 — dobësi në API privateDecrypt(), e cila lejon aplikimin e sulmit Marvin për dekriptuar RSA bazuar në matjen e kohës së operacioneve.
- CVE-2024-21891 — mundësia për të rrethuar modelin e të drejtave të aksesit gjatë përdorimit të procesuesve të personalizuar për normalizimin e rrugëve të skedarëve.
- CVE-2024-21890 — trajtimi jo korrekt i maskave në parametrat "—allow-fs-read" dhe "—allow-fs-write". Për shembull, "—allow-fs-read=\/home\/node\/.ssh\/*.pub" do të çojë në dhënien e aksesit në të gjithë përmbajtjen e ".ssh\/", dhe jo vetëm në skedarët me zgjerimin ".pub", pasi maska "*" trajtohet si elementi i fundit në rrugë.
- CVE-2024-22025 — shërbimi i refuzuar për shkak të shpenzimit të burimeve gjatë dekodimit të të dhënave të kompresuara në formatin Brotli, të marra përmes thirjes fetch().
Gjithashtu, mund të theksohet krijimi i versionit të bibliotekës libuv 1.48.0, e cila përdoret në Node.js për shumëkërkimin e lidhjeve dhe përpunimin asinkron të input/output. Përveç Node.js, biblioteka përdoret gjithashtu në serverët DNS BIND 9 dhe Knot DNS, HTTP-server H2O, kuadri Lua Luvit. makinën virtuale MoarVM, gjuha Julia dhe kuadri Python uvloop. Në versionin e ri është eliminuar një vulnerabilitet (CVE-2024-24806), që shfaqet në projekte që përdorin libuv dhe lejon një sulm SSRF (Server-side request forgery) për të fituar akses në API-në e brendshme. Vulnerabiliteti u shfaq për shkak të shkurtimit të emrit të hostit nga funksioni uv_getaddrinfo() në 256 karaktere në fazën para rezolvimit të domainit përmes funksionit getaddrinfo(), që mund të çojë në përcaktimin e një emri të gabuar. IP-адреса dhe anashkalimin e kontrollimeve. Për shembull, shërbimet si MySpace, që krijojnë subdomene si «username.example.com», mund të sulmohen duke treguar një emër përdoruesi të gjatë.
Po ashtu, doli një përditësim për klientin HTTP undici 5.28.3 të përdorur në Node.js, në të cilin është eliminuar një vulnerabilitet (CVE-2024-24758), shkaktuar nga mungesa e pastrimit të titullit HTTP Proxy-Authorization gjatë ridrejtimit të kërkesave.
Burimi: opennet.ru
