eBPF Verifier Repair

Repara rechazos del verificador eBPF a partir del log de carga detallado en bruto, primero la prueba

Por eunomia-bpf · eunomia-bpf/bpfix

Probado · Funciona ★ 9.2/10

eBPF Verifier Repair — Repara rechazos del verificador eBPF a partir del log de carga detallado en bruto, primero la prueba

Qué hace

Un flujo de trabajo de reparación para programas eBPF que el verificador del kernel se niega a cargar: lee el log detallado del verificador, mapea la instrucción rechazada de vuelta al valor que perdió la prueba requerida, y realiza el cambio de fuente más pequeño que lo restaura sin alterar la semántica del programa. Cubre límites de paquetes, punteros nulos, pila no inicializada, tiempo de vida de referencias, rango escalar y procedencia de punteros en libbpf C, Rust/Aya, libbpf-rs y BCC. Se activa en errores del verificador, fallos de carga -EACCES, diagnósticos BPFix y logs de carga de CI.

Informe de la prueba

Probado contra el 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. El bundled extract_verifier_failure.py también ran clean on a real 3.2KB log, slicing the libbpf preamble down to the actual PROG LOAD region. El bpfix binary itself es optional y never needed for this path, but the clone pulls about 200MB.

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

Instalación

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

Comandos y prompts de ejemplo

  • /ebpf-verifier-repairRepara rechazos del verificador eBPF a partir del log de carga detallado en bruto, primero la prueba

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • 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