
Kein-Neustart-Mitigationsskript für den Copy-Fail-Kernel-Bug (CVE-2026-31431). Deaktiviert das verwundbare algif_aead-Modul und entfernt den Seitencache für setuid-Binärdateien.
Minimaler Hilfshelfer zur Schadensbegrenzung ohne Neustart für Copy Fail / CVE-2026-31431.
Dieses Skript deaktiviert den anfälligen algif_aead-Modulpfad und versucht,
das Modul sofort zu entladen. Es führt außerdem eine Best-Effort-Auslagerung des Page-Cache
für /usr/bin/su durch.
Dies ist eine Schadensbegrenzung, kein Kernel-Fix. Installieren Sie den gepatchten Kernel Ihres Anbieters, sobald er verfügbar ist.
Das Skript führt die vom öffentlichen Copy-Fail-Advisory empfohlene Schadensbegrenzung aus:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
Dies verhindert, dass algif_aead über modprobe erneut geladen wird, und entlädt es,
wenn möglich, aus dem laufenden Kernel.
Anschließend führt es ein kleines Python-Snippet aus, das posix_fadvise() mit
POSIX_FADV_DONTNEED für die erste Seite von /usr/bin/su aufruft:
os.posix_fadvise(fd, 0, page, os.POSIX_FADV_DONTNEED)
Dies ist ein Best-Effort-Versuch, die relevante Seite aus dem Page-Cache zu entfernen. Es ersetzt keinen Patch und garantiert nicht die Bereinigung jedes möglichen gezielten setuid-Binärprogramms.
/usr/bin/su?Der öffentliche Copy-Fail-Proof-of-Concept zielt standardmäßig auf /usr/bin/su ab. Dieses
Skript versucht daher, die erste Seite von /usr/bin/su aus dem Page-Cache zu entfernen,
nachdem der anfällige Modulpfad deaktiviert wurde.
Wenn Ihre Umgebung getestete oder vermutete Ausnutzung gegen ein anderes setuid-Binärprogramm aufweist, überprüfen und passen Sie das Skript entsprechend an.
Überprüfen Sie zuerst das Skript.
sudo ./mitigate-copy-fail.sh
Stellen Sie sicher, dass das Modul nicht geladen ist:
lsmod | grep '^algif_aead' || echo "algif_aead is not loaded"
Stellen Sie sicher, dass die modprobe-Regel existiert:
cat /etc/modprobe.d/disable-algif.conf
Erwartete Ausgabe:
install algif_aead /bin/false
Versuchen Sie, das Modul manuell zu laden:
sudo modprobe algif_aead
Es sollte fehlschlagen oder sich weigern zu laden.
Machen Sie dies erst rückgängig, nachdem Sie einen korrigierten Kernel installiert oder das Risiko akzeptiert haben.
sudo rm -f /etc/modprobe.d/disable-algif.conf
sudo modprobe algif_aead
Dieses Skript:
Für nicht vertrauenswürdige Workloads wie Container, Sandboxes, CI-Runner und Multi-User-
Hosts sollten Sie zusätzliche Härtung in Betracht ziehen, z. B. das Blockieren der Erstellung von AF_ALG-Sockets
mit seccomp.