A Node.js 21.6.2, 20.11.1, 18.19.1 szerver JavaScript platforma kijavító kiadásai elérhetők, amelyekben 8 sebezhetőséget javítottak, közülük 4 magas kockázatú besorolást kapott.
- CVE-2024-21892 — lehetőség arra, hogy egy nem privilegizált felhasználó olyan kódot injektáljon, amely örökli azokat a kibővített jogosultságokat, amellyel a folyamatot végrehajtják. A sebezhetőség egy kivétel megvalósítási hibájából adódik, amely lehetővé teszi a nem privilegizált felhasználó által beállított környezeti változók kezelését kibővített jogosultságokkal rendelkező folyamatban. A kivételnek csak a CAP_NET_BIND_SERVICE jogosultságokra kellett volna vonatkoznia, de a hiba miatt más jogosultságokra is vonatkozott.
- CVE-2024-22019 — szolgáltatásmegtagadás az elérhető erőforrások (CPU terhelés és sávszélesség kimerülése) kimerítése a beépített HTTP szerver által különlegesen formázott chunked kérések feldolgozása során, amely korlátlan számú byte olvasásához vezet egyetlen kapcsolaton.
- CVE-2024-21896 — a fájlokban a bázis könyvtár határainak átlépése. A sebezhetőség lehetővé teszi a fájlok elérési útjainak normalizálásának megkerülését a path.resolve() használatával, ha a pályát a Buffer osztály segítségével adják meg. Az ilyen útvonalak ellenőrzése után a Buffer.from() metódus kerül meghívásra, de az alkalmazás felhasználhatja a Buffer.prototype.utf8Write hívását is, amely a path.resolve() végrehajtása után felülírja a tartalmat, és sebezhetőséget eredményez.
- CVE-2024-22017 — a setuid() hívás nem törölte az összes jogosultságot. Különösen a setuid() nem befolyásolja az io_uring műveleteit, amelyeket a libuv-ben használnak, ha azokat a setuid() hívása előtt inicializálták.
- CVE-2023-46809 — sebezhetőség a privateDecrypt() API-ban, amely lehetővé teszi a Marvin támadást az RSA időmérés alapú visszafejtésére.
- CVE-2024-21891 — a fájlok elérési útjainak normalizálásáért felelős egyéni feldolgozók használata során a hozzáférési modell megkerülésének lehetősége.
- CVE-2024-21890 — a maszkok helytelen kezelése az "—allow-fs-read" és "—allow-fs-write" paramétereknél. Például az "—allow-fs-read=\/home\/node\/.ssh\/*.pub" hozzáférést ad minden " .ssh\/" tartalmához, nem csak a " .pub" kiterjesztésű fájlokhoz, mivel a maszk "*" az útvonal utolsó elemének tekintendő.
- CVE-2024-22025 — szolgáltatásmegtagadás a Brotli tömörített adatainak dekódolása során erőforráshasználat révén, amelyet a fetch() hívás során kapunk.
Ezen kívül érdemes megemlíteni a libuv 1.48.0 könyvtár kiadását, amelyet a Node.js a kapcsolatok multiplexelésére és aszinkron bemeneti/kimeneti feldolgozásra használ. A Node.js-en kívül a könyvtár a BIND 9 és Knot DNS DNS-szervereken, az H2O HTTP-szerveren, valamint a Luvit Lua keretrendszerben is megtalálható. virtuális gépben A MoarVM, a Julia nyelv és a Python uvloop keretrendszerében is. Az új verzióban megszüntették a libuv-t használó projektekben felmerülő sebezhetőséget (CVE-2024-24806), amely lehetővé teszi az SSRF (Server-side request forgery) támadást, amelynek célja a belső API elérése. A sebezhetőség abból adódik, hogy az uv_getaddrinfo() funkció levágja a hosztnevet 256 karakterre a domain feloldása előtt a getaddrinfo() funkció révén, ami nem megfelelő definícióhoz és ellenőrzések kikerüléséhez vezethet. IP address Például a MySpace típusú szolgáltatások, amelyek az aldomain neveket a következő formátumban hozzák létre: „username.example.com”, sebezhetőek lehetnek hosszú felhasználónév megadásával.
Szintén megjelent az undici 5.28.3 verziója, amely az Node.js HTTP-kliens frissítése, s amelyben megszüntették a CVE-2024-24758 sebezhetőséget, amely a Proxy-Authorization HTTP-fejléc tisztításának hiányából adódott a kérések átirányításakor.
Forrás: opennet.ru
