
Ein Linux-Dienstprogramm, das die Verfügbarkeit von `AF_ALG`/`algif_aead` prüft und bei der Bewertung des Risikos im Zusammenhang mit `CVE-2026-31431` hilft.
Diagnose-Dienstprogramm für Linux, das Folgendes prüft:
AF_ALG / algif_aead und hilft, das Risiko für CVE-2026-31431 (Copy-Fail) einzuschätzen;xfrm-ESP Page-Cache Write + RxRPC Page-Cache Write) anhand der Komponenten esp4, esp6, rxrpc und gibt Mitigationsempfehlungen aus.Das Tool ist für defensive Prüfungen gedacht und ist kein Exploit.
socket + bind für AF_ALG AEAD durch;/proc/modules, modules.builtin, modules.builtin.modinfo;rpm/Debian-Changelog) zu erkennen;AF_ALG-Sockets halten (/proc/*/fd, Best Effort);Zusätzlich für Dirty Frag:
esp4, esp6, rxrpc (geladen / eingebaut / unbekannt);socket(AF_NETLINK, NETLINK_XFRM) und socket(AF_RXRPC) durch, ohne die Systemkonfiguration zu ändern;1.24+;/proc/*/fd ist es besser, als root zu starten.Der Einstiegspunkt befindet sich im Projektstamm, der Build wird aus dem Stammverzeichnis ausgeführt:
go build -o itsumma-afalg-check .
./itsumma-afalg-check
Beim Start:
Itsumma Security Check — AF_ALG / CVE-2026-31431
Danach:
AF_ALG (socket + bind);modules.builtin;af_alg und algif_aead (geladen / eingebaut / unbekannt);CVE-2026-31431 (einschließlich Versuch, den Vendor-Backport zu erkennen);AF_ALG-Sockets (falls gefunden);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
Für das eingebaute Szenario ist es zusätzlich zu modprobe/lsmod sinnvoll, Folgendes zu prüfen:
dmesg | grep -i 'algif_aead\|initcall_blacklist'
Befehl aus dem öffentlichen Dirty-Frag-Runbook (deaktiviert das Laden von esp4, esp6, rxrpc und versucht, bereits geladene Module zu entladen).
Wenn IPSec / XFRM verwendet wird (z. B. über strongSwan), wird empfohlen, vor dem Entladen der Module einen Flush durchzuführen:
sudo ip xfrm state flush
sudo ip xfrm policy flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
Wenn esp4/esp6/rxrpc als eingebaut (built-in) kompiliert sind (nur in modules.builtin sichtbar), werden modprobe blacklist und rmmod sie nicht deaktivieren: In diesem Fall ist ein Kernel-Update/-Rebuild erforderlich.
Für strongSwan aktivieren Sie nach der Installation von libcharon-extra-plugins 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"
Nachprüfung:
modprobe -n -v esp4 esp6 rxrpc
lsmod | egrep '^(esp4|esp6|rxrpc)\b' || echo 'esp4/esp6/rxrpc not loaded'
./itsumma-afalg-check
algif_aead bedeutet eine Angriffsfläche, aber die endgültige Schlussfolgerung hängt von der Kernel-Version und den Backport-Patches der Distribution ab.AF_ALG AEAD nicht erfolgreich ist, gilt der Vektor im Rahmen dieser Prüfung als nicht verfügbar.