Master's Thesis

Improving the Security of Garbage Collectors in the Java Virtual Machine

Final Thesis 1.2 MB

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.

Abstract:

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.

Keywords:

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)

znamkaAznamka

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

  1. Jakým způsobem by bylo nejvhodnější rozšířit SanitizeGC o podporu humongous regionů?

Language of thesis

English

Faculty

Department

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 report
Ing. 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.

Evaluation criteria Verbal classification
Informace k zadání

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.

Aktivita při dokončování

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.

Publikační činnost, ocenění

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.

Práce s literaturou

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.

Aktivita během řešení, konzultace, komunikace

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.

Points proposed by supervisor: 95

Grade proposed by supervisor: A

Reviewer’s report
Ing. 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 criteria Verbal classification Points
Rozsah splnění požadavků zadání

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.

Rozsah technické zprávy

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.

Prezentační úroveň technické zprávy

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í.

90
Formální úprava technické zprávy

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í.

89
Práce s literaturou

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.

85
Realizační výstup

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.

90
Využitelnost výsledků

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.

Náročnost zadání

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ů.

Topics for thesis defence:
  1. Jakým způsobem by bylo nejvhodnější rozšířit SanitizeGC o podporu humongous regionů?
Points proposed by reviewer: 90

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová