eBPF Verifier Repair

Repareert eBPF-verifier-afwijzingen uit de ruwe verbose load log, proof-first

Door eunomia-bpf · eunomia-bpf/bpfix

Getest · Werkt ★ 9.2/10

eBPF Verifier Repair — Repareert eBPF-verifier-afwijzingen uit de ruwe verbose load log, proof-first

Wat het doet

Een reparatieworkflow voor eBPF-programma's die de kernel-verifier weigert te laden: het leest de verbose verifier log, koppelt de afgewezen instructie terug aan de waarde die het vereiste bewijs verloor, en maakt de kleinste bronwijziging die het herstelt zonder de programmasemantiek te wijzigen. Behandelt pakketgrenzen, nullable pointers, ongeïnitialiseerde stack, referentielevensduur, scalaire bereik en pointer provenance over libbpf C, Rust/Aya, libbpf-rs en BCC. Activeert bij verifier-fouten, -EACCES laadfouten, BPFix-diagnostiek en CI load logs.

Testrapport

Getest tegen de repo's eigen benchmarkcase packet_checked_wrong_base_001, waarbij alleen de buggy bron en de verifier log werden gelezen. Zonder de skill is de voor de hand liggende reparatie om de guard te verbreden van data+14 naar data+15, wat de fout stilzet en de verkeerde header-lees behoudt; de README van de case noemt dat het verkeerde antwoord en de gebundelde test zou falen op de 14-byte-frame controle. Het volgen van de raw-log-triage en Bounds-regels van de skill produceerde de maintainer's fixed.bpf.c bijna woordelijk - getypte ethhdr base, guard op dezelfde pointer die later wordt gebruikt - en slaagde voor alle drie de bronpredicaten van de bench oracle waar de baseline 0-uit-3 faalde. De gebundelde extract_verifier_failure.py draaide ook schoon op een echte 3.2KB log, waarbij de libbpf-preamble werd teruggebracht tot de daadwerkelijke PROG LOAD-regio. De bpfix-binary zelf is optioneel en nooit nodig voor dit pad, maar de kloon trekt ongeveer 200MB.

Getest op: 2026-07-30 · Claude Code 2.x (agent harness)

Installatie

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

Commando's en voorbeeldprompts

  • /ebpf-verifier-repairRepareert eBPF-verifier-afwijzingen uit de ruwe verbose load log, proof-first

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • My XDP program won't load, verifier says R1 offset is outside of the packet
  • libbpf gives -EACCES on prog load, here's the verbose verifier log, fix it
  • Aya program rejected with "Unreleased reference id=2", help me repair it