eBPF Verifier Repair

Reparerer eBPF-verifiseringsavvisninger fra den rå verbose lasteloggen, bevis-først

av eunomia-bpf · eunomia-bpf/bpfix

Bestått ★ 9.2/10

eBPF Verifier Repair — Reparerer eBPF-verifiseringsavvisninger fra den rå verbose lasteloggen, bevis-først

Hva den gjør

En reparasjonsarbeidsflyt for eBPF-programmer som kjerne-verifisereren nekter å laste: den leser den verbose verifiseringsloggen, mapper den avviste instruksjonen tilbake til verdien som mistet det nødvendige beviset, og gjør den minste kildeendringen som gjenoppretter den uten å endre programsemantikken. Dekker pakke-grenser, nullable pekere, uinitialisert stakk, referanselevetid, skalær rekkevidde og pekerproveniens på tvers av `libbpf C`, `Rust/Aya`, `libbpf-rs` og `BCC`. Utløses ved verifiseringsfeil, `-EACCES` lastfeil, `BPFix`-diagnostikk og CI-lastlogger.

Testrapport

Testet mot repoets egen benchmark-sak `packet_checked_wrong_base_001`, og leste kun den feilaktige kilden og verifiseringsloggen. Uten ferdigheten er den åpenbare reparasjonen å utvide vakten fra `data+14` til `data+15`, noe som stilner feilen og beholder feil-header-lesingen; saken README kaller det ut som feil svar, og den medfølgende testen ville mislyktes i sin 14-byte-rammesjekk. Å følge ferdighetens rå-logg-triage og Bounds-regler produserte vedlikeholderens `fixed.bpf.c` nesten ordrett – typet ethhdr-base, vakt på samme peker som senere brukes – og besto alle tre av bench-oraklets kilde-predikater som grunnlinjen mislyktes 0-for-3. Den medfølgende `extract_verifier_failure.py` kjørte også rent på en ekte 3.2KB logg, og kuttet `libbpf`-innledningen ned til den faktiske `PROG LOAD`-regionen. `bpfix`-binæren selv er valgfri og aldri nødvendig for denne stien, men klonen trekker ned ca. 200MB.

Testet på: 2026-07-30 · Claude Code 2.x (agent harness)

Installer

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

Kommandoer og eksempelprompter

  • /ebpf-verifier-repairReparerer eBPF-verifiseringsavvisninger fra den rå verbose lasteloggen, bevis-først

Skills utløses av vanlige forespørsler — ingen kommandoer å huske. Etter installasjonen aktiverer prompter som disse skillen (på engelsk):

  • 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