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
