Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Ing. Patrik Čerbák
Acad. year: 2025/2026
Supervisor: Ing. David Kozák, Ph.D.
Reviewer: Ing. Aleš Smrčka, Ph.D.
This thesis focuses on improving the security of the Garbage-First garbage collector (G1 GC) in the Java Virtual Machine (JVM). The increase in security is achieved through continuous relocation of memory regions used by the garbage collector and by "locking" the original memory regions in which they were located. Thanks to this relocation, the dereference of dangling pointers (or other pointers created, for example, by a buffer overflow), which are still incorrectly pointing to the original memory, would be detected. This makes it much easier to detect and debug memory vulnerabilities in this garbage collector. This extension of G1 GC is called SanitizeGC, and it was tested with a set of custom tests as well as with a G1 test suite already present in the JVM's code. Apart from that, its functionality was checked on a few real-world applications. There were also two special scenarios created that introduce bugs on purpose to showcase that the extension can catch them efficiently (which was successful), at the cost of worse performance (4.5 times slower on average in high memory workload scenarios) and higher physical memory usage (1.1 times more on average, doubled in the worst case). Giving evidence that SanitizeGC is a useful diagnostic tool in the development and testing phases of JVM with acceptable overhead.
Java, OpenJDK, JVM, HotSpot, garbage collectors, G1 GC, security, dangling pointers, use-after-free vulnerability
Date of defence
23.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
A
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
Topics for thesis defence
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Intelligent Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Cybersecurity (NSEC)
Composition of Committee
doc. Mgr. Kamil Malinka, Ph.D. (předseda) doc. Ing. Ivan Homoliak, Ph.D. (místopředseda) Ing. Vojtěch Havlena, Ph.D. (člen) doc. Ing. Ondřej Ryšavý, Ph.D. (člen) Ing. Vladimír Veselý, Ph.D. (člen) Ing. Tomáš Goldmann, Ph.D. (člen)
Supervisor’s reportIng. David Kozák, Ph.D.
This thesis addresses a challenging systems and virtual-machine engineering problem. The student worked with OpenJDK/HotSpot internals, G1 garbage collection, memory protection, address remapping, testing infrastructure, benchmarking, and real-world debugging scenarios. The resulting prototype, supporting artifacts, tests, and evaluation demonstrate substantial engineering effort and a strong understanding of a difficult technical area. The overall scope, difficulty, independence, and achieved results clearly exceed the usual expectations for a master’s thesis. I therefore evaluate the work as excellent.
This was a demanding thesis topic carried out in collaboration with Red Hat/IBM. The work required the student to operate inside a very large and complex codebase, namely OpenJDK/HotSpot, and to understand JVM internals, G1 garbage collection, low-level memory management, systems programming, and VM debugging. The achieved result is a substantial prototype with real-world relevance, not merely an isolated academic exercise. I am very satisfied with the achieved results.
The thesis was delivered well ahead of the deadline. The student responded promptly to requested fixes and improvements, worked responsibly during the final phase, and showed a clear effort to bring both the written thesis and the implementation artifact to a complete and presentable state.
The work was developed in the context of open-source software and in collaboration with Red Hat/IBM. While it is still a research prototype, the topic and implementation have practical relevance and could serve as a basis for further discussion or future development in the OpenJDK ecosystem. The thesis was also presented at Excel@FIT.
The student was active in searching for and studying relevant materials. He worked independently with documentation, research papers, OpenJDK sources, and related technical resources, and he communicated his findings clearly during consultations.
The student was active throughout the project, kept me informed about progress, and came to consultations well prepared. He worked hard on technically difficult problems, reacted constructively to feedback, and gradually became increasingly autonomous in debugging, experimentation, and implementation decisions.
Grade proposed by supervisor: A
Reviewer’s reportIng. Aleš Smrčka, Ph.D.
Předložená práce řeší technicky náročné a zajímavé téma, které student uchopil kompetentně a s viditelným vlastním přínosem. Kladně hodnotím zejména netriviální implementační zásah do HotSpotu a přípravu vlastních testů a scénářů. Jedná se bezesporu o kvalitní diplomovou práci, která přináší technicky hodnotný výsledek.
Evaluation level: zadání splněno
Práce naplňuje všechny hlavní body zadání. Student se zabývá garbage collectory v JVM, shrnuje relevantní typy paměťových zranitelností, navrhuje vlastní opatření nad G1 GC, implementuje je v OpenJDK a provádí jeho vyhodnocení. Kladně hodnotím, že nad rámec minimálního zadání připravil vlastní testy, benchmarky a bug-seeding scénáře.
Evaluation level: přesahuje obvyklé rozmezí
Technická zpráva rozsahem (cca 111 normostran) i informační hustotou odpovídá podrobnější diplomové práci. Pokrývá teoretický úvod do problematiky, návrh, implementaci i evaluaci. Rozsah nepůsobí uměle nataženě; podstatné části práce dostaly přiměřený prostor.
Technická zpráva má logickou strukturu a kapitoly na sebe dobře navazují. Čtenář je postupně uveden do problematiky garbage collectoru, paměťových zranitelností, návrhu, implementace i vyhodnocení SanitizeGC. Pozitivně hodnotím zejména srozumitelnost hlavní myšlenky přesouvání regionů a uzamykání původní paměti i to, že implementační část neustupuje do příliš obecných formulací.
Po formální a jazykové stránce je technická zpráva na dobré úrovni. Text je převážně stylisticky čistý, terminologie je konzistentní a sazba působí standardně a přehledně. Drobné rezervy vidím v některých formulacích evaluační části, které jsou místy hodnoticí více než důkazní, a v dílčích nepřesnostech navázaných na zdrojové materiály. Nejde však o nedostatky, které by výrazně srážely celkovou úroveň zpracování.
Student pracuje s literaturou relevantní k tématu a opírá se o kombinaci odborných publikací, oficiální dokumentace i technických webových zdrojů. Kladně hodnotím, že zdroje pokrývají jak garbage collection a JVM, tak inspirační přístupy ze světa sanitizerů a memory-safety nástrojů. Výhradu mám k tomu, že vedle kvalitních odborných a oficiálních zdrojů se v bibliografii objevují i zdroje slabšího typu, které by u diplomové práce bylo vhodné omezit nebo lépe doplnit primárními publikacemi.
Realizační výstup je z technického hlediska nadprůměrný. Elektronická příloha dokládá netriviální zásah do HotSpotu formou rozšíření SanitizeGC a vlastní sadu ověřitelných testů, benchmarků a bug-seeding scénářů. Drobnou výhradu mám k velmi objemné příloze (s převzatým stromem OpenJDK) a k mírně problematickému překladu kvůli duplicitní třídě. Přes tyto výhrady však považuji realizační část za kvalitní a dostatečně přesvědčivě ověřenou.
Práce nepůsobí pouze kompilačně. Výsledkem je konkrétní rozšíření existujícího JVM, které rozvíjí myšlenku diagnostiky paměťových chyb na úrovni garbage collectoru. Přínos je nejvýraznější v tom, že ukazuje směr, jak do běhového prostředí JVM přenést část diagnostických technik inspirovaných nástroji typu sanitizer.
Evaluation level: obtížnější zadání
Práce se zaměřuje na návrh a implementaci zásahu do garbage collectoru G1 v OpenJDK/HotSpotu s cílem odhalovat dangling pointer a příbuzné chyby při práci s pamětí. Jde o technicky náročné téma, které vyžaduje orientaci v architektuře JVM, garbage collectoru i nízkoúrovňové implementaci běhového prostředí. Vyšší náročnost potvrzuje i nutnost provést vlastní evaluaci na testech a sadě benchmarků.
Grade proposed by reviewer: A
Responsibility: Mgr. et Mgr. Hana Odstrčilová