Vulnerabilities in Node.js and libuv

Pieejamas labojumu versijas servera JavaScript platformai Node.js 21.6.2, 20.11.1, 18.19.1, kurās ir labotas 8 ievainojamības, no kurām 4 ir ar augstu bīstamības pakāpi:

  • CVE-2024-21892 — iespēja nepilnvarotam lietotājam ievietot kodu, kas iegÅ«st paaugstinātas privilēģijas, ar kurām tiek izpildÄ«ts darbplÅ«sma. VainÄ«gas ir kļūdas izņēmuma realizācijā, kas ļauj apstrādāt vides mainÄ«gos, kurus ir noteicis nepilnvarots lietotājs, paaugstinātas privilēģijas procesā. Izņēmumam vajadzēja tikt pieŔķirtam tikai CAP_NET_BIND_SERVICE tiesÄ«bām, taču kļūdas dēļ tas tika piemērots arÄ« dažām citām tiesÄ«bām (capabilities).
  • CVE-2024-22019 — pakalpojumu atteikums, iztukÅ”ojot pieejamos resursus (CPU slodze un joslas platuma izmantoÅ”ana), apstrādājot specializētus chunked pieprasÄ«jumus, kas izraisa neierobežotu byte lasīŔanu vienā savienojumā, izmantojot iebÅ«vēto HTTP serveri.
  • CVE-2024-21896 — bāzes katalogu pārsniegÅ”ana failu ceļos. VainÄ«gums ļauj apiet failu ceļu normalizāciju, izmantojot path.resolve(), ja ceļŔ tiek nodots, izmantojot Buffer klasi. Pēc pārbaudes attiecÄ«gais ceļŔ tiek izsaukts ar Buffer.from() metodi, bet lietojumprogrammā var tikt izmantots Buffer.prototype.utf8Write izsaukums, kas noved pie satura aizstāŔanas path.resolve() izpildes posmā un izraisot problēmu.
  • CVE-2024-22017 — setuid() izsaukums neatslēdz visas privilēģijas. Proti, setuid() neietekmē io_uring operācijas, ko izmanto libuv, ja tās ir inicializētas pirms setuid() izsaukuma.
  • CVE-2023-46809 — ievainojamÄ«ba privateDecrypt() API, kas ļauj izmantot Marvin uzbrukumu RSA atÅ”ifrēŔanai, pamatojoties uz operāciju laika izmēģinājumiem.
  • CVE-2024-21891 — piekļuve piekļuves modeļa apietÅ”anai, izmantojot lietotāju definētus failu ceļu normalizēŔanas apstrādātājus.
  • CVE-2024-21890 — nepareiza masku apstrāde parametru ā€žā€”allow-fs-readā€ un ā€žā€”allow-fs-writeā€ gadÄ«jumā. Piemēram, ā€žā€”allow-fs-read=\/home\/node\/.ssh\/*.pubā€ nodroÅ”inās piekļuvi visam ā€ž.ssh\/ā€ saturam, nevis tikai failiem ar ā€ž.pubā€ paplaÅ”inājumu, jo maska ā€ž*ā€ tiek apstrādāta kā pēdējais elementu ceļŔ.
  • CVE-2024-22025 — pakalpojumu atteikums, iztukÅ”ojot resursus, dekodējot saspiestos datus Brotli formātā, kuri iegÅ«ti, izmantojot fetch() izsaukumu.

Papildus var minēt libuv 1.48.0 bibliotēkas izdoÅ”anu, kas tiek izmantota Node.js savienojumu muliplexēŔanai un asinkrās ievades/izvades apstrādei. Bez Node.js bibliotēka tiek izmantota arÄ« DNS serveros BIND 9 un Knot DNS, HTTP serverÄ« H2O, Lua ietvarā Luvit. virtuālā maŔīnā MoarVM, Julia valodā un Python ietvarā uvloop. Jaunajā versijā ir novērsta ievainojamÄ«ba (CVE-2024-24806), kas izpaužas projektos, kas izmanto libuv, un ļauj veikt SSRF (Server-side request forgery) uzbrukumu, lai piekļūtu iekŔējam API. IevainojamÄ«ba radās, jo funkcija uv_getaddrinfo() samazināja hosta nosaukumu lÄ«dz 256 simboliem pirms domēna izŔķirÅ”anas, izmantojot funkciju getaddrinfo(), kas var novest pie nepareiza nosaukuma noteikÅ”anas. IP adreses un pārbaudes apieÅ”anu. Piemēram, MySpace tipi pakalpojumi, kas rada apakÅ”domenas kā ā€žusername.example.comā€, var tikt uzbrukuÅ”i, norādot garu lietotājvārdu.

Tāpat ir iznācis atjauninājums Node.js izmantotajam HTTP klientam undici 5.28.3, kurā ir novērsta ievainojamÄ«ba (CVE-2024-24758), ko izraisÄ«ja Proxy-Authorization HTTP galvenes nesakopÅ”ana pie pieprasÄ«jumu pāradresācijas.

Avots: opennet.lv

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster