eBPF Exploitation — Abus du sous-système eBPF

Kernel Avancé

Contexte

eBPF exécute du bytecode fourni par l'espace utilisateur dans le noyau, après vérification par le verifier. Des bugs dans ce vérificateur (mauvais suivi des bornes, confusion de types) ont permis des élévations de privilèges puissantes (lecture/écriture kernel arbitraire).

Vecteur

# Le verifier doit prouver que chaque accès mémoire est sûr.
# Un bug de suivi de bornes (ex: mauvais calcul ALU) permet
# de tromper le verifier -> OOB read/write dans le kernel
# -> primitive arbitraire -> commit_creds(prepare_kernel_cred(0))

# CVE notables : CVE-2021-3490 (ALU bounds), CVE-2022-23222

Surface & durcissement

Très étudié car offre des primitives propres. Durcissement : kernel.unprivileged_bpf_disabled=1 (désactive eBPF non privilégié), durcissement constant du verifier, et CONFIG_BPF_JIT_ALWAYS_ON. Restreindre eBPF aux usages root est la mitigation principale.