paper-with-me

홈 › Papers

Fuzz4All: Universal Fuzzing with Large Language Models

2023-08-09 · Chunqiu Steven Xia, Matteo Paltenghi, Jia Le Tian, Michael Pradel, Lingming Zhang

Fuzzing has achieved tremendous success in discovering bugs and vulnerabilities in various software systems. Systems under test (SUTs) that take in programming or formal language as inputs, e.g., compilers, runtime engines, constraint solvers, and software libraries with accessible APIs, are especially important as they are fundamental building blocks of software development. However, existing fuzzers for such systems often target a specific language, and thus cannot be easily applied to other languages or even other versions of the same language. Moreover, the inputs generated by existing fuzzers are often limited to specific features of the input language, and thus can hardly reveal bugs related to other or new features. This paper presents Fuzz4All, the first fuzzer that is universal in the sense that it can target many different input languages and many different features of these languages. The key idea behind Fuzz4All is to leverage large language models (LLMs) as an input generation and mutation engine, which enables the approach to produce diverse and realistic inputs for any practically relevant language. To realize this potential, we present a novel autoprompting technique, which creates LLM prompts that are wellsuited for fuzzing, and a novel LLM-powered fuzzing loop, which iteratively updates the prompt to create new fuzzing inputs. We evaluate Fuzz4All on nine systems under test that take in six different languages (C, C++, Go, SMT2, Java and Python) as inputs. The evaluation shows, across all six languages, that universal fuzzing achieves higher coverage than existing, language-specific fuzzers. Furthermore, Fuzz4All has identified 98 bugs in widely used systems, such as GCC, Clang, Z3, CVC5, OpenJDK, and the Qiskit quantum computing platform, with 64 bugs already confirmed by developers as previously unknown.

📄 PDF Abstract BibTeX arXiv:2308.04748

Code (1)

fuzz4all/fuzz4all 공식 구현 pytorch

Similar Papers 제목 키워드 기반

On the Challenges of Fuzzing Techniques via Large Language Models

2024-02-01 · Linghan Huang, Peizhou Zhao, Huaming Chen, Lei Ma

In the modern era where software plays a pivotal role, software security and vulnerability analysis are essential for secure software development. Fuzzing test, as an efficient and traditional software testing method, ha…

software testingSurvey

When Fuzzing Meets LLMs: Challenges and Opportunities

2024-04-25 · Yu Jiang, Jie Liang, Fuchen Ma, Yuanliang Chen 외

Fuzzing, a widely-used technique for bug detection, has seen advancements through Large Language Models (LLMs). Despite their potential, LLMs face specific challenges in fuzzing. In this paper, we identified five major c…

FuzzCoder: Byte-level Fuzzing Test via Large Language Model

2024-09-03 · Liqun Yang, Jian Yang, Chaoren Wei, Guanglin Niu 외

Fuzzing is an important dynamic program analysis technique designed for finding vulnerabilities in complex software. Fuzzing involves presenting a target program with crafted malicious input to cause crashes, buffer over…

Language ModelingLanguage ModellingLarge Language Modelvalid

R1-Fuzz: Specializing Language Models for Textual Fuzzing via Reinforcement Learning

2025-09-21 · Jiayi Lin, Liangcai Su, Junzhe Li, Chenxiong Qian arxiv

Fuzzing is effective for vulnerability discovery but struggles with complex targets such as compilers, interpreters, and database engines, which accept textual input that must satisfy intricate syntactic and semantic con…

Reinforcement Learning

LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing

2024-06-11 · Hongxiang Zhang, Yuyang Rong, Yifeng He, Hao Chen

Greybox fuzzing has achieved success in revealing bugs and vulnerabilities in programs. However, randomized mutation strategies have limited the fuzzer's performance on structured data. Specialized fuzzers can handle com…

Language ModelingLanguage ModellingLarge Language Modelmodel+1