
Utilitaire Linux qui vérifie la disponibilité de `AF_ALG`/`algif_aead` et aide à évaluer le risque lié à `CVE-2026-31431`.
Utilitaire de diagnostic pour Linux qui vérifie :
AF_ALG / algif_aead et aide à évaluer le risque lié à CVE-2026-31431 (copy-fail) ;xfrm-ESP Page-Cache Write + RxRPC Page-Cache Write) via les composants esp4, esp6, rxrpc et affiche la mitigation.L'outil est destiné à une vérification défensive et n'est pas un exploit.
socket + bindAF_ALG AEAD/proc/modules, modules.builtin, modules.builtin.modinfo ;rpm/changelog Debian) ;AF_ALG (/proc/*/fd, best effort) ;En complément pour Dirty Frag :
esp4, esp6, rxrpc (loaded / built-in / unknown) ;socket(AF_NETLINK, NETLINK_XFRM) et socket(AF_RXRPC) sans modifier la configuration du système ;1.24+ ;/proc/*/fd, il est préférable de lancer l'outil en root.L'entrypoint se trouve à la racine du projet, la compilation s'effectue depuis la racine :
go build -o itsumma-afalg-check .
./itsumma-afalg-check
Au démarrage :
Itsumma Security Check — AF_ALG / CVE-2026-31431
Ensuite :
AF_ALG (socket + bind) ;modules.builtin ;af_alg et algif_aead (loaded / built-in / unknown) ;CVE-2026-31431 (y compris la tentative de détection du backport vendor) ;AF_ALG (si trouvés) ;cat /proc/cmdline
echo 3 | sudo tee /proc/sys/vm/drop_caches
modprobe -n -v algif_aead
lsmod | grep '^algif_aead\b' || echo 'algif_aead not loaded'
./itsumma-afalg-check
Pour le scénario built-in, au lieu de modprobe/lsmod, il est utile de vérifier en complément :
dmesg | grep -i 'algif_aead\|initcall_blacklist'
Commande issue du runbook public Dirty Frag (désactive le chargement de esp4, esp6, rxrpc et tente de décharger les modules déjà chargés).
Si IPSec / XFRM est utilisé (par exemple via strongSwan), il est recommandé d'effectuer un flush avant de décharger les modules :
sudo ip xfrm state flush
sudo ip xfrm policy flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
Si esp4/esp6/rxrpc sont compilés en built-in (visibles uniquement dans modules.builtin), modprobe blacklist et rmmod ne les désactiveront pas : dans ce cas, une mise à jour/une recompilation du noyau est nécessaire.
Pour strongSwan, après l'installation de libcharon-extra-plugins, activez kernel-libipsec :
sudo sed -i 's/^\s*load\s*=\s*no/load = yes/' /etc/strongswan.d/charon/kernel-libipsec.conf
sudo systemctl restart strongswan || sudo systemctl restart strongswan-starter
lsmod | egrep '^(esp4|esp6|rxrpc)\b' || echo 'esp4/esp6/rxrpc not loaded'
sudo modprobe esp4 esp6 rxrpc || true
sudo modprobe -r esp6 rxrpc
sudo modprobe -r esp4 || true
sudo rmmod -f esp4
sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp6 rxrpc 2>/dev/null; rmmod -f esp4 2>/dev/null; true"
Post-vérification :
modprobe -n -v esp4 esp6 rxrpc
lsmod | egrep '^(esp4|esp6|rxrpc)\b' || echo 'esp4/esp6/rxrpc not loaded'
./itsumma-afalg-check
algif_aead signifie une surface d'attaque, mais la conclusion finale dépend de la version du noyau et des patchs backport de la distribution.AF_ALG AEAD échoue, le vecteur est considéré comme indisponible dans le cadre de cette vérification.