You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Standard crash minimizers (e.g., afl-tmin) operate at the byte level and routinely destroy the semantic structure of the crashing input. For structured-format parsers (XML, ELF, PNG, JSON), the minimized input often fails to parse at all — making crash triage significantly harder because the LLM can't reason about what semantic property caused the crash.
R17 from the lit review recommends format-aware minimization using the LLM to reduce the input while preserving the semantic property that triggers the crash. This dramatically improves triage quality.
Run afl-tmin as a fast baseline (byte-level, often good enough for binary formats)
If format is structured (xml/json/png/elf): run LLM-guided semantic minimization
LLM prompt: "Here is an input that crashes the parser at <stack_frame>. Reduce it to the smallest semantically valid input that still triggers the crash. Here is the current input: <input>. Here is the crash output: <asan_output>."
Verify each LLM-proposed reduction by running the binary
Return the smallest verified crashing input
Budget: 5 LLM rounds + binary verification per round
corpus/minimizer.py also exports:
batch_minimize(crashes: list[CrashReport], ...) — async, minimize in parallel
Motivation
Standard crash minimizers (e.g.,
afl-tmin) operate at the byte level and routinely destroy the semantic structure of the crashing input. For structured-format parsers (XML, ELF, PNG, JSON), the minimized input often fails to parse at all — making crash triage significantly harder because the LLM can't reason about what semantic property caused the crash.R17 from the lit review recommends format-aware minimization using the LLM to reduce the input while preserving the semantic property that triggers the crash. This dramatically improves triage quality.
Deliverables
corpus/minimizer.py:format_aware_minimize(crash_input: bytes, format: str, crash_report: CrashReport, binary: Path) -> bytesafl-tminas a fast baseline (byte-level, often good enough for binary formats)<stack_frame>. Reduce it to the smallest semantically valid input that still triggers the crash. Here is the current input:<input>. Here is the crash output:<asan_output>."corpus/minimizer.pyalso exports:batch_minimize(crashes: list[CrashReport], ...)— async, minimize in paralleltargets/<target>/crashes/minimized/Design notes
Dependencies
Blocks