CVE-2023-37903: Zranitelnost vzdáleného spuštění kódu v knihovně vm2
CVE-2023-37903: Remote Code Execution vulnerability in the vm2 library
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Jakub Ferjak
Vedoucí práce
Kokeš Josef
Oponent práce
Kolárik Martin
Studijní obor
Informační bezpečnost 2021Studijní program
InformatikaInstituce přidělující hodnost
katedra informační bezpečnostiObhájeno
2024-06-19Práva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
JavaScriptová knihovna vm2 tvrdila, že umožňuje aplikacím provozovaným v prostředí Node.js bezpečné spouštění nedůvěryhodného kódu vytvořením izolovaného prostředí - tzv. sandboxu. V červenci roku 2023 byly v této knihovně objeveny dvě kritické zranitelnosti umožňující potenciálnímu útočníkovi uniknout z tohoto sandboxu. Za určitých okolností lze tyto zranitelnosti zneužít ke vzdálenému spuštění kódu na hostitelském stroji. V této práci je jedna z těchto zranitelností, identifikovaná jako CVE-2023-37903, nastudována. Na základě získaných informací je vyhodnocena odpověď na otázku, zda by mohly alternativní knihovny potenciálně vykazovat podobnou zranitelnost. Pro toto byly zvoleny dvě knihovny, isolated-vm a quickjs-emscripten. Výsledkem vyhodnocení je, že tyto knihovny podobnou zranitelnost nevykazují. Na základě tohoto vyhodnocení je prezentována obecná myšlenka toho, co lze provést v současných a budoucích implementacích, aby bylo podobné zranitelnosti zabráněno. Pro účely demonstrace zranitelnosti v knihovně vm2 a porovnání alternativních knihoven byl vytvořen virtuální stroj se serverovou aplikací v prostředí Node.js. The vm2 JavaScript library claimed to allow Node.js applications to execute untrusted code securely by creating an isolated environment - a sandbox. In July 2023, two critical vulnerabilities which allow a potential attacker to escape the sandbox were discovered in the library. Exploiting these vulnerabilities can under some circumstances lead to remote code execution on the host machine. In this thesis, one of these vulnerabilities, identified as CVE-2023-37903, is studied. Based on the gathered information, the question whether alternative sandboxing libraries for Node.js could exhibit a similar vulnerability is evaluated. For this, two libraries, isolated-vm and quickjs-emscripten, were chosen. The evaluation result is that these libraries do not exhibit a similar vulnerability. Based on the evaluation, a general idea of what can be done in current and future implementations to prevent such a vulnerability is presented. A virtual machine with a Node.js server application has been prepared to demonstrate the vulnerability in vm2 and to compare the alternative libraries.