paperbot · PL 论文追踪

全部论文 待读 收藏

P2 FuzzInMem: Fuzzing Programs via In-memory Structures

FuzzInMem:通过内存结构进行模糊测试
ICSE Proceedings of the IEEE/ACM 46th International Conference on Software Engineering2024匹配度 2/10 · 论文属于模糊测试方向,关注通过内存结构变异保持文件格式合法,不涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户画像核心方向无关。引用 5 inbox
Xuwei Liu, Wei You, Yapeng Ye, Zhuo Zhang, Jianjun Huang, Xiangyu Zhang
crossref: 2026-09-12

AI 速览

一句话:提出变异输入的内存表示并借助应用内建打印函数重新生成文件的模糊测试技术,无需分析格式约束即可保持结构合法。

覆盖引导的灰盒模糊测试在发现软件漏洞方面十分有效,但面对 PDF 等具有严格约束的复杂文件格式时,基于比特/字节的变异往往产生无法被应用解析的输入,变异难题仍未解决。本文观察到大多数文件格式的内存表示相对简单,且设计良好的应用通常自带可将这些结构输出为文件的打印函数。基于此,作者提出新方法:直接变异输入的内存结构,再调用打印函数重新生成文件,从而由打印函数自然地保持格式约束,避免了对文件格式约束的复杂分析。作者实现了原型 FuzzInMem,并与 AFL、AFL++、Mopt、Weizz 和 FormatFuzzer 等最先进模糊器对比。结果表明 FuzzInMem 可扩展性好,在有效种子生成和路径覆盖方面显著优于通用模糊器;应用于真实程序时发现 29 个独特漏洞并获得 5 个 CVE。

问题
现有覆盖引导模糊器对 PDF 等复杂文件格式进行比特/字节变异时,生成的输入常因违反格式约束而无法被应用解析,难以深入测试。
方法
观察多数文件格式的内存表示简单且应用有内建打印函数,因此变异输入的内存结构并调用打印函数重新生成文件,以保持格式约束而无需学习格式规则。
评估
实现 FuzzInMem 原型,与 AFL、AFL++、Mopt、Weizz、FormatFuzzer 在有效种子生成与路径覆盖上对比,并应用于真实程序进行漏洞挖掘。
原文摘要(Abstract)

In recent years, coverage-based greybox fuzzing has proven to be an effective and practical technique for discovering software vulnerabilities. The availability of American Fuzzy Loop (AFL) has facilitated numerous advances in overcoming challenges in fuzzing. However, the issue of mutating complex file formats, such as PDF, remains unresolved due to strict constraints. Existing fuzzers often produce mutants that fail to parse by applications, limited by bit/byte mutations performed on input files. Our observation is that most in-memory representations of file formats are simple, and well-designed applications have built-in printer functions to emit these structures as files. Thus, we propose a new technique that mutates the in-memory structures of inputs and utilizes printer functions to regenerate mutated files. Unlike prior approaches that require complex analysis to learn file format constraints, our technique leverages the printer function to preserve format constraints. We implement a prototype called FuzzInMem and compare it with AFL as well as other state-of-the-art fuzzers, including AFL++, Mopt, Weizz, and FormatFuzzer. The results show that FuzzInMem is scalable and substantially outperforms general-purpose fuzzers in terms of valid seed generation and path coverage. By applying FuzzInMem to real-world applications, we found 29 unique vulnerabilities and were awarded 5 CVEs.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot11442,
  title = {FuzzInMem: Fuzzing Programs via In-memory Structures},
  author = {Xuwei Liu and Wei You and Yapeng Ye and Zhuo Zhang and Jianjun Huang and Xiangyu Zhang},
  booktitle = {ICSE},
  year = {2024},
  doi = {10.1145/3597503.3639172}
}