Superion: Grammar-Aware Greybox Fuzzing
Not on the map. Why?
Abstract (arXiv)
In recent years, coverage-based greybox fuzzing has proven itself to be one of the most effective techniques for finding security bugs in practice. Particularly, American Fuzzy Lop (AFL for short) is deemed to be a great success in fuzzing relatively simple test inputs. Unfortunately, when it meets structured test inputs such as XML and JavaScript, those grammar-blind trimming and mutation strategies in AFL hinder the effectiveness and efficiency. To this end, we propose a grammar-aware coverage-based greybox fuzzing approach to fuzz programs that process structured inputs. Given the grammar (which is often publicly available) of test inputs, we introduce a grammar-aware trimming strategy to trim test inputs at the tree level using the abstract syntax trees (ASTs) of parsed test inputs. Further, we introduce two grammar-aware mutation strategies (i.e., enhanced dictionary-based mutation and tree-based mutation). Specifically, tree-based mutation works via replacing subtrees using the ASTs of parsed test inputs. Equipped with grammar-awareness, our approach can carry the fuzzing exploration into width and depth. We implemented our approach as an extension to AFL, named Superion; and evaluated the effectiveness of Superion on real-life large-scale programs (a XML engine libplist and three JavaScript engines WebKit, Jerryscript and ChakraCore). Our results have demonstrated that Superion can improve the code coverage (i.e., 16.7% and 8.8% in line and function coverage) and bug-finding capability (i.e., 31 new bugs, among which we discovered 21 new vulnerabilities with 16 CVEs assigned and 3.2K USD bug bounty rewards received) over AFL and jsfunfuzz. We also demonstrated the effectiveness of our grammar-aware trimming and mutation.
Key facts. Cited by 12 papers in the map (data through 14 Oct 2026). First posted on arXiv 4 Dec 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 2; 2024: 4; 2025: 5; 2026: 1.
12 papers.
- 2023Augmenting Greybox Fuzzing with Generative AIcited by 18
- 2024LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzingcited by 14
- 2023Transformer-based Vulnerability Detection in Code at EditTime: Zero-shot, Few-shot, or Fine-tuning?cited by 13
- 2024Diffusion On Syntax Trees For Program Synthesiscited by 10
- 2024On the Challenges of Fuzzing Techniques via Large Language Modelscited by 4
- 2024CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutationcited by 3
- 2025OBsmith: LLM-Powered JavaScript Obfuscator Testingcited by 2
- 2025Synthesizing Precise Protocol Specs from Natural Language for Effective Test Generationcited by 2
- 2026Agentic Fuzzing: Opportunities and Challengescited by 1
- 2025SAGE:Specification-Aware Grammar Extraction for Automated Test Case Generation with LLMscited by 0
- 2025Clutch Control: An Attention-based Combinatorial Bandit for Efficient Mutation in JavaScript Engine Fuzzingcited by 0
- 2025From Coverage to Causes: Data-Centric Fuzzing for JavaScript Enginescited by 0
- 2026Agentic Fuzzing: Opportunities and Challenges11 May 2026
- 2025From Coverage to Causes: Data-Centric Fuzzing for JavaScript Engines19 Dec 2025
- 2025Synthesizing Precise Protocol Specs from Natural Language for Effective Test Generation22 Nov 2025
- 2025Clutch Control: An Attention-based Combinatorial Bandit for Efficient Mutation in JavaScript Engine Fuzzing14 Oct 2025
- 2025OBsmith: LLM-Powered JavaScript Obfuscator Testing11 Oct 2025
- 2025SAGE:Specification-Aware Grammar Extraction for Automated Test Case Generation with LLMs4 Jun 2025
- 2024LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing11 Jun 2024
- 2024Diffusion On Syntax Trees For Program Synthesis30 May 2024
- 2024CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutation19 Feb 2024
- 2024On the Challenges of Fuzzing Techniques via Large Language Models1 Feb 2024
- 2023Augmenting Greybox Fuzzing with Generative AI11 Jun 2023
- 2023Transformer-based Vulnerability Detection in Code at EditTime: Zero-shot, Few-shot, or Fine-tuning?23 May 2023