一句话:提出混合生成器空间模糊测试,以生成器为求解单元并用LLM推导新生成器,提升语法有效性与语义多样性。
模糊测试的核心挑战在于持续生成语法有效且语义多样的测试输入,但基于变异的覆盖率引导模糊测试在处理高度结构化格式时往往难以兼顾二者。现有工作分为混合模糊测试与基于生成器的模糊测试:前者借助约束求解探索难以覆盖的状态,却常因字节级变异破坏校验和、跨字段依赖等语法结构;后者依赖预定义或合成生成器保证语法有效性,但静态生成器和盲目生成器变异限制了语义多样性。本文提出混合生成器空间模糊测试,将输入生成器而非测试输入作为定向求解单元,并利用LLM作为约束求解器推导新的生成器。基于该思想实现了GenEvo。在大量真实程序上的评估表明,使用本地部署的中等规模LLM,GenEvo在分支覆盖率上平均提升98.3%,并在漏洞发现上优于通用、混合、结构感知及LLM辅助的基线模糊测试工具,还发现了25个此前未知的漏洞。
The core challenge of fuzzing is to consistently generate test inputs that are both syntactically valid and semantically diverse. However, mutation-based coverage-guided fuzzing often struggles to achieve this, especially for highly structured formats. Two lines of work have emerged to address this challenge: (1) hybrid fuzzing uses constraint solving to drive execution toward hard-to-cover program states to increase semantic diversity, and (2) generator-based fuzzing relies on predefined or synthesized input-generation programs to ensure syntactic validity. Both approaches, however, have significant limitations. (1) In hybrid fuzzing, solved inputs are fed back into the fuzzing queue for byte-level mutation, which often breaks syntactic structure (e.g., checksums and cross-field dependencies) and causes early rejection. (2) In generator-based fuzzing, semantic diversity is constrained by static generators based on domain knowledge; although recent work introduces generator mutations, they remain blind and therefore have limited adaptability to the target program’s logic. In this paper, we present hybrid generator space fuzzing, a method that combines the strengths of hybrid fuzzing and generator-based fuzzing to improve the syntactic validity and semantic diversity of test inputs. The key idea is to treat input generators, rather than test inputs, as the unit of targeted solving, and to use the LLM as constraint solver to derive new generators. This design offers two benefits. First, compared with hybrid fuzzing, it preserves syntactic validity because inputs are generated directly from evolving generators rather than through byte-level mutation of solved seeds. Second, compared with generator-based fuzzing, it overcomes the limitations of static generators and blind generator mutations, enabling the fuzzer to adapt to target program logic and explore a broader semantic space. Building on this concept, we implement GenEvo, an LLM-driven hybrid generator space fuzzer. Our evaluation on a large set of real-world programs shows that GenEvo, using a locally deployed medium-sized LLM, significantly outperforms competitive baselines (including general-purpose, hybrid, structure-aware, and LLM-assisted fuzzers) in both branch coverage (with an average improvement of 98.3%) and vulnerability discovery. Furthermore, GenEvo has discovered 25 previously unknown vulnerabilities in these extensively-tested programs.