
Per-Distro-Mitigationsskripte für CVE-2026-31431 („Copy Fail“) Linux-Kernel-LPE.
Mitigationsskripte pro Distribution für CVE-2026-31431 („Copy Fail") — eine lokale Privilegieneskalation im Linux-Kernel algif_aead, die praktisch jede seit 2017 ausgelieferte Distribution betrifft.
Jedes Skript installiert entweder einen gepatchten Kernel aus den Repos deiner Distribution (sofern verfügbar) oder, falls nicht, blacklistet es das verwundbare Kernelmodul algif_aead, sodass der Exploit-Pfad geschlossen ist, bis du auf einen gefixten Kernel neu starten kannst.
Wähle das Skript für deine Distribution, prüfe es und führe es als root aus.
# Ubuntu
sudo bash scripts/ubuntu.sh
# Debian
sudo bash scripts/debian.sh
# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo bash scripts/rhel.sh
# Fedora
sudo bash scripts/fedora.sh
# Arch
sudo bash scripts/arch.sh
# openSUSE Leap / Tumbleweed
sudo bash scripts/opensuse.sh
# Alpine
sudo bash scripts/alpine.sh
# Alles andere (Gentoo, NixOS, immutable Distributionen, ...)
sudo bash scripts/universal.sh
Verwende zuerst --check, wenn du eine Vorschau möchtest, die nichts verändert.
Skripte pro Distribution führen diesen Algorithmus aus; universal.sh überspringt die Schritte 4–5.
sudo erneut aus, falls nicht bereits root.--force.uname -r auslesen.PATCHED_KERNEL_VERSION für deine Distribution hinterlegt ist und dein laufender Kernel mindestens diese Version hat, entfernt das Skript eine eventuell vorhandene Mitigationsdatei und beendet sich.--yes zum Überspringen), ihn zu installieren. Nach der Installation startest du manuell neu./etc/modprobe.d/cve-2026-31431.conf mit blacklist algif_aead und install algif_aead /bin/true und verifiziert dann über einen AF_ALG-Socket-Bind-Probe, dass der Exploit-Pfad geschlossen ist.PATCHED_KERNEL_VERSION = PENDING bedeutet, dass die Maintainer noch keine gefixte Kernelversion für diese Distribution hinterlegt haben. Jede Zeile wird über einen einzeiligen PR aktualisiert.
| Distribution | Kernel-Paket | Gepatchte Version | Zuletzt geprüft |
|---|---|---|---|
| Ubuntu (24.04) | linux-image-generic | PENDING | 2026-05-01 |
| Debian | linux-image-amd64 | PENDING | 2026-05-01 |
| RHEL / Rocky / Alma | kernel | PENDING | 2026-05-01 |
| Fedora | kernel | PENDING | 2026-05-01 |
| Arch | linux | PENDING | 2026-05-01 |
| openSUSE | kernel-default | PENDING | 2026-05-01 |
| Alpine | linux-lts | PENDING | 2026-05-01 |
| Flag | Bedeutung |
|---|---|
-y, --yes | Nicht-interaktiv; überspringt die Kernel-Installationsabfrage. |
--force | Umgeht die Prüfung auf Distributionsabweichung. |
--check | Nur-Lese-Vorschau; zeigt an, was passieren würde, ändert nichts. |
--undo | Entfernt /etc/modprobe.d/cve-2026-31431.conf. Nach der Installation eines gepatchten Kernels verwenden. |
-h, --help | Nutzungsinformationen. |
Die Skripte führen diesen Probe automatisch aus. Zur eigenen Prüfung:
python3 - <<'PY'
import socket, errno
try:
s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
s.bind(("aead", "authencesn(hmac(sha1),cbc(aes))"))
print("BAD: bind succeeded — host is NOT mitigated")
s.close()
except OSError as e:
print(f"OK: bind blocked, errno={e.errno} ({e.strerror})" if e.errno == errno.ENOENT
else f"INCONCLUSIVE: errno={e.errno}")
PY
Ein mitigierter oder gepatchter Host gibt OK: bind blocked, errno=2 ... aus.
Nachdem deine Distribution einen gefixten Kernel veröffentlicht hat und du darauf neu gestartet bist, entferne die Modprobe-Blacklist, damit Anwendungen, die AF_ALG aead legitim nutzen, wieder funktionieren:
sudo bash scripts/<deine-distribution>.sh --undo
Wenn deine Distribution einen gefixten Kernel veröffentlicht:
scripts/<distro>.sh — setze PATCHED_KERNEL_VERSION auf die gefixte Paketversion (im Format, das dpkg-query -W / rpm -q VERSION-RELEASE / pacman -Q zurückgibt).<distro>: fix shipped in <version>.Sicherheits-Mitigationstooling. Prüfe jedes Skript, das du im Internet findest, bevor du es in sudo bash pipst. Die Maintainer übernehmen unter der MIT-Lizenz keine Haftung.
MIT.