
structure-unaware LibFuzzer, resulting in a guided,
structure-aware in-process fuzzer. We outlined the
key challenges encountered during this integration
and detailed the most effective solutions we devel-
oped. Beyond the integration, we proposed and
implemented a set of structure-aware and structure-
unaware mutators to enhance the new fuzzer’s capa-
bilities.
To evaluate the effectiveness of our approach,
we conducted experiments using the JerryScript
JavaScript engine as the target. Our results show that
the Grammarinator-LibFuzzer integration achieved
higher coverage and feature count than either of
its predecessors. During the experiments, 29 bugs
were discovered in total, with 20 detected by the
Grammarinator-LibFuzzer integration and 8 exclu-
sively found by this new fuzzer.
Encouraged by these promising results, we plan to
continue this line of research by seeking answers to
several open questions: How does input format com-
plexity impact fuzzing efficiency? Which mutators
contribute most to new coverage and feature discov-
eries, and how does their effectiveness change over
time? How does the guided Grammarinator compare
to other guided structure-aware fuzzers in terms of
performance and capabilities? How would integrat-
ing Grammarinator with other guided fuzzing frame-
works impact its efficiency? To explore these ques-
tions, we aim to conduct a larger-scale evaluation
across a wider range of input formats, fuzz targets,
baseline fuzzers, and guided fuzzing harnesses.
ACKNOWLEDGEMENTS
This research was supported by project no. TKP2021-
NVA-09. Project no. TKP2021-NVA-09 has been im-
plemented with the support provided by the Ministry
of Culture and Innovation of Hungary from the Na-
tional Research, Development and Innovation Fund,
financed under the TKP2021-NVA funding scheme.
REFERENCES
Aschermann, C., Frassetto, T., Holz, T., Jauernig, P.,
Sadeghi, A.-R., and Teuchert, D. (2019). Nau-
tilus: Fishing for deep bugs with grammars. In
Proceedings of the Network and Distributed Systems
Security (NDSS) Symposium 2019. Internet Society.
doi:10.14722/ndss.2019.23412.
Atlidakis, V., Geambasu, R., Godefroid, P., Polishchuk,
M., and Ray, B. (2020). Pythia: Grammar-based
fuzzing of REST APIs with coverage-guided feed-
back and learning-based mutations. arXiv preprint.
arXiv:2005.11498 doi:10.48550/arXiv.2005.11498.
B
¨
ohme, M., Pham, V.-T., and Roychoudhury, A.
(2016). Coverage-based greybox fuzzing as
Markov chain. In Proceedings of the 2016 ACM
SIGSAC Conference on Computer and Communica-
tions Security (CCS ’16), pages 1032–1043. ACM.
doi:10.1145/2976749.2978428.
Diehl, C. (2015). Dharma. https://blog.mozilla.org/
security/2015/06/29/dharma/.
Even-Mendoza, K., Sharma, A., Donaldson, A. F., and
Cadar, C. (2023). GrayC: Greybox fuzzing of com-
pilers and analysers for C. In Proceedings of the 32nd
ACM SIGSOFT International Symposium on Software
Testing and Analysis (ISSTA 2023), pages 1219–1231.
ACM. doi:10.1145/3597926.3598130.
Fioraldi, A., Maier, D., Eißfeldt, H., and Heuse, M. (2020).
AFL++: Combining incremental steps of fuzzing re-
search. In 14th USENIX Workshop on Offensive Tech-
nologies (WOOT 20). USENIX Association.
Fratric, I. (n.d.). Domato, a DOM fuzzer. https://github.
com/googleprojectzero/domato.
GitLab B.V. (n.d.). GitLab protocol fuzzer community edi-
tion. https://gitlab.com/gitlab-org/security-products/
protocol-fuzzer-ce.
Google Inc. (n.d.). libprotobuf-mutator. https://github.com/
google/libprotobuf-mutator.
Grieco, G., Song, W., Cygan, A., Feist, J., and Groce, A.
(2020). Echidna: effective, usable, and fast fuzzing
for smart contracts. In Proceedings of the 29th ACM
SIGSOFT International Symposium on Software Test-
ing and Analysis (ISSTA 2020), pages 557–560. ACM.
doi:10.1145/3395363.3404366.
Hodov
´
an, R., Kiss,
´
A., and Gyim
´
othy, T. (2018). Gram-
marinator: A grammar-based open source fuzzer. In
Proceedings of the 9th ACM SIGSOFT International
Workshop on Automating Test Case Design, Selec-
tion, and Evaluation (A-TEST 2018), pages 45–48.
ACM. doi:10.1145/3278186.3278193 https://github.
com/renatahodovan/grammarinator.
Holler, C., Herzig, K., and Zeller, A. (2012). Fuzzing with
code fragments. In 21st USENIX Security Symposium
(USENIX Security 12), pages 445–458. USENIX As-
sociation.
JS Foundation et al. (n.d.). JerryScript. https://www.
jerryscript.net.
Lemieux, C., Padhye, R., Sen, K., and Song, D. (2018).
PerfFuzz: Automatically generating pathological in-
puts. In Proceedings of the 27th ACM SIG-
SOFT International Symposium on Software Testing
and Analysis (ISSTA 2018), pages 254–265. ACM.
doi:10.1145/3213846.3213874.
Lemieux, C. and Sen, K. (2018). FairFuzz: a tar-
geted mutation strategy for increasing greybox fuzz
testing coverage. In Proceedings of the 33rd
ACM/IEEE International Conference on Automated
Software Engineering (ASE ’18), pages 475–485.
ACM. doi:10.1145/3238147.3238176.
LLVM Project (n.d.). libFuzzer – a library for coverage-
ICSOFT 2025 - 20th International Conference on Software Technologies
188