eBPF Verifier Repair
Opravuje odmítnutí verifikátoru eBPF z nezpracovaného podrobného protokolu načítání, nejprve důkaz
Otestováno · Funguje
Co umí
Pracovní postup opravy pro programy eBPF, které verifikátor jádra odmítá načíst: čte podrobný protokol verifikátoru, mapuje odmítnutou instrukci zpět na hodnotu, která ztratila požadovaný důkaz, a provede nejmenší změnu ve zdrojovém kódu, která ji obnoví bez změny sémantiky programu. Pokrývá packet bounds, nullable pointers, uninitialized stack, reference lifetime, scalar range and pointer provenance across libbpf C, Rust/Aya, libbpf-rs and BCC. Spouští se na verifier errors, -EACCES load failures, BPFix diagnostics and CI load logs.
Testovací report
Testováno proti repo's own benchmark case packet_checked_wrong_base_001, reading only the buggy source and the verifier log. Without the skill the obvious repair is to widen the guard from data+14 to data+15, which silences the error and keeps the wrong-header read; the case README calls that out as the wrong answer and the bundled test would fail its 14-byte-frame check. Following the skill's raw-log-triage and Bounds rules produced the maintainer's fixed.bpf.c almost verbatim - typed ethhdr base, guard on the same pointer that is later used - and passed all three of the bench oracle's source predicates that the baseline failed 0-for-3. The bundled extract_verifier_failure.py also ran clean on a real 3.2KB log, slicing the libbpf preamble down to the actual PROG LOAD region. The bpfix binary itself is optional and never needed for this path, but the clone pulls about 200MB.
Testováno: 2026-07-30 · Claude Code 2.x (agent harness)
Instalace
git clone --depth 1 https://github.com/eunomia-bpf/bpfix.git mkdir -p ~/.claude/skills cd bpfix && cp -r skills/ebpf-verifier-repair ~/.claude/skills/ebpf-verifier-repair
Příkazy a ukázkové prompty
/ebpf-verifier-repairOpravuje odmítnutí verifikátoru eBPF z nezpracovaného podrobného protokolu načítání, nejprve důkaz
Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):
My XDP program won't load, verifier says R1 offset is outside of the packetlibbpf gives -EACCES on prog load, here's the verbose verifier log, fix itAya program rejected with "Unreleased reference id=2", help me repair it