eBPF Verifier Repair

Naprawia odrzucenia weryfikatora eBPF z surowego, szczegółowego logu ładowania, najpierw dowód

Autor: eunomia-bpf · eunomia-bpf/bpfix

Testowano · Działa ★ 9.2/10

eBPF Verifier Repair — Naprawia odrzucenia weryfikatora eBPF z surowego, szczegółowego logu ładowania, najpierw dowód

Co robi ten skill

Przepływ pracy naprawczego dla programów eBPF, których weryfikator jądra odmawia załadowania: odczytuje szczegółowy log weryfikatora, mapuje odrzuconą instrukcję z powrotem do wartości, która utraciła wymagany dowód, i wprowadza najmniejszą zmianę w kodzie źródłowym, która ją przywraca bez zmiany semantyki programu. Obejmuje packet bounds, nullable pointers, uninitialized stack, reference lifetime, scalar range i pointer provenance w libbpf C, Rust/Aya, libbpf-rs i BCC. Uruchamia się na verifier errors, -EACCES load failures, BPFix diagnostics i CI load logs.

Raport z testu

Testowano na własnym przypadku benchmarkowym repozytorium packet_checked_wrong_base_001, odczytując tylko błędny kod źródłowy i log weryfikatora. Bez umiejętności oczywistą naprawą jest poszerzenie strażnika z data+14 do data+15, co wycisza błąd i zachowuje błędny odczyt nagłówka; README przypadku wskazuje to jako błędną odpowiedź, a dołączony test nie przeszedłby kontroli ramki 14-bajtowej. Postępowanie zgodnie z zasadami raw-log-triage i Bounds umiejętności wygenerowało plik fixed.bpf.c maintainera niemal dosłownie — typowana baza ethhdr, strażnik na tym samym wskaźniku, który jest później używany — i przeszło wszystkie trzy predykaty źródłowe wyroczni benchmarkowej, które wersja bazowa nie przeszła 0 na 3. Dołączony extract_verifier_failure.py również działał czysto na prawdziwym logu 3.2KB, tnąc preambułę libbpf do rzeczywistego regionu PROG LOAD. Sam binarny bpfix jest opcjonalny i nigdy nie jest potrzebny dla tej ścieżki, ale klonowanie pobiera około 200MB.

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

Instalacja

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

Komendy i przykładowe prompty

  • /ebpf-verifier-repairNaprawia odrzucenia weryfikatora eBPF z surowego, szczegółowego logu ładowania, najpierw dowód

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • 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