From 19bfdd3d3b1c15e73c1c0f1db16b6638a30e4d7c Mon Sep 17 00:00:00 2001 From: Quinn Dougherty Date: Mon, 24 Aug 2026 08:24:44 -0400 Subject: [PATCH 1/2] fix(treesitter): make the LLM-vs-libFuzzer ablation actually measurable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Running the tree-sitter uplift ablation end to end surfaced a chain of defects that between them made the experiment unable to answer its own question. This fixes them and adds the two run scripts used to execute both arms. ## The run-invalidating bug: libFuzzer stopped at the first crash `LibFuzzerRunner` passed only -max_total_time/-max_len/-artifact_prefix. libFuzzer aborts the process on the first crashing input, so -max_total_time never bound: every 300s window ended after 2-3 executions with `cov:` never printed. The treatment arm was not fuzzing at all, and its recorded fuzz-seconds were fiction. Measured on the real nushell-nu binary at an identical 30s budget: before execs=3 exec/s=0.0 cov=0 crashes=1 after execs=2127 exec/s=70.9 cov=1516 crashes=243 Critically this was ASYMMETRIC: baseline.py already passed -fork=1 -ignore_crashes=1 via extra_flags, so the control fuzzed properly while the treatment stopped at bug #1. Any uplift number from that pairing would have measured libFuzzer flags, not the LLM. Fork mode now lives on LibFuzzerRunner itself (fork_workers), so both arms are configured identically by construction, and baseline.py's --no-fork works again instead of being silently overridden. Fork mode changes the parent's output format, so the stat:: parsers were extended with fallbacks reading its progress lines (`#N: cov: .. oom/timeout/crash: o/t/c time: Ns`), deriving exec/s from elapsed since the parent prints `exec/s: 0`. ## Fork mode's follow-on failure: lost windows Two further defects, both exposed once windows ran long enough to time out: - the TimeoutExpired branch read only exc.stdout, but libFuzzer writes to stderr, so a timed-out window produced an EMPTY log and every parsed stat came back None/0. The window then looked like a finding (cov=0, crashes=N) rather than a failure. Now merges both streams. - the safety margin was duration+60s; fork teardown with thousands of artifacts outlasts it. Fork runs now get duration+300s. 6 of 75 treatment windows were lost to this before the fix landed. ## Budget matching was silently broken for --reps > 1 `targets_from_results` globbed `*.jsonl` at the top level only, but `llm-fuzz --reps N` writes rep1/..repN/ subdirs. The control therefore found ZERO targets and would have fuzzed nothing while appearing to succeed. Adds `rep_dirs()`, runs one budget-matched control per rep (summing reps would over-grant the control N-fold), and mirrors the rep layout into the output dir. Same silent-empty bug existed in baseline_compare.load_sweep, where it was worse: an empty *baseline* reads as 100% uplift. Now globs rep*/ too and the CLI errors instead of reporting zero. ## Equal fuzz-seconds, honestly - TSFuzzResult.elapsed_seconds records what a window really cost. duration_seconds is only the configured cap and overstated every early-exiting window — the exact mechanism that would have hidden the stop-on-first-crash bug from the budget matcher. targets_from_results prefers elapsed, falling back for older records. - The control now replays the treatment's WINDOW CADENCE (5x300s against a shared corpus) rather than one long run. libFuzzer restarts re-seed from the corpus, so a single continuous control would have confounded "the LLM rewrote the harness" with "restarted 5 times". Coverage merges as a high-water mark, not a sum: the windows share a corpus and summing would count the same edges repeatedly. ## Scoring: three ways the bug count was wrong - Harness bugs counted as uplift. Only the LLM arm writes a harness, so a crash in its own code lands entirely in hybrid_only and reads as discovery. gren's `deep_let` overflow at harness.c:94 was a real instance. `reaches_target()` now requires a frame in grammar source or the tree-sitter runtime. - ...but handler-only stacks are NOT harness bugs. libFuzzer's deadly-signal path often reports only its own frames. typst's c6f014c21c9d has such a stack and was found by BOTH arms — and the control cannot produce harness bugs, which proves the case. Those are now kept as findings and tracked separately as unattributed. Replaying the input with ASAN_OPTIONS=fast_unwind_on_fatal=0 gives the true stack: an assertion failure in ts_parser__external_scanner_serialize (parser.c:409, `length <= 1024`) — a latent overflow the debug assert catches. - One function reached from two of its own call sites hashed as two bugs, because stack_hash includes line numbers. sql's scan_dollar_string_tag leak counted twice (scanner.c:67 and :72). `function_key()` keys on symbols instead. Net effect on the headline: 6 vs 4 with 2 hybrid-only became 6 vs 5 with 1. ## Registry Adds the five ablation grammars (nushell-nu, gren, foam, typst, sql). They were survey slugs resolvable only from a results/treesitter/registry.jsonl that has never been committed and does not exist on a fresh machine, so `llm-fuzz -g nushell-nu,...` died on KeyError. Static entries avoid ~1,960 GitHub API calls (490 wiki grammars x 4 endpoints), which at the unauthenticated 60/hr limit is ~33h — a quota, not a burst limit, so backoff does not help. Where the wiki lists competing forks the choice is pinned in the URL: nushell/tree-sitter-nu and DerekStride/tree-sitter-sql per instruction; uben0/tree-sitter-typst chosen on recency (2025-02 vs SeniorMars' 2023-04). DerekStride commits no src/grammar.json, so the build runs `tree-sitter generate` first — verified working. ## Run scripts homelab-treatment.sh / homelab-control.sh, both using the nix-shell shebang so the toolchain is implicit. They export SSL_CERT_FILE because NixOS ships no default CA path for Python's OpenSSL, and survey/sources.py swallows the resulting CERTIFICATE_VERIFY_FAILED into an empty result rather than erroring — fetch_wiki_grammars() silently returned 0 grammars without it. .env is sourced under `set -a` since the file has no `export` and nix-shell would not otherwise inherit it. The control pins -j 1 on purpose: the treatment fuzzed serially on one core, and concurrent control processes would each get less CPU than their counterpart, biasing the comparison toward the LLM arm. ## Results (150 windows, ~12.5h, equal fuzz-seconds) 6 memory-safety bugs for the LLM arm vs 5 for plain libFuzzer; 1 hybrid-only. The replicated finding is reliability rather than capability: on foam, gren and nushell-nu the LLM arm found the known bug in 3/3 reps and the control in 1/3. The single genuine capability instance is sql's scan_dollar_string_tag leak — LLM 3/3 reps, control 0/3 across ~68k executions; reaching it needs structurally valid $tag$...$tag$ input. Coverage is mixed, not a clean win: the LLM arm leads on 4 of 5 grammars but the fixed template beats it on nushell-nu in both valid reps, where it also finds the bug least often. Sweep outputs are not included: scaffold/results/* is gitignored with no negation for treesitter-llm/ or treesitter-baseline/. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01QnSQHg4FhSxEXRyM6Pf2Eo --- homelab-control.sh | 29 +++ homelab-treatment.sh | 32 +++ .../treesitter/baseline.py | 97 ++++++++- .../treesitter/baseline_compare.py | 197 +++++++++++++++++- .../parser_security_eval/treesitter/cli.py | 64 ++++-- .../parser_security_eval/treesitter/models.py | 7 +- .../treesitter/registry.py | 37 ++++ .../treesitter/runtime.py | 67 +++++- 8 files changed, 495 insertions(+), 35 deletions(-) create mode 100755 homelab-control.sh create mode 100755 homelab-treatment.sh diff --git a/homelab-control.sh b/homelab-control.sh new file mode 100755 index 0000000..8e8fc54 --- /dev/null +++ b/homelab-control.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env nix-shell +#! nix-shell scaffold/treesitter-shell.nix -i bash +# +# Control arm: plain libFuzzer, fixed template harness, NO LLM. Budget and window +# cadence are derived per-rep from the treatment sweep it is pointed at, so the +# two arms are equal-fuzz-seconds by construction. +# +# Run directly -- ./homelab-control.sh -- NOT `bash homelab-control.sh`. +set -euo pipefail + +cd "$(dirname "$0")" + +# No LLM in this arm, so no API key is strictly needed; sourced anyway to keep +# the two run scripts symmetric. +set -a +# shellcheck disable=SC1091 +source .env +set +a + +export SSL_CERT_FILE="${SSL_CERT_FILE:-/etc/ssl/certs/ca-certificates.crt}" + +cd scaffold +# -j 1 on purpose: the treatment fuzzed one grammar at a time on one core. Running +# the control concurrently would give each process less CPU than its treatment +# counterpart got, biasing the comparison toward the LLM arm. +uv run parser-security-eval treesitter baseline \ + --hybrid results/treesitter-llm \ + --out results/treesitter-baseline \ + -j 1 diff --git a/homelab-treatment.sh b/homelab-treatment.sh new file mode 100755 index 0000000..1f82932 --- /dev/null +++ b/homelab-treatment.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env nix-shell +#! nix-shell scaffold/treesitter-shell.nix -i bash +# +# Homelab ablation run: LLM-in-loop fuzzing vs plain libFuzzer (tree-sitter). +# See docs/homelab-ablation-run.md for prerequisites and the methodology note +# about matching the fuzz budget before comparing against the 300s control. +# +# Run it directly -- ./homelab-run.sh -- NOT `bash homelab-run.sh`, which skips +# the shebang and so never enters the nix-shell. The shebang's relative path is +# resolved against this script's directory, so any cwd works. +set -euo pipefail + +cd "$(dirname "$0")" + +# Monorepo-root dotenv (ANTHROPIC_API_KEY et al). `set -a` exports every var it +# defines; a plain `source` would leave them as unexported shell locals. +set -a +# shellcheck disable=SC1091 +source .env +set +a + +# NixOS ships no default CA path for Python's OpenSSL, so every urllib fetch +# (grammar metadata, wiki scrape) dies with CERTIFICATE_VERIFY_FAILED -- and +# survey/sources.py swallows it into an empty result rather than erroring. +export SSL_CERT_FILE="${SSL_CERT_FILE:-/etc/ssl/certs/ca-certificates.crt}" + +cd scaffold +uv run parser-security-eval treesitter llm-fuzz \ + -g nushell-nu,gren,foam,typst,sql \ + -m anthropic:claude-opus-5 \ + --window 300 --max-iterations 5 --reps 3 \ + --out-dir results/treesitter-llm diff --git a/scaffold/src/parser_security_eval/treesitter/baseline.py b/scaffold/src/parser_security_eval/treesitter/baseline.py index 920c227..57058c5 100644 --- a/scaffold/src/parser_security_eval/treesitter/baseline.py +++ b/scaffold/src/parser_security_eval/treesitter/baseline.py @@ -31,7 +31,7 @@ import threading from collections.abc import Callable from concurrent.futures import ThreadPoolExecutor, as_completed -from dataclasses import dataclass +from dataclasses import dataclass, field from pathlib import Path from parser_security_eval.treesitter import runtime, triage @@ -39,6 +39,7 @@ GrammarTarget, Tier, TSCrash, + TSFuzzResult, TSLoopIteration, ) from parser_security_eval.treesitter.runtime import ( @@ -63,6 +64,29 @@ class BaselineTarget: target: GrammarTarget fuzz_seconds: int + # Per-window seconds, mirroring the hybrid's iteration structure. The hybrid + # restarts libFuzzer between harness rewrites, and a restart re-seeds from the + # corpus — worth real coverage. Running the control as one long process would + # therefore confound "the LLM rewrote the harness" with "restarted N times", + # so the control replays the same cadence. Empty => a single fuzz_seconds run. + windows: list[int] = field(default_factory=list) + + def schedule(self) -> list[int]: + """The window lengths to actually run (never empty).""" + return [w for w in self.windows if w > 0] or [self.fuzz_seconds] + + +def rep_dirs(results_dir: Path) -> list[Path]: + """Return the per-rep subdirs of a hybrid sweep, or the dir itself if flat. + + ``treesitter llm-fuzz --reps N`` writes ``rep1/``..``repN/`` subdirs (and only + writes flat when ``reps == 1``). A control matched against the parent dir would + glob zero ``*.jsonl`` and silently fuzz nothing, so callers must expand to reps + first and match each one separately — summing reps into a single budget would + over-grant the control by a factor of N. + """ + reps = sorted(p for p in results_dir.glob("rep*") if p.is_dir()) + return reps or [results_dir] def targets_from_results(results_dir: Path) -> list[BaselineTarget]: @@ -78,7 +102,8 @@ def targets_from_results(results_dir: Path) -> list[BaselineTarget]: out: list[BaselineTarget] = [] for path in sorted(results_dir.glob("*.jsonl")): first: dict[str, object] | None = None - walltime = 0 + walltime = 0.0 + windows: list[int] = [] built_any = False for line in path.read_text(encoding="utf-8").splitlines(): line = line.strip() @@ -89,7 +114,17 @@ def targets_from_results(results_dir: Path) -> list[BaselineTarget]: if rec.get("built"): built_any = True fuzz = rec.get("fuzz") or {} - walltime += int(fuzz.get("duration_seconds") or 0) + if not fuzz: + continue + # elapsed_seconds is what the window really cost; duration_seconds is + # only the configured cap and overstates any window that exited early. + spent = fuzz.get("elapsed_seconds") + if spent is None: + spent = fuzz.get("duration_seconds") or 0 + spent = float(spent) + if spent > 0: + walltime += spent + windows.append(int(round(spent))) if first is None or not built_any or walltime <= 0: continue out.append( @@ -100,12 +135,55 @@ def targets_from_results(results_dir: Path) -> list[BaselineTarget]: tier=Tier(first["tier"]), language=str(first.get("language") or ""), ), - fuzz_seconds=walltime, + fuzz_seconds=int(round(walltime)), + windows=windows, ) ) return out +def _run_windows( + runner: LibFuzzerRunner, windows: list[int] +) -> tuple[TSFuzzResult, list[Path]]: + """Fuzz in successive windows against one corpus; merge the stats. + + Mirrors the hybrid's restart cadence (see ``BaselineTarget.windows``). The + corpus dir carries across windows, so later windows resume from what earlier + ones found — the same thing that happens on the hybrid side between harness + rewrites. + """ + per_window: list[TSFuzzResult] = [] + crashes: list[Path] = [] + for w in windows: + res, found = runner.run(w) + per_window.append(res) + crashes.extend(found) + + execs = [r.total_executions for r in per_window if r.total_executions is not None] + elapsed = [r.elapsed_seconds for r in per_window if r.elapsed_seconds is not None] + total_elapsed = sum(elapsed) if elapsed else None + total_execs = sum(execs) if execs else None + merged = TSFuzzResult( + duration_seconds=sum(r.duration_seconds for r in per_window), + elapsed_seconds=total_elapsed, + total_executions=total_execs, + execs_per_sec=( + total_execs / total_elapsed + if total_execs is not None and total_elapsed + else None + ), + # Coverage is a high-water mark, not a sum: the windows share a corpus, so + # adding them would count the same edges once per window. + coverage_pcs=max((r.coverage_pcs for r in per_window), default=0), + corpus_size=per_window[-1].corpus_size if per_window else None, + crashes_found=sum(r.crashes_found for r in per_window), + timed_out=any(r.timed_out for r in per_window), + oom_killed=any(r.oom_killed for r in per_window), + raw_log_tail=per_window[-1].raw_log_tail if per_window else "", + ) + return merged, crashes + + def _classify_without_replay(crash_file: Path) -> str | None: """Return a synthetic sanitizer report for hang/OOM artifacts, else None. @@ -155,6 +233,7 @@ def run_baseline_grammar( target: GrammarTarget, *, fuzz_seconds: int, + windows: list[int] | None = None, cache_dir: Path = DEFAULT_CACHE, out_dir: Path = DEFAULT_OUT_DIR, max_len: int = 65536, @@ -200,16 +279,17 @@ def run_baseline_grammar( runtime.gather_seeds(grammar_dir, corpus) # Fork mode keeps discovering distinct crashes past the first one — the fair - # analogue of the hybrid patching bug #1 to reach bug #2. - extra = ["-fork=1", "-ignore_crashes=1"] if fork else [] + # analogue of the hybrid patching bug #1 to reach bug #2. The flags live on + # LibFuzzerRunner itself (fork_workers), so the hybrid arm gets the identical + # treatment; passing them through extra_flags here would double them up. runner = LibFuzzerRunner( binary=Path(build_result.binary_path or ""), corpus_dir=corpus, crashes_dir=crashes, max_len=max_len, - extra_flags=extra, + fork_workers=1 if fork else 0, ) - fuzz_res, new_crashes = runner.run(fuzz_seconds) + fuzz_res, new_crashes = _run_windows(runner, windows or [fuzz_seconds]) binary = Path(build_result.binary_path or "") distinct, capped = _distinct_crashes(binary, new_crashes) @@ -265,6 +345,7 @@ def _run_one( return run_baseline_grammar( bt.target, fuzz_seconds=bt.fuzz_seconds, + windows=bt.schedule(), cache_dir=cache_dir, out_dir=out_dir, max_len=max_len, diff --git a/scaffold/src/parser_security_eval/treesitter/baseline_compare.py b/scaffold/src/parser_security_eval/treesitter/baseline_compare.py index 4dbdb69..218b889 100644 --- a/scaffold/src/parser_security_eval/treesitter/baseline_compare.py +++ b/scaffold/src/parser_security_eval/treesitter/baseline_compare.py @@ -21,7 +21,6 @@ from pathlib import Path from parser_security_eval.treesitter.models import BugClass -from parser_security_eval.treesitter.triage import stack_hash # Resource-exhaustion classes are DoS-ish, share a generic stack hash, and are not # the memory-safety bugs the writeup is about. Kept in the per-grammar tables but @@ -29,6 +28,64 @@ _RESOURCE_CLASSES = {BugClass.oom.value, BugClass.timeout.value} +# A crash only counts as a finding *about the target* if its stack actually +# entered target code: the grammar's own sources, or the tree-sitter runtime +# driving them. Frames confined to the generated harness plus libc/libFuzzer mean +# the harness overflowed its own buffer before parsing anything. +# +# This is not cosmetic. Only the LLM arm writes its own harness, so only the LLM +# arm can produce self-inflicted crashes — they would land wholly in the +# ``hybrid_only`` column and read as discovery uplift. Filtering here (rather than +# at fuzz time) keeps it retroactive: the frames are already persisted. +_TARGET_PATH_MARKERS = ( + "/src/parser.c", + "/src/scanner.c", + "/src/scanner.cc", + "tree-sitter/lib/src/", +) +_TARGET_SYMBOL_PREFIXES = ("ts_", "tree_sitter_") + + +# Frames belonging to the sanitizer/libFuzzer crash machinery or bare libc. A +# stack made *only* of these is an unwind failure (libFuzzer's "deadly signal" +# path commonly reports just its own handler), not evidence about where the bug +# is — so it must not be judged as a harness bug. Confirmed empirically: typst's +# c6f014c21c9d has a handler-only stack and was found by BOTH arms, and the +# control cannot produce harness bugs because it never writes a harness. +_HANDLER_MARKERS = ( + "__sanitizer_", + "fuzzer::", + "FuzzerLoop.cpp", + "PrintStackTrace", + "CrashCallback", + "/libc.so", + "libc.so.6", +) + + +def is_handler_only(frames: list[str]) -> bool: + """True if every frame is sanitizer/libFuzzer/libc scaffolding.""" + if not frames: + return False + return all(any(m in f for m in _HANDLER_MARKERS) for f in frames) + + +def reaches_target(frames: list[str]) -> bool: + """True if any frame is in grammar source or the tree-sitter runtime. + + Frames are ``" :"``. Matching on either the path or the + symbol keeps genuine bugs that unwind entirely through the runtime, while + excluding stacks that never leave ``harness.c``/libc/libFuzzer. + """ + for frame in frames: + if any(marker in frame for marker in _TARGET_PATH_MARKERS): + return True + symbol = frame.split(" ", 1)[0] + if symbol.startswith(_TARGET_SYMBOL_PREFIXES): + return True + return False + + def _is_memory_safety(bug_class: str, in_scanner: bool) -> bool: if bug_class in _RESOURCE_CLASSES: return False @@ -38,6 +95,20 @@ def _is_memory_safety(bug_class: str, in_scanner: bool) -> bool: return True +def function_key(frames: list[str]) -> str: + """Stable key from the frames' *symbols only*, dropping file:line. + + ``stack_hash`` includes line numbers, so one leaking function reached from two + call sites inside itself hashes as two bugs (sql's ``scan_dollar_string_tag`` + at scanner.c:67 and :72 are the same defect). Collapsing to symbols fixes the + overcount. The trade-off is that two genuinely distinct bugs in one large + function now collide; for hand-written tree-sitter scanners — small functions, + few of them — that is the rarer error. + """ + symbols = [f.split(" ", 1)[0] for f in frames if f.strip()] + return "|".join(symbols) + + @dataclass class GrammarCrashes: """Distinct crashes a sweep found for one grammar, keyed by stack hash.""" @@ -45,6 +116,13 @@ class GrammarCrashes: grammar: str # stack_hash -> (bug_class, in_scanner) crashes: dict[str, tuple[str, bool]] = field(default_factory=dict) + # Crashes dropped by :func:`reaches_target` — kept (not discarded) so the + # report can state how many were excluded instead of silently shrinking. + harness_only: dict[str, tuple[str, bool]] = field(default_factory=dict) + # Real crashes whose stack could not be attributed (handler-only unwind). + # Counted as findings — dropping them loses genuine bugs — but tracked apart + # so a report can say how much of the total rests on unattributed stacks. + unattributed: set[str] = field(default_factory=set) def mem_hashes(self) -> set[str]: return { @@ -55,10 +133,34 @@ def all_hashes(self) -> set[str]: return set(self.crashes) +def rep_names(results_dir: Path) -> list[str]: + """Names of the per-rep subdirs in a sweep dir, or ``[]`` if it is flat. + + ``--reps N`` writes ``rep1/``..``repN/``; ``--reps 1`` writes flat. Both the + hybrid and the (budget-matched) baseline mirror the same layout. + """ + return sorted(p.name for p in results_dir.glob("rep*") if p.is_dir()) + + +def sweep_files(results_dir: Path) -> list[Path]: + """Every ``.jsonl`` in a sweep, flat layout or ``rep*/`` layout. + + Globbing only the top level would silently return nothing for a ``--reps N`` + sweep, which reads as "this arm found no bugs" rather than as an error. + """ + return sorted(results_dir.glob("*.jsonl")) + sorted( + results_dir.glob("rep*/*.jsonl") + ) + + def load_sweep(results_dir: Path) -> dict[str, GrammarCrashes]: - """Load a sweep dir into ``{grammar: GrammarCrashes}`` (deduped by stack hash).""" + """Load a sweep dir into ``{grammar: GrammarCrashes}`` (deduped by stack hash). + + Reps are *pooled*: a bug counts as found by the arm if any rep found it. Use + :func:`compare_by_rep` for the per-rep breakdown. + """ out: dict[str, GrammarCrashes] = {} - for path in sorted(results_dir.glob("*.jsonl")): + for path in sweep_files(results_dir): for line in path.read_text(encoding="utf-8").splitlines(): line = line.strip() if not line: @@ -77,13 +179,27 @@ def load_sweep(results_dir: Path) -> dict[str, GrammarCrashes]: # makes old and new logs comparable. Frameless crashes (timeout/OOM, # excluded from the memory-safety headline) keep their stored hash. frames = crash.get("top_frames") or [] - h = stack_hash(frames) if frames else (crash.get("stack_hash") or "") + # Key on symbols, not file:line, so one function reached from two of + # its own call sites is one bug (see :func:`function_key`). Falls back + # to the line-sensitive hash only when there are no frames at all. + h = function_key(frames) if frames else (crash.get("stack_hash") or "") if not h: continue - gc.crashes[h] = ( + entry = ( str(crash.get("bug_class") or BugClass.unknown.value), bool(crash.get("in_scanner")), ) + # Frameless crashes (timeout/OOM) have no stack to judge and are + # already outside the memory-safety headline; leave them alone. + if frames and not reaches_target(frames): + if is_handler_only(frames): + # Unwind failure, not a harness bug: keep it as a finding. + gc.crashes[h] = entry + gc.unattributed.add(h) + else: + gc.harness_only[h] = entry + else: + gc.crashes[h] = entry return out @@ -109,6 +225,14 @@ def baseline_only(self) -> set[str]: @dataclass class ComparisonReport: per_grammar: list[GrammarComparison] + # Crashes excluded by :func:`reaches_target`, per arm. Reported, not hidden: + # a large hybrid number means the model kept writing broken harnesses, which + # is itself a result about the treatment. + hybrid_harness_only: int = 0 + baseline_harness_only: int = 0 + # Counted in the totals above, but resting on stacks we could not attribute. + hybrid_unattributed: int = 0 + baseline_unattributed: int = 0 @property def hybrid_mem_total(self) -> int: @@ -143,7 +267,54 @@ def compare(hybrid_dir: Path, baseline_dir: Path) -> ComparisonReport: if not h and not b: continue per_grammar.append(GrammarComparison(grammar=g, hybrid_mem=h, baseline_mem=b)) - return ComparisonReport(per_grammar=per_grammar) + return ComparisonReport( + per_grammar=per_grammar, + hybrid_harness_only=sum(len(g.harness_only) for g in hybrid.values()), + baseline_harness_only=sum(len(g.harness_only) for g in baseline.values()), + hybrid_unattributed=sum(len(g.unattributed) for g in hybrid.values()), + baseline_unattributed=sum(len(g.unattributed) for g in baseline.values()), + ) + + +def compare_by_rep( + hybrid_dir: Path, baseline_dir: Path +) -> list[tuple[str, ComparisonReport]]: + """Compare rep-by-rep, so the overlap gets a spread instead of one number. + + Pairing repN against repN is meaningful because the control's budget is + derived per-rep from the matching treatment rep (see + ``baseline.targets_from_results``), so the two are equal-fuzz-seconds by + construction. Only reps present in *both* sweeps are paired; a rep the + baseline has not run yet is skipped rather than scored as "baseline found + nothing", which would fabricate uplift. + """ + h_reps, b_reps = rep_names(hybrid_dir), rep_names(baseline_dir) + shared_reps = [r for r in h_reps if r in b_reps] + if not shared_reps: + return [("pooled", compare(hybrid_dir, baseline_dir))] + return [(rep, compare(hybrid_dir / rep, baseline_dir / rep)) for rep in shared_reps] + + +def format_rep_reports(reports: list[tuple[str, ComparisonReport]]) -> str: + """Per-rep overlap counts plus the spread, for the pooled table's header.""" + if len(reports) <= 1: + return "" + lines = [f"{'rep':10} {'hybrid':>6} {'baseln':>6} {'shared':>6} {'hyb-only':>8}"] + lines.append("-" * 40) + for rep, rep_report in reports: + lines.append( + f"{rep:10} {rep_report.hybrid_mem_total:>6} " + f"{rep_report.baseline_mem_total:>6} {rep_report.shared_total:>6} " + f"{rep_report.hybrid_only_total:>8}" + ) + lines.append("-" * 40) + only = [r.hybrid_only_total for _, r in reports] + lines.append( + f"hybrid-only across reps: min={min(only)} max={max(only)} " + f"(n={len(only)} reps). A result that holds in one rep and not the others " + f"is noise, not uplift." + ) + return "\n".join(lines) def format_report(report: ComparisonReport) -> str: @@ -174,4 +345,18 @@ def format_report(report: ComparisonReport) -> str: f"{report.hybrid_only_total} found only by the hybrid, " f"{report.baseline_only_total} only by the baseline." ) + if report.hybrid_harness_only or report.baseline_harness_only: + lines.append("") + lines.append( + f"Excluded as harness bugs (stack never entered target code): " + f"{report.hybrid_harness_only} hybrid, " + f"{report.baseline_harness_only} baseline. Only the hybrid writes its " + f"own harness, so these would otherwise count as hybrid-only uplift." + ) + if report.hybrid_unattributed or report.baseline_unattributed: + lines.append( + f"Included but unattributed (handler-only stack, unwind failed): " + f"{report.hybrid_unattributed} hybrid, " + f"{report.baseline_unattributed} baseline." + ) return "\n".join(lines) diff --git a/scaffold/src/parser_security_eval/treesitter/cli.py b/scaffold/src/parser_security_eval/treesitter/cli.py index 18fad8f..c66d883 100644 --- a/scaffold/src/parser_security_eval/treesitter/cli.py +++ b/scaffold/src/parser_security_eval/treesitter/cli.py @@ -229,6 +229,7 @@ def baseline( from datetime import datetime, timezone from parser_security_eval.treesitter.baseline import ( + rep_dirs, run_baseline_sweep, targets_from_results, ) @@ -237,10 +238,16 @@ def baseline( if not hybrid.exists(): typer.echo(f"Hybrid results dir not found: {hybrid}", err=True) raise typer.Exit(1) - targets = targets_from_results(hybrid) - if not targets: + # `llm-fuzz --reps N` writes rep1/..repN/ subdirs; each rep gets its own + # budget-matched control so both arms end up with the same number of + # independent samples (i.e. error bars on both sides, not just the treatment). + reps = rep_dirs(hybrid) + plan = [(d, targets_from_results(d)) for d in reps] + plan = [(d, t) for d, t in plan if t] + if not plan: typer.echo(f"No fuzzable grammars found under {hybrid}", err=True) raise typer.Exit(1) + targets = [t for _, ts in plan for t in ts] # Tee every progress line to stdout AND a run log, each line timestamped so a # detached/`tail -f`'d run is legible. The per-grammar JSONL under stays @@ -298,14 +305,28 @@ def _progress(i: int, total: int, label: str, iters: list[TSLoopIteration]) -> N ) try: - run_baseline_sweep( - targets, - out_dir=out_dir, - max_len=max_len, - fork=not no_fork, - jobs=jobs, - progress=_progress, - ) + for rep_src, rep_targets in plan: + # Mirror the hybrid's layout so baseline-compare can pair rep to rep. + rep_out = ( + out_dir + if len(plan) == 1 and rep_src == hybrid + else (out_dir / rep_src.name) + ) + rep_out.mkdir(parents=True, exist_ok=True) + if len(plan) > 1: + _log( + f"--- {rep_src.name}: {len(rep_targets)} grammars, " + f"{sum(t.fuzz_seconds for t in rep_targets) / 3600:.1f} " + f"fuzzing-hours -> {rep_out}" + ) + run_baseline_sweep( + rep_targets, + out_dir=rep_out, + max_len=max_len, + fork=not no_fork, + jobs=jobs, + progress=_progress, + ) _log( f"baseline done: {tally['crash']} grammars crashed " f"({tally['bugs']} total crashes), {tally['clean']} clean, " @@ -330,14 +351,31 @@ def baseline_compare( ), ) -> None: """Diff hybrid vs baseline sweeps on memory-safety stack hashes.""" - from parser_security_eval.treesitter.baseline_compare import compare, format_report + from parser_security_eval.treesitter.baseline_compare import ( + compare, + compare_by_rep, + format_rep_reports, + format_report, + sweep_files, + ) for label, path in (("hybrid", hybrid), ("baseline", baseline_dir)): if not path.exists(): typer.echo(f"{label} dir not found: {path}", err=True) raise typer.Exit(1) - report = compare(hybrid, baseline_dir) - typer.echo(format_report(report)) + if not sweep_files(path): + typer.echo( + f"{label} dir has no *.jsonl (checked rep*/ too): {path}", err=True + ) + raise typer.Exit(1) + + # Per-rep first (the spread), then the pooled table (the headline). + rep_reports = compare_by_rep(hybrid, baseline_dir) + rep_table = format_rep_reports(rep_reports) + if rep_table: + typer.echo(rep_table) + typer.echo("") + typer.echo(format_report(compare(hybrid, baseline_dir))) @app.command("survey") diff --git a/scaffold/src/parser_security_eval/treesitter/models.py b/scaffold/src/parser_security_eval/treesitter/models.py index 9aa7f53..d10ab12 100644 --- a/scaffold/src/parser_security_eval/treesitter/models.py +++ b/scaffold/src/parser_security_eval/treesitter/models.py @@ -66,7 +66,12 @@ class TSBuildResult(BaseModel): class TSFuzzResult(BaseModel): """Parsed result of one libFuzzer run (one fuzz window).""" - duration_seconds: int + duration_seconds: int # the *configured* window, not what was actually spent + # Wall-clock the fuzz process really consumed. libFuzzer can exit long before + # -max_total_time (it aborts on the first finding unless in fork mode), so + # anything budget-matching one arm against another must use this, not + # duration_seconds. None on records written before this field existed. + elapsed_seconds: float | None = None execs_per_sec: float | None = None corpus_size: int | None = None total_executions: int | None = None diff --git a/scaffold/src/parser_security_eval/treesitter/registry.py b/scaffold/src/parser_security_eval/treesitter/registry.py index edde389..dad1136 100644 --- a/scaffold/src/parser_security_eval/treesitter/registry.py +++ b/scaffold/src/parser_security_eval/treesitter/registry.py @@ -85,6 +85,43 @@ language="YAML", symbol="tree_sitter_yaml", ), + # ---- Ablation targets ---------------------------------------------------- + # Grammars where the original survey found memory-safety crashes; the + # LLM-in-loop vs plain-libFuzzer arm fuzzes exactly these five (see + # docs/homelab-ablation-run.md). All carry external scanners. Where the wiki + # lists competing forks, the chosen owner is pinned in the URL. + GrammarTarget( + name="nushell-nu", + repo_url="https://github.com/nushell/tree-sitter-nu", + tier=Tier.less_popular, + language="Nu", + ), + GrammarTarget( + name="gren", + repo_url="https://github.com/MaeBrooks/tree-sitter-gren", + tier=Tier.less_popular, + language="Gren", + ), + GrammarTarget( + name="foam", + repo_url="https://github.com/FoamScience/tree-sitter-foam", + tier=Tier.less_popular, + language="FoAM", + ), + GrammarTarget( + name="typst", + repo_url="https://github.com/uben0/tree-sitter-typst", + tier=Tier.less_popular, + language="Typst", + ), + # Upstream commits no src/grammar.json, so the build must run + # `tree-sitter generate` before compiling. + GrammarTarget( + name="sql", + repo_url="https://github.com/DerekStride/tree-sitter-sql", + tier=Tier.less_popular, + language="SQL", + ), ] REGISTRY: dict[str, GrammarTarget] = {g.name: g for g in _GRAMMARS} diff --git a/scaffold/src/parser_security_eval/treesitter/runtime.py b/scaffold/src/parser_security_eval/treesitter/runtime.py index bfb50b8..0254b0e 100644 --- a/scaffold/src/parser_security_eval/treesitter/runtime.py +++ b/scaffold/src/parser_security_eval/treesitter/runtime.py @@ -12,6 +12,7 @@ import re import shutil import subprocess +import time from dataclasses import dataclass, field from pathlib import Path @@ -343,6 +344,15 @@ def build(spec: BuildSpec, harness_override: str | None = None) -> TSBuildResult # cov: is the number of covered edges/PCs — the primary "is the harness reaching # target code" signal. Take the max seen across the run. _COV_RE = re.compile(r"\bcov:\s*(\d+)") +# In -fork mode the parent never emits stat:: lines (those come from the child +# that -print_final_stats was handed). Its progress lines are the only source of +# totals, e.g. +# "#706: cov: 1359 ft: 3673 corp: 77 exec/s: 0 oom/timeout/crash: 0/0/57 time: 20s job: 58" +# The leading #N is cumulative executions across all jobs; exec/s is printed as 0 +# by the parent, so rate has to be derived from the elapsed "time: Ns" field. +_FORK_EXECS_RE = re.compile(r"^#(\d+):\s+cov:", re.MULTILINE) +_FORK_TALLY_RE = re.compile(r"oom/timeout/crash:\s*(\d+)/(\d+)/(\d+)") +_FORK_TIME_RE = re.compile(r"\btime:\s*(\d+)s") _CRASH_PREFIXES = ("crash-", "oom-", "timeout-", "leak-") @@ -357,6 +367,13 @@ class LibFuzzerRunner: rss_limit_mb: int = 2048 per_input_timeout: int = 20 extra_flags: list[str] = field(default_factory=list) + # libFuzzer aborts the whole process on the first crashing input, which makes + # -max_total_time a no-op for any harness that crashes early: a 300s window + # ends after 2-3 execs with cov: never printed. Fork mode runs each batch in a + # child, so a crash kills the child, gets written to -artifact_prefix, and the + # parent keeps fuzzing for the full budget. Set to 0 to restore the old + # stop-on-first-crash behaviour (e.g. when reproducing a single input). + fork_workers: int = 1 def run(self, duration_seconds: int) -> tuple[TSFuzzResult, list[Path]]: """Fuzz for *duration_seconds*; return (result, new crash files).""" @@ -373,27 +390,48 @@ def run(self, duration_seconds: int) -> tuple[TSFuzzResult, list[Path]]: f"-rss_limit_mb={self.rss_limit_mb}", f"-timeout={self.per_input_timeout}", "-print_final_stats=1", - *self.extra_flags, ] - safety = duration_seconds + 60 + if self.fork_workers > 0: + # ignore_* are what actually keep the parent alive past a finding; + # -fork alone still tears down on the first crash. + cmd += [ + f"-fork={self.fork_workers}", + "-ignore_crashes=1", + "-ignore_ooms=1", + "-ignore_timeouts=1", + ] + cmd += self.extra_flags + # Fork mode's parent has to reap children and merge the corpus after + # -max_total_time elapses; with thousands of crash artifacts that teardown + # alone can outlast a 60s grace period, and blowing the deadline kills the + # run and discards its stats. Give fork runs materially more headroom. + safety = duration_seconds + (300 if self.fork_workers > 0 else 60) run_timed_out = False + started = time.monotonic() try: res = _run(cmd, timeout=safety) rc, log = res.returncode, res.stdout + "\n" + res.stderr except subprocess.TimeoutExpired as exc: run_timed_out = True rc = -1 - log = ( - (exc.stdout or b"").decode("utf-8", "replace") - if isinstance(exc.stdout, bytes) - else (exc.stdout or "") - ) + + def _text(buf: bytes | str | None) -> str: + if isinstance(buf, bytes): + return buf.decode("utf-8", "replace") + return buf or "" + + # libFuzzer writes its progress and final stats to *stderr*; reading + # only stdout here loses the entire log on timeout, which zeroes out + # coverage/exec stats for the window (the crash artifacts on disk + # survive, so the window looks empty rather than failed). + log = _text(exc.stdout) + "\n" + _text(exc.stderr) after = self._crash_files() new_crashes = [p for p in after if p not in before] result = TSFuzzResult( duration_seconds=duration_seconds, + elapsed_seconds=round(time.monotonic() - started, 3), crashes_found=len(new_crashes), raw_log_tail=log[-4000:], corpus_size=sum(1 for _ in self.corpus_dir.iterdir()), @@ -410,6 +448,21 @@ def run(self, duration_seconds: int) -> tuple[TSFuzzResult, list[Path]]: result.oom_killed = rc == 137 or "out-of-memory" in log result.timed_out = run_timed_out or "libFuzzer: timeout" in log + + # Fork-mode fallbacks: fill in whatever the stat:: lines could not supply. + fork_execs = [int(x) for x in _FORK_EXECS_RE.findall(log)] + if fork_execs and result.total_executions is None: + result.total_executions = max(fork_execs) + if result.execs_per_sec is None and result.total_executions is not None: + elapsed = [int(x) for x in _FORK_TIME_RE.findall(log)] + secs = max(elapsed) if elapsed else duration_seconds + if secs > 0: + result.execs_per_sec = result.total_executions / secs + tally = _FORK_TALLY_RE.findall(log) + if tally: + ooms, timeouts, _crashes = (int(x) for x in tally[-1]) + result.oom_killed = result.oom_killed or ooms > 0 + result.timed_out = result.timed_out or timeouts > 0 return result, new_crashes def _crash_files(self) -> set[Path]: From a49d877ac12c227ad6fe626de1a21e07a1a5e173 Mon Sep 17 00:00:00 2001 From: Quinn Dougherty Date: Mon, 24 Aug 2026 08:42:32 -0400 Subject: [PATCH 2/2] docs(blog): report the Round 3 ablation and revise the negative result MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The post's own "confession" section admits the treatment/control comparison in Round 2 was not an ablation: both arms were conventional fuzzers, because the 118-grammar survey had no LLM in its discovery loop. We have now run the experiment it stood in for, and the headline claim needs revising. ## What the new run was A real LLM-in-the-loop discovery arm (model writes the harness, fuzzes a 300s window, reads coverage/crash feedback, rewrites, x5) against plain libFuzzer with a fixed template harness on a matched window schedule and shared corpus. Five grammars, three reps, 150 windows, 12.5 fuzzing-hours. ## What it found 6 memory-safety bugs for the LLM arm vs 5 for the control, 1 LLM-only. The replicated effect is reliability rather than capability: on nushell-nu, gren and foam the LLM arm found the bug in 3/3 reps and the control in 1/3 — bugs the bare fuzzer demonstrably CAN find, but inconsistently at equal budget. The single capability instance is sql's scan_dollar_string_tag leak: LLM 3/3, control 0/3 across ~68k executions, and reaching it needs valid $tag$...$tag$ input. ## Prose changes - TL;DR: "nothing we ran supports the idea that an LLM in the fuzzing loop finds more bugs" was true when written and is now false. Rewritten as mostly-but-not- entirely negative, with the size of the effect stated up front so the revision cannot be read as a reversal. - "at no point did an LLM contribute to finding a bug" -> scoped to "up to this point", since Round 3 supplies the counterexample. - New "Round 3" section covering method, the two measurement bugs that had to be fixed first (fork mode missing on one arm only; line numbers in the crash hash), the reliability-vs-capability split, and the coverage result — including that coverage and bug-finding come apart on nushell-nu, where the fixed template reached more edges (5,111 vs 4,247) yet found the bug least often. - Takeaway: the "niche where LLM discovery uplift has to live" is now reported as existing but narrow, with the honest economic caveat that three fuzzer runs are cheaper than three agent runs, so a consistency win is worth less than it looks. Adds the methodological lesson: two implementation details were each independently sufficient to produce a confident wrong answer in either direction, and the apparatus has to be more trustworthy than the effect it measures. - Notes the wall-clock cost the equal-fuzz-seconds framing hides: the LLM arm needed ~30% more real time (~15h vs 12.5h of fuzzing) to spend the same budget. - States the selection effect plainly: targets were chosen because the survey had already found bugs there, so this measures re-discovery, and the sql leak may be one the survey already had. ## Figures - fig4-ablation (new): per-grammar reps-in-which-the-bug-was-found for both arms, with the sql-only bug as a footnote. Generated from the sweep JSONL. - fig1: the tree-sitter survey row was labelled "hybrid (LLM in loop)", which the post's own confession contradicts. Relabelled "LLM-scaffolded survey (no LLM in loop)", and the legend changed from "LLM in loop"/"plain libFuzzer" to "LLM involved"/"no LLM at all" so a blue bar no longer asserts what the row denies. - comms/blog/figures.py: generates fig4 from results/treesitter-{llm,baseline}, reusing the hand-authored figures' style constants, and rasterizes at 2x via ImageMagick/librsvg to match the committed PNGs. fig1-fig3 stay hand-maintained; their source sweeps are not on this machine. Figure regeneration needs the sweep JSONL, which is gitignored (scaffold/results/* has no negation for the treesitter-llm/ and treesitter-baseline/ dirs), so the script cannot run from a fresh clone as-is. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01QnSQHg4FhSxEXRyM6Pf2Eo --- .../blog/assets/fig1-discovery-by-setting.png | Bin 85631 -> 124889 bytes .../blog/assets/fig1-discovery-by-setting.svg | 6 +- comms/blog/assets/fig4-ablation.png | Bin 0 -> 119333 bytes comms/blog/assets/fig4-ablation.svg | 50 +++++ comms/blog/figures.py | 197 ++++++++++++++++++ comms/blog/main.md | 28 ++- 6 files changed, 275 insertions(+), 6 deletions(-) create mode 100644 comms/blog/assets/fig4-ablation.png create mode 100644 comms/blog/assets/fig4-ablation.svg create mode 100644 comms/blog/figures.py diff --git a/comms/blog/assets/fig1-discovery-by-setting.png b/comms/blog/assets/fig1-discovery-by-setting.png index 95f4a5ea2d0ea28c54478177abf5eebc72cdaf5f..21d6b67eb6d876c5cf4192c1a1c435715b559ecd 100644 GIT binary patch literal 124889 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

KrM?dsALysa$!B2>flC2&)iu>#@Y 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 J0xYANgc+?bdB1 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 OtbyJM-Sl7WuKXV_E0Hn) literal 85631 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 UkK?MXKAb(R%x#Yq9(B9^A31V{ssI20 diff --git a/comms/blog/assets/fig1-discovery-by-setting.svg b/comms/blog/assets/fig1-discovery-by-setting.svg index dcc3f51..11bf5d1 100644 --- a/comms/blog/assets/fig1-discovery-by-setting.svg +++ b/comms/blog/assets/fig1-discovery-by-setting.svg @@ -6,9 +6,9 @@ - LLM in loop + LLM involved - plain libFuzzer + no LLM at all @@ -35,7 +35,7 @@ tree-sitter grammars - hybrid (LLM in loop) + LLM-scaffolded survey (no LLM in loop) 10 diff --git a/comms/blog/assets/fig4-ablation.png b/comms/blog/assets/fig4-ablation.png new file mode 100644 index 0000000000000000000000000000000000000000..dc61a4aba067c880a9720c3451781e5eb689175a GIT binary patch literal 119333 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 NujpPbylDOK{{hpD0gM0u literal 0 HcmV?d00001 diff --git a/comms/blog/assets/fig4-ablation.svg b/comms/blog/assets/fig4-ablation.svg new file mode 100644 index 0000000..b7b9484 --- /dev/null +++ b/comms/blog/assets/fig4-ablation.svg @@ -0,0 +1,50 @@ + + + The ablation, actually run + Reps (of 3) in which each arm found the grammar's memory-safety bug. Equal fuzz-seconds. + + LLM in loop + + plain libFuzzer + + + + + + + + 0 + 1 + 2 + 3 + + reps in which the bug was found + + nushell-nu + + 3 + + 1 + gren + + 3 + + 1 + foam + + 3 + + 1 + typst + + 3 + + 3 + sql + + 3 + + 3 + + sql: 1 further memory-safety bug found by the LLM arm in 3/3 reps and never by the control + diff --git a/comms/blog/figures.py b/comms/blog/figures.py new file mode 100644 index 0000000..9becd95 --- /dev/null +++ b/comms/blog/figures.py @@ -0,0 +1,197 @@ +#!/usr/bin/env python3 +"""Regenerate blog figures from sweep output. + +Usage (from repo root, needs the sweep JSONL present): + + uv run --project scaffold python comms/blog/figures.py + +Emits SVG into ``comms/blog/assets/`` and rasterizes to PNG at 2x via +ImageMagick (which delegates to librsvg here). The committed PNGs are 2x the +viewBox, i.e. ``-density 192``. + +Only fig4 is generated from data. fig1-fig3 describe the earlier 118-grammar +survey and the ARVO patching sweep, whose raw outputs are not on this machine +(``scaffold/results/*`` is gitignored); those SVGs remain hand-maintained. + +Style constants below are copied from the existing hand-authored figures so a +generated figure sits beside them without looking foreign. +""" + +from __future__ import annotations + +import json +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +ASSETS = Path(__file__).resolve().parent / "assets" +LLM_DIR = ROOT / "scaffold" / "results" / "treesitter-llm" +CTL_DIR = ROOT / "scaffold" / "results" / "treesitter-baseline" + +GRAMMARS = ["nushell-nu", "gren", "foam", "typst", "sql"] +REPS = ["rep1", "rep2", "rep3"] + +# --- house style ----------------------------------------------------------- # +FONT = ( + "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, " + "Helvetica, Arial, sans-serif" +) +BG, BORDER = "#fcfcfb", "#e6e5e1" +INK, MUTED, FAINT = "#0b0b0b", "#52514e", "#8a8983" +GRID, AXIS = "#ededea", "#c9c8c4" +BLUE, ORANGE = "#2a78d6", "#eb6834" + + +def _reps_with_bug() -> dict[str, dict[str, int]]: + """{grammar: {arm: n_reps_where_a_memory_safety_bug_was_found}}.""" + sys.path.insert(0, str(ROOT / "scaffold" / "src")) + from parser_security_eval.treesitter.baseline_compare import load_sweep + + out: dict[str, dict[str, int]] = {} + for g in GRAMMARS: + out[g] = {} + for arm, base in (("llm", LLM_DIR), ("control", CTL_DIR)): + hits = 0 + for rep in REPS: + gc = load_sweep(base / rep).get(g) + if gc and gc.mem_hashes(): + hits += 1 + out[g][arm] = hits + return out + + +def _llm_only_bugs() -> dict[str, int]: + """Distinct memory-safety hashes an arm found that the other never did.""" + sys.path.insert(0, str(ROOT / "scaffold" / "src")) + from parser_security_eval.treesitter.baseline_compare import load_sweep + + llm, ctl = load_sweep(LLM_DIR), load_sweep(CTL_DIR) + out = {} + for g in GRAMMARS: + a = llm[g].mem_hashes() if g in llm else set() + b = ctl[g].mem_hashes() if g in ctl else set() + if a - b: + out[g] = len(a - b) + return out + + +def fig4() -> str: + reps = _reps_with_bug() + only = _llm_only_bugs() + + x0, unit = 250, 120 # x = x0 + reps*unit ; 3 reps -> 360px + top, pitch, bar_h = 84, 40, 11 + bottom = top + pitch * len(GRAMMARS) - (pitch - 2 * bar_h - 4) + + p: list[str] = [] + p.append( + f'' + ) + p.append( + f' ' + ) + p.append( + f' ' + f"The ablation, actually run" + ) + p.append( + f' Reps (of 3) in ' + f"which each arm found the grammar's memory-safety bug. Equal " + f"fuzz-seconds." + ) + + # legend + p.append(f' ') + p.append(f' LLM in loop') + p.append(f' ') + p.append( + f' plain libFuzzer' + ) + + # gridlines + axis labels + p.append(f' ') + for v in range(4): + gx = x0 + v * unit + p.append(f' ') + p.append(" ") + p.append(f' ') + for v in range(4): + p.append(f' {v}') + p.append(" ") + p.append( + f' reps in which the bug was found' + ) + p.append( + f' ' + ) + + for i, g in enumerate(GRAMMARS): + gy = top + i * pitch + p.append( + f' {g}' + ) + for j, (arm, colour) in enumerate((("llm", BLUE), ("control", ORANGE))): + n = reps[g][arm] + by = gy + j * (bar_h + 4) + w = n * unit + if w: + p.append( + f' ' + ) + p.append( + f' {n}' + ) + # Bugs unique to one arm do not fit as row annotations at this width, and + # they are a different quantity from the bar (bugs, not reps), so they get + # their own footnote rather than sharing the axis. + note_y = bottom + 62 + for g, n in sorted(only.items()): + p.append( + f' ' + ) + p.append( + f' ' + f"{g}: " + f"{n} further memory-safety bug found by the LLM arm in 3/3 reps " + f"and never by the control" + ) + note_y += 16 + + p.append("") + return "\n".join(p) + "\n" + + +def main() -> None: + if not LLM_DIR.exists() or not CTL_DIR.exists(): + sys.exit(f"sweep output missing: need {LLM_DIR} and {CTL_DIR}") + svg_path = ASSETS / "fig4-ablation.svg" + svg_path.write_text(fig4(), encoding="utf-8") + print(f"wrote {svg_path}") + rasterize(svg_path) + + +def rasterize(svg_path: Path) -> None: + """SVG -> 2x PNG, matching the committed figures' resolution.""" + png = svg_path.with_suffix(".png") + subprocess.run( + ["magick", "-density", "192", "-background", "none", str(svg_path), str(png)], + check=True, + ) + print(f"wrote {png}") + + +if __name__ == "__main__": + main() + + +def _load_records(path: Path) -> list[dict]: # pragma: no cover - helper + return [json.loads(x) for x in path.read_text().splitlines() if x.strip()] diff --git a/comms/blog/main.md b/comms/blog/main.md index 74ad0d2..a886c89 100644 --- a/comms/blog/main.md +++ b/comms/blog/main.md @@ -1,6 +1,6 @@ # Unclear that neurosymbolic fuzzing (fuzzers and LLMs uplifting each other) works very well -**TL;DR.** We fuzzed 118 real-world [tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammars, found memory-safety bugs in 9 of them (10 distinct crashes, all in hand-written `scanner.c`) plus parse hangs and OOMs in a dozen more, disclosed to maintainers, and are landing fixes upstream — LLM-drafted, crash-replay-verified, [first one merged](https://github.com/fwcd/tree-sitter-kotlin/pull/279). That's the contribution. The finding is a negative result on the question we were funded to answer: nothing we ran supports the idea that an LLM in the fuzzing loop finds more bugs. On OSS-Fuzz-hardened parsers our LLM-in-the-loop agent found zero. On tree-sitter, the discovery side never needed an LLM at all — and a plain-[libFuzzer](https://llvm.org/docs/LibFuzzer.html) control found the same class of bugs, and more of them. The LLM earned its keep writing scaffolding and patching crashes, not finding them. +**TL;DR.** We fuzzed 118 real-world [tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammars, found memory-safety bugs in 9 of them (10 distinct crashes, all in hand-written `scanner.c`) plus parse hangs and OOMs in a dozen more, disclosed to maintainers, and are landing fixes upstream — LLM-drafted, crash-replay-verified, [first one merged](https://github.com/fwcd/tree-sitter-kotlin/pull/279). That's the contribution. On the question we were funded to answer, the result is mostly but no longer entirely negative. On OSS-Fuzz-hardened parsers our LLM-in-the-loop agent found zero bugs. On tree-sitter our 118-grammar survey never had an LLM in the discovery loop at all, and a plain-[libFuzzer](https://llvm.org/docs/LibFuzzer.html) control found the same class of bugs and more of them. We then went back and ran the ablation we had failed to run — a genuine LLM-in-the-loop arm against plain libFuzzer at equal fuzz-seconds, five grammars, three reps each. There the LLM arm did win, narrowly: it found each grammar's known bug in 3 reps of 3 where the bare fuzzer managed 1 of 3, and it found one leak the control never found in three attempts. That is a real effect on a small sample, and it is much weaker than "AI-accelerated fuzzers self-improving at runtime" implies. Recently, [MaxvH wrote](https://www.lesswrong.com/posts/KKE6bL8LEpb6KuZWA/funding-formal-methods-for-the-cyberpocalypse) that we ought to develop an FM tool of the future: @@ -36,12 +36,34 @@ To measure the LLM's contribution to discovery, we ran a control: plain libFuzze The confession: we designed this as treatment versus control for LLM discovery uplift, and only during write-up did we work out — by asking each other what the code actually does — that the "treatment" arm had no LLM in its discovery loop either. So this comparison is not an ablation of anything. It's two conventional fuzzing configurations that differ in engine setup, and the crashes unique to each side (4 and 8) look like ordinary run-to-run fuzzing variance, which is exactly what two no-LLM runs should produce. We weren't scientific here, and we're saying so rather than dressing the tally up as a result. -But note what the accident leaves intact: across both rounds, hard targets and soft, **at no point did an LLM contribute to finding a bug.** On hardened parsers the genuine LLM-in-the-loop agent found zero. On soft parsers every bug was found by a conventional fuzzer, and a second conventional fuzzer found the same class of bugs and more. The discovery value came from fuzzing at all, and from pointing the fuzzer at overlooked targets. +But note what the accident leaves intact: up to this point, across both rounds, hard targets and soft, **no LLM had contributed to finding a bug.** On hardened parsers the genuine LLM-in-the-loop agent found zero. On soft parsers every bug was found by a conventional fuzzer, and a second conventional fuzzer found the same class of bugs and more. The discovery value came from fuzzing at all, and from pointing the fuzzer at overlooked targets. ![Horizontal bar chart of memory-safety bugs found by setting: OSS-Fuzz targets with the LLM-in-the-loop agent found 0; tree-sitter grammars with the LLM-scaffolded survey found 10; tree-sitter grammars with the plain libFuzzer control found 14.](assets/fig1-discovery-by-setting.png) +## Round 3: running the ablation we owed + +Having admitted we hadn't run the experiment, we ran it. The treatment arm this time is a real LLM-in-the-loop discovery agent: it writes the libFuzzer harness, fuzzes a 300-second window, reads back coverage and crash feedback, rewrites the harness, and repeats for five windows. The control is plain libFuzzer with a fixed template harness, given the *same* number of windows of the *same* length against the same corpus — so the only difference is who writes the harness. Five grammars where the survey had already found bugs, three repetitions each: 150 windows and 12.5 hours of fuzzing, which took about 15 hours of wall-clock once the model's harness-writing is counted. That gap is itself a cost the equal-fuzz-seconds framing hides — the LLM arm needed roughly 30% more real time to consume the same fuzzing budget. + +Two things had to be fixed before the comparison meant anything, and they are worth naming because both would have produced a confident wrong answer. First, libFuzzer aborts the process on the first crashing input unless you run it in fork mode; our treatment arm didn't, so every "300-second" window was ending after two or three executions with coverage never sampled. The control arm *did* run in fork mode. Any number from that pairing would have measured a libFuzzer flag, not an LLM. Second, our crash-identity hash included line numbers, so one leaking function reached from two of its own call sites counted as two bugs. + +With those fixed: **6 memory-safety bugs for the LLM arm, 5 for the control, one found only by the LLM arm.** The headline overlap is 5 of 6, and on a five-grammar sample that difference alone would be unremarkable. + +![Grouped bar chart: for each of five grammars, the number of repetitions (out of three) in which each arm found the grammar's memory-safety bug. The LLM arm scores 3 of 3 on all five; plain libFuzzer scores 1 of 3 on nushell-nu, gren and foam, and 3 of 3 on typst and sql. A footnote records one further bug in sql found only by the LLM arm.](assets/fig4-ablation.png) + +The replicated effect is **reliability, not capability**. On nushell-nu, gren and foam the LLM arm found the bug in all three reps; the bare fuzzer found it in one of three. These are bugs plain libFuzzer clearly *can* find — it found each of them at least once — but at equal budget it finds them inconsistently. Anyone comparing a single run against a single run here would get a coin flip, which is roughly what our 118-grammar tally in the previous section was measuring. + +The one result that looks like genuine capability is a leak in [tree-sitter-sql](https://github.com/DerekStride/tree-sitter-sql): `scan_dollar_string_tag` calls `add_char` and never frees the tag buffer. The LLM arm found it in 3 reps of 3. The control found it in 0 of 3, across roughly 68,000 executions. Reaching it needs a structurally valid `$tag$...$tag$` dollar-quoted string, which is the kind of thing a model that knows SQL writes into its seeds and random mutation of a generic corpus does not stumble into. That is the mechanism the funded hypothesis predicts, and it is the only instance of it we have. + +Coverage does not tell a clean story. The LLM arm reached more edges on four of five grammars, but the fixed template beat it on nushell-nu in both usable reps (5,111 vs 4,247 mean edges) — and nushell-nu is one of the grammars where the template found the bug least often. Coverage and bug-finding come apart, which is worth remembering before optimising for either. + +We are not going to oversell five grammars. The targets were chosen *because* the earlier survey had already found bugs in them, so this measures re-discovery of known bugs, not discovery of new ones; the sql leak may well be one of the two sql bugs the survey already had. One model, one target class, three reps. What we will say is that this is the first time in the project an LLM in the loop measurably beat the fuzzer without it, and that the margin is a reliability multiplier plus one bug — not a step change. + [^overlap]: "Same bug" is judged by a normalized stack hash — top frames reduced to function + scanner-file:line, with absolute paths, binary load offsets, and tree-sitter runtime line numbers stripped. Our first attempt hashed raw frames and reported a spurious 0/10 overlap: the two sweeps ran under different home directories against different runtime commits, so every hash differed even for provably identical crashes (byte-identical [ASan](https://clang.llvm.org/docs/AddressSanitizer.html) summaries). The 6/10 figure is after that fix. ## Takeaway -"AI-accelerated fuzzers that self-improve their harnesses at runtime" is a natural idea, and we'd guess versions of it get funded more than once. Our experience: on hardened targets the LLM-in-the-loop agent added nothing, because the fuzzer alone had already sufficed years ago; on soft targets we found real bugs without ever needing an LLM in the loop. The niche where LLM *discovery* uplift has to live — targets too hard for vanilla fuzzing but tractable with LLM-guided harnesses — is one we looked for on hard targets and never reached, and never needed on soft ones. We can't rule out that a better agent elicits it; on our evidence, the money is better spent buying CPU for the fuzzer and pointing it at the parsers nobody bothered to fuzz. Where the LLM does earn its keep is everything around the fuzzer: writing the scaffolding, triaging the crashes, and drafting the fixes we're now landing upstream — a different and more defensible claim than the one we set out to test. +"AI-accelerated fuzzers that self-improve their harnesses at runtime" is a natural idea, and we'd guess versions of it get funded more than once. Our experience: on hardened targets the LLM-in-the-loop agent added nothing, because the fuzzer alone had already sufficed years ago; on soft targets we found real bugs without ever needing an LLM in the loop, and then, when we finally ran the controlled version, the LLM arm won by a modest margin. + +The niche where LLM *discovery* uplift has to live — targets too hard for vanilla fuzzing but tractable with LLM-guided harnesses — turns out to exist, and to be narrow. We saw exactly one bug in it. Mostly what the LLM bought was consistency: finding in three runs of three what the bare fuzzer found in one of three. That is worth something if you fuzz a target once and move on, and worth much less if you were going to run the fuzzer three times anyway, which is cheaper than three agent runs. On our evidence the money still mostly goes to CPU for the fuzzer and to pointing it at parsers nobody bothered to fuzz — but "mostly" is doing more work in that sentence than it was before we ran the ablation. + +The clearest lesson is methodological, and it is the one we'd press on anyone else funding this. We spent a round comparing two configurations that we believed differed by an LLM and did not. When we built the real comparison, two implementation details — a missing libFuzzer flag on one arm, and line numbers in a crash hash — were each independently sufficient to produce a confident wrong answer in *either* direction. The effect being measured here is small enough that the measurement apparatus has to be more trustworthy than the effect, and ours initially wasn't. Where the LLM most clearly earns its keep remains everything around the fuzzer: writing the scaffolding, triaging the crashes, and drafting the fixes we're now landing upstream.