
Automatisierter Scanner und Patch-Helfer für CVE-2026-31431, der verwundbare Linux-Hosts über SSH erkennt, Kernel-Versionen verifiziert und Kernel-Upgrades oder temporäre Abhilfemaßnahmen über mehrere Distributionen hinweg anwendet.
Copy Fail ist ein automatisierter Sicherheitsscanner und Patch-Helfer zur Erkennung und Behebung der Schwachstelle CVE-2026-31431 (Linux-Kernel algif_aead Local Privilege Escalation) in Ihrer Linux-Infrastruktur.
CVE-2026-31431 ist eine Schwachstelle zur lokalen Rechteausweitung (Local Privilege Escalation, LPE) im Linux-Kernel-Modul algif_aead (Asynchronous Cipher Interface for AEAD). Diese Schwachstelle ermöglicht es lokalen Benutzern, eine Rechteausweitung auf Root-Ebene zu erreichen.
Dieses Tool hilft bei:
Hinweis: Dieses Tool dient ausschließlich internen Audit- und Patch-Zwecken durch Systemadministratoren. Verwenden Sie es nur auf Systemen, die Sie besitzen oder für die Sie autorisiert sind.

algif_aead-Moduls (geladen/nicht geladen)Automatisches Kernel-Upgrade auf anfälligen Hosts über den Paketmanager:
Option: Automatischer Neustart nach Abschluss des Patchens
algif_aead-Moduls über die modprobe.d-KonfigurationDatenbank mit bereits gepatchten Kernel-Versionen für:
paramiko>=3.0.0 # SSH-Bibliothek
rich>=13.0.0 # Schöne Terminal-UI
git clone https://github.com/gagaltotal/cve-2026-31431-copy-fail.git
cd cve-2026-31431-copy-fail
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
oder manuell installieren:
pip install paramiko>=3.0.0 rich>=13.0.0
python3 copyfail_scanner.py --help
# Subnetz mit SSH-Key scannen
python3 copyfail_scanner.py --subnet <CIDR> --user <BENUTZERNAME> --key <PFAD_ZUM_KEY>
# Mehrere spezifische Hosts scannen
python3 copyfail_scanner.py --hosts <IP1>,<IP2>,<IP3> --user <BENUTZERNAME> [--password <PASSWORT>]
# Scannen + automatisches Patchen
python3 copyfail_scanner.py --subnet <CIDR> --user <BENUTZERNAME> --key <PFAD> --patch
# Scannen + vorübergehende Maßnahmen
python3 copyfail_scanner.py --subnet <CIDR> --user <BENUTZERNAME> --key <PFAD> --mitigate
| Option | Beschreibung | Beispiel |
|---|---|---|
--subnet | Ziel-Subnetz im CIDR-Format (gegenseitig ausschließend mit --hosts) | --subnet 192.168.1.0/24 |
--hosts | Kommagetrennte IP-Liste (gegenseitig ausschließend mit --subnet) | --hosts 192.168.1.10,192.168.1.20 |
--user | SSH-Benutzername (erforderlich) | --user root |
--password | SSH-Passwort (optional, verwenden Sie es, wenn kein Key vorhanden ist) | --password geheim123 |
--key | Pfad zum SSH-Private-Key | --key ~/.ssh/id_rsa |
--port | SSH-Port (Standard: 22) | --port 2222 |
--threads | Anzahl paralleler Threads (Standard: 30) | --threads 50 |
--patch | Automatisches Kernel-Upgrade auf anfälligen Hosts | --patch |
--reboot | Automatischer Neustart nach dem Patchen (zusammen mit --patch verwenden) | --patch --reboot |
--mitigate | Vorübergehende Maßnahmen anwenden (algif_aead deaktivieren) | --mitigate |
--output | Scan-Ergebnisse als JSON-Datei exportieren | --output ergebnisse.json |
--yes | Bestätigungsabfrage vor Patch/Maßnahmen überspringen | --yes |
python3 copyfail_scanner.py \
--subnet 192.168.1.0/24 \
--user ubuntu \
--key ~/.ssh/id_rsa
Ausgabe: Zeigt die Scan-Ergebnistabelle und Zusammenfassung an
python3 copyfail_scanner.py \
--hosts 10.0.1.5,10.0.1.6,10.0.1.7 \
--user admin \
--password mein_passwort123
python3 copyfail_scanner.py \
--subnet 172.16.0.0/16 \
--user root \
--key ~/.ssh/id_rsa \
--mitigate
Aktion: Scannt alle Hosts und deaktiviert dann das algif_aead-Modul auf anfälligen Hosts (mit Bestätigungsabfrage)
python3 copyfail_scanner.py \
--subnet 192.168.0.0/24 \
--user ubuntu \
--key ~/.ssh/id_rsa \
--patch
Aktion: Führt ein Kernel-Upgrade durch, startet aber nicht automatisch neu (manueller Neustart erforderlich)
python3 copyfail_scanner.py \
--subnet 10.10.0.0/24 \
--user root \
--key ~/.ssh/id_rsa \
--patch \
--reboot \
--yes
Aktion: Scannt, patcht den Kernel, startet automatisch neu und überspringt die Bestätigungsabfrage
python3 copyfail_scanner.py \
--subnet 192.168.1.0/24 \
--user sysadmin \
--key ~/.ssh/id_rsa \
--output scan_ergebnisse_$(date +%Y%m%d_%H%M%S).json
Ausgabe: Tabelle im Terminal + Ergebnisse als JSON-Datei
python3 copyfail_scanner.py \
--subnet 10.0.0.0/25 \
--user ubuntu \
--key ~/.ssh/id_rsa \
--port 2222 \
--threads 50
Beispielausgabe eines Scans:
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┓
┃ IP ┃ Hostname ┃ Distro ┃ Kernel ┃ algif ┃ Status ┃ Aktion ┃ Hinweise ┃
┣━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━┫
┃ 192.168.1.10 ┃ web-01 ┃ Ubuntu 22.04 ┃ 6.8.0-60 ┃ GELADEN ┃ ✓ SICHER ┃ - ┃ Gepatcht┃
┃ 192.168.1.11 ┃ web-02 ┃ Ubuntu 20.04 ┃ 5.4.0-200 ┃ NICHT_G ┃ ✗ ANFÄL ┃ Gepatcht┃ - ┃
┃ 192.168.1.12 ┃ db-01 ┃ RHEL 8.9 ┃ 5.14.0-560 ┃ GELADEN ┃ ? UNBEK ┃ - ┃ Distro ┃
┗━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┛
Zusammenfassung:
Gesamtzahl gescannter Hosts: 12
Zugänglich (SSH): 11
Offline: 1
ANFÄLLIG: 2
Bereits gepatcht: 8
Status unbekannt: 1
hostname -funame -r){
"cve": "CVE-2026-31431",
"scan_time": "2026-05-08T15:30:45.123456",
"results": [
{
"ip": "192.168.1.10",
"ssh_reachable": true,
"auth_ok": true,
"hostname": "web-01",
"distro": "Ubuntu 22.04 LTS",
"os_id": "ubuntu",
"kernel_version": "6.8.0-60-generic",
"algif_loaded": true,
"modprobe_blocked": false,
"patched": true,
"patch_applied": false,
"mitigation_applied": false,
"retry_count": 0,
"error": ""
}
]
}
Der Scanner unterstützt die automatische Erkennung der folgenden Distributionen:
| Distro | Paketmanager | Gepatchte Kernel-Versionen | Hinweise |
|---|---|---|---|
| Ubuntu | apt | 6.8.0-60, 5.15.0-130, 5.4.0-216 | LTS & aktuell |
| Debian | apt | 6.1.137, 5.10.235 | Stabile Versionen |
| RHEL | dnf/yum | 5.14.0-570 | Inklusive CentOS Stream |
| AlmaLinux | dnf | 5.14.0-570 | Drop-in-RHEL-Ersatz |
| Rocky | dnf | 5.14.0-570 | Unternehmensorientiert |
| Fedora | dnf | 6.14.4, 6.13.12, 6.12.25 | Modernste Technologie |
| Amazon Linux | dnf | 6.1.134, 5.10.235, 4.14.353 | AWS-Kompatibilität |
| SUSE / openSUSE | zypper | 6.4.0-18, 5.14.21-150600.24 | Enterprise & Community |
| Arch Linux | pacman | 6.14.4 | Neueste Versionen |
Für nicht erkannte Distributionen: Überprüfen Sie die Kernel-Version manuell. Kernel >= 6.14.4 sind in der Regel bereits sicher.
Wenn Sie manuell patchen möchten oder das automatische Patchen fehlgeschlagen ist, befolgen Sie die Anleitung pro Distribution:
sudo apt update
sudo apt upgrade linux-image-generic kmod
sudo reboot
sudo dnf clean metadata
sudo dnf upgrade kernel
sudo reboot
sudo dnf upgrade kernel
sudo reboot
sudo dnf upgrade kernel
sudo reboot
sudo zypper update kernel-default
sudo reboot
sudo pacman -Syu linux linux-headers
sudo reboot
Wenn Sie nicht sofort für ein Kernel-Upgrade neu starten können, wenden Sie vorübergehende Maßnahmen an:
# algif_aead-Modul über modprobe.d deaktivieren
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif_aead.conf
# Modul entladen, falls bereits geladen
sudo rmmod algif_aead 2>/dev/null || echo "Modul nicht geladen"
WICHTIG:
CONFIG_CRYPTO_USER_API_AEAD=y ist das Modul fest im Kernel eingebaut, daher ist modprobe.d wirkungslos → Kernel-Upgrade ist die einzige LösungFehler: SSH-Port nicht geöffnet
Lösung:
nc -zv <IP> 22--port, wenn SSH auf einem benutzerdefinierten Port läuftFehler: SSH-Authentifizierung fehlgeschlagen
Lösung:
chmod 600 ~/.ssh/id_rsassh -i ~/.ssh/id_rsa benutzer@host--password, wenn Sie die Passwort-Authentifizierung bevorzugenExit-Code 1: dpkg: Fehler bei der Verarbeitung...
Lösung:
sudo visudoapt/dnf/yum ohne Passwortabfrage ausführen könnenWiederholung: 3x | Host vorübergehend nicht verfügbar
Lösung:
--threads 10Status: ? UNBEKANNT
Lösung:
uname -r und mit dem Advisory vergleichenExit-Code 1: Fehler beim Sperren der apt-Datenbank
Lösung:
sudo tail -f /var/log/apt/term.logNur für interne Verwendung — Dieses Tool dient ausschließlich Audit- und Patch-Management-Zwecken durch autorisierte Systemadministratoren.
HAFTUNGSAUSSCHLUSS:
- Verwenden Sie es nur auf Systemen, die Sie besitzen oder für die Sie ausdrücklich autorisiert sind
- Automatisches Patchen und Neustarts können Ausfallzeiten verursachen
- Testen Sie in einer Staging-Umgebung vor dem Produktionseinsatz
- Stellen Sie sicher, dass vor dem Patchen Backups verfügbar sind
- Der Entwickler haftet nicht für Datenverlust oder Dienstunterbrechungen
Autor: GagalTotal
Repository: https://github.com/gagaltotal/cve-2026-31431-copy-fail
Kontakt: ghostgtr666
Für Fehlerberichte, Funktionsanfragen oder Fragen:
Zuletzt aktualisiert: 8. Mai 2026
Scanner-Version: 1.0