TLDR: RANDLUZZ is a new fuzzing technique that uses Large Language Models (LLMs) to make bug detection more efficient. It achieves this by using LLMs to generate “reachable” initial inputs (seeds) that guide testing directly to vulnerable code, and to create “bug-specific” mutation rules tailored to trigger particular vulnerabilities. This approach significantly speeds up bug discovery, outperforming traditional directed fuzzers by reducing randomness in the testing process.
Software testing is a crucial process to ensure the reliability and security of applications. One highly effective technique for finding bugs is called “fuzzing.” Fuzzing works by feeding a program with a large number of random or semi-random inputs to see if any of them cause the program to crash or behave unexpectedly, indicating a potential bug.
While fuzzing is powerful, its reliance on randomness can make it inefficient. Imagine trying to find a specific needle in a haystack by randomly picking hay. It might take a very long time. This is similar to how traditional fuzzing can take days or even weeks to uncover bugs, especially those hidden deep within a program’s code.
To improve this, a technique called “directed fuzzing” was developed. Instead of completely random exploration, directed fuzzing tries to guide the testing process towards specific areas of the code where bugs are suspected. However, even directed fuzzing still faces a challenge with randomness, particularly in two key areas: the initial inputs (called “seeds”) and the rules for modifying these inputs (called “mutators”). These elements often introduce too much randomness, making it harder to efficiently trigger bugs.
Introducing RANDLUZZ: Fuzzing with AI Reasoning
To tackle this problem, researchers have proposed a new approach called RANDLUZZ (Random-Less Fuzzer), which integrates Large Language Models (LLMs) into the directed fuzzing process. LLMs, known for their strong reasoning and code generation capabilities, are used to significantly reduce or even eliminate the randomness in seeds and mutators, leading to much more efficient bug detection. You can read the full research paper here.
How RANDLUZZ Leverages AI
RANDLUZZ uses LLMs in several phases to enhance fuzzing:
1. Intelligent Information Gathering: Before fuzzing begins, RANDLUZZ uses LLMs to gather essential information. This includes extracting details about the bug from reports (like its location and cause), understanding how to use the program (its command-line options), and summarizing the purpose and operations of different functions within the program’s code. This intelligent analysis helps the system understand the context of the bug and the program’s logic.
2. Generating “Reachable” Seeds: Instead of starting with random inputs, RANDLUZZ employs LLMs to create “reachable seeds.” These are carefully crafted inputs designed to guide the program’s execution directly to the suspected buggy locations. The LLMs achieve this by analyzing the program’s function call chains (the sequence of functions executed) or by understanding the general functionality of neighboring code areas. If an initial input doesn’t reach the target, the LLM provides guidance to modify it step-by-step until it does.
3. Crafting Bug-Specific Mutators: Once a seed reaches the target location, the next challenge is to generate mutations that actually trigger the bug. Traditional fuzzers use generic mutation rules (like flipping bits or inserting bytes), which are often random and inefficient for specific bugs. RANDLUZZ uses LLMs to analyze the bug’s cause and generate “bug-specific mutators.” These are custom code snippets that perform precise mutations tailored to trigger the identified vulnerability, significantly reducing the random guesswork.
Impressive Results and Efficiency
The evaluation of RANDLUZZ against four leading directed fuzzers (AFLGo, Beacon, WindRanger, and SelectFuzz) showed remarkable improvements. While RANDLUZZ’s preparation time is competitive, its impact on bug discovery efficiency is significant.
When fuzzers were equipped with RANDLUZZ-generated seeds, they achieved an average speedup ranging from 2.1 times to 4.8 times compared to using widely-used initial seeds. This means bugs were found much faster. In some cases, RANDLUZZ-generated seeds helped fuzzers discover bugs within tens of seconds, which was over a thousand times faster than other seed sets.
Furthermore, RANDLUZZ itself, with its advanced mutation strategy, consistently performed exceptionally well. It was the fastest in discovering 7 out of 13 exposed bugs. For instance, one bug was exposed in just 2 seconds by RANDLUZZ, while another fuzzer took over 13,000 seconds for the same bug. This highlights the combined effectiveness of both the intelligent seed generation and the bug-specific mutators.
The researchers also tested different LLM models and found that GPT-4o was the most effective for RANDLUZZ, balancing accuracy and efficiency. They even demonstrated that RANDLUZZ, powered by GPT-4o, could successfully analyze and trigger a vulnerability disclosed after the LLM’s last training update, proving the model’s reasoning capabilities beyond just memorized data.
Also Read:
- Unpacking AI’s Role in Software Security: A Deep Dive into Vulnerability Detection
- Repair-R1: Enhancing AI Bug Fixing Through Proactive Test Generation
Challenges and Future Directions
Despite its success, RANDLUZZ faces some challenges. In certain complex scenarios, like when a program’s function call chain is incomplete or when a target function has no identifiable “neighbor” functions, generating reachable seeds can be difficult. Also, LLMs sometimes add too many details to generated seeds, which can inadvertently increase the input length and reduce the efficiency of random mutations. Generating highly complex inputs like specific image or video formats also remains an area for future optimization.
Overall, RANDLUZZ represents a significant step forward in automated bug detection. By harnessing the power of Large Language Models to reason about code and bugs, it transforms fuzzing from a largely random process into a more intelligent, directed, and highly efficient method for uncovering software vulnerabilities.


