paper-with-me

홈 › Papers

FuzzCoder: Byte-level Fuzzing Test via Large Language Model

2024-09-03 · Liqun Yang, Jian Yang, Chaoren Wei, Guanglin Niu, Ge Zhang, Yunli Wang, Linzheng Chai, Wanxu Xia, Hongcheng Guo, Shun Zhang, Jiaheng Liu, Yuwei Yin, Junran Peng, Jiaxin Ma, Liang Sun, Zhoujun Li

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 overflows, memory errors, and exceptions. Crafting malicious inputs in an efficient manner is a difficult open problem and the best approaches often apply uniform random mutations to pre-existing valid inputs. In this work, we propose to adopt fine-tuned large language models (FuzzCoder) to learn patterns in the input files from successful attacks to guide future fuzzing explorations. Specifically, we develop a framework to leverage the code LLMs to guide the mutation process of inputs in fuzzing. The mutation process is formulated as the sequence-to-sequence modeling, where LLM receives a sequence of bytes and then outputs the mutated byte sequence. FuzzCoder is fine-tuned on the created instruction dataset (Fuzz-Instruct), where the successful fuzzing history is collected from the heuristic fuzzing tool. FuzzCoder can predict mutation locations and strategies locations in input files to trigger abnormal behaviors of the program. Experimental results show that FuzzCoder based on AFL (American Fuzzy Lop) gain significant improvements in terms of effective proportion of mutation (EPM) and number of crashes (NC) for various input formats including ELF, JPG, MP3, and XML.

📄 PDF Abstract BibTeX arXiv:2409.01944

Code (1)

weimo3221/FUZZ-CODER 공식 구현 pytorch

Tasks

Language ModelingLanguage ModellingLarge Language Modelvalid

Similar Papers 제목 키워드 기반

Not all bytes are equal: Neural byte sieve for fuzzing

2017-11-10 · Mohit Rajpal, William Blum, Rishabh Singh

Fuzzing is a popular dynamic program analysis technique used to find vulnerabilities in complex software. Fuzzing involves presenting a target program with crafted malicious input designed to cause crashes, buffer overfl…

Allvalid

Greybox fuzzing as a contextual bandits problem

2018-06-11 · Ketan Patil, Aditya Kanade

Greybox fuzzing is one of the most useful and effective techniques for the bug detection in large scale application programs. It uses minimal amount of instrumentation. American Fuzzy Lop (AFL) is a popular coverage base…

Multi-Armed Bandits

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

Semantic-Aware Fuzzing: An Empirical Framework for LLM-Guided, Reasoning-Driven Input Mutation

2025-09-23 · Mengdi Lu, Steven Ding, Furkan Alaca, Philippe Charland arxiv

Security vulnerabilities in Internet-of-Things devices, mobile platforms, and autonomous systems remain critical. Traditional mutation-based fuzzers -- while effectively explore code paths -- primarily perform byte- or b…

Prompt EngineeringFew-Shot Learning

WhiteFox: White-Box Compiler Fuzzing Empowered by Large Language Models

2023-10-24 · Chenyuan Yang, Yinlin Deng, Runyu Lu, Jiayi Yao 외

Compiler correctness is crucial, as miscompilation can falsify program behaviors, leading to serious consequences. Fuzzing has been studied to uncover compiler defects. However, compiler fuzzing remains challenging: Exis…

Code GenerationCompiler Optimization