
Prüft, ob ein Linux-System von CVE-2026-99999 (PwnEscape) betroffen ist, und gibt die distributionsspezifische Kernel-Korrektur aus oder wendet sie an
Englisch | 한국어
Ein einzelnes Shell-Skript, das prüft, ob ein Linux-System von CVE-2026-99999 („PwnEscape") betroffen ist. Es erläutert das Ergebnis und gibt dann entweder die Patch-Schritte für die jeweilige Distribution aus oder patcht und startet das System für Sie neu.
Die im Skript eingebetteten Herstellerdaten sind aktuell mit Stand 2026-10-20. Sicherheitshinweise ändern sich schnell, daher sollten Sie stets den Security-Tracker Ihrer Distribution zur Bestätigung heranziehen.
| Komponente | IPv4-Stack des Linux-Kernels (skb_checksum_help → ip_do_fragment) |
| Ursache | checksum_start / csum_offset, die über den virtio-net-Header oder Packet Sockets übergeben werden, werden nicht gegen den IPv4-Header validiert. Das Vervollständigen der Prüfsumme kann dann die bereits validierte Header-Länge überschreiben (CWE-20). |
| Auswirkung | Gast-VM → Host: Offenlegung des Host-Speichers, Absturz des Hosts, Codeausführung als root auf dem Host |
| Schweregrad | CVSS 3.1 9.3 Kritisch (Kernel-CNA) · 8.8 Wichtig (Red Hat) |
| Betroffen | Jeder Kernel seit 2.6.27 |
| Behebung | Upstream-Commit 6785011f8b16 „ipv4: validate checksum_start before completing checksum" |
| Workaround | Keine veröffentlicht. Die einzige Behebung besteht darin, einen gepatchten Kernel zu booten. |
Das Hauptrisiko betrifft Virtualisierungs-Hosts, die nicht vertrauenswürdige Gäste ausführen (KVM/QEMU, Firecracker, Proxmox, Cloud- und VPS-Hosts). Das Patchen des Gast-Kernels schützt den Host nicht.
| Datei | Beschreibung |
|---|---|
scanner-cve-2026-99999.sh | Der Scanner, englische Ausgabe |
scanner-cve-2026-99999_kr.sh | Derselbe Scanner, koreanische Ausgabe |
Beide Dateien enthalten dieselbe Logik; nur die Meldungen und Kommentare unterscheiden sich.
| Datei | SHA-256 | MD5 |
|---|---|---|
scanner-cve-2026-99999.sh | 65c3c226487d5bd80d436c06cc5256304cfa17011be82d8404c54355998801a6 | 8ab38c22ed737986775f6f64f5a800aa |
scanner-cve-2026-99999_kr.sh | 05d4af248ab2cab26566c81067ed35dd0a8c966f7fa8459867597c56ac43a805 | 6223f8db3c1a8dec361fe301a7193ff4 |
Überprüfen Sie die Datei, bevor Sie sie ausführen:
echo "65c3c226487d5bd80d436c06cc5256304cfa17011be82d8404c54355998801a6 scanner-cve-2026-99999.sh" | sha256sum -c
echo "8ab38c22ed737986775f6f64f5a800aa scanner-cve-2026-99999.sh" | md5sum -c
Diese Werte gelten für die Dateien im v1.0.0-Release. Dateien in späteren Commits können abweichen.
Aus dem Release (empfohlen):
curl -LO https://github.com/sqzer-x/cve-2026-99999-scanner/releases/download/v1.0.0/scanner-cve-2026-99999.sh
echo "65c3c226487d5bd80d436c06cc5256304cfa17011be82d8404c54355998801a6 scanner-cve-2026-99999.sh" | sha256sum -c
sudo bash scanner-cve-2026-99999.sh
Oder aus dem Repository:
git clone https://github.com/sqzer-x/cve-2026-99999-scanner.git
cd cve-2026-99999-scanner
sudo bash scanner-cve-2026-99999.sh
Führe es auf dem Host aus, nicht in einem Container. Die Prüfung funktioniert als normaler Benutzer; root (über sudo) wird nur für Menüoption 1 benötigt.
Erkennt die Distribution (/etc/os-release) und den laufenden Kernel (/proc).
Bewertet den Kernel:
Prüft auf ein angewendetes Livepatch (kpatch, Canonical Livepatch, SUSE kernel-livepatch, Ksplice), einen korrigierten Kernel, der installiert, aber noch nicht gebootet ist, und ob der Kernel für den nächsten Start korrigiert ist.
Meldet Expositionsindikatoren: /dev/kvm, vhost_net, TUN/TAP-Geräte, VM-Prozesse (QEMU, Firecracker, Proxmox kvm, ...), Einstellungen für User-Namespaces.
Wenn das System nicht sicher ist, wird ein Menü angeboten:
1. Patch now (install the fixed kernel and reboot)
2. Patch manually later (show the commands)
3. Exit
Wenn nicht von einem Terminal aus gestartet (cron, Pipes, Ausgabe in eine Datei umgeleitet), wird kein Menü angezeigt und es verhält sich wie Option 2.
| Option | Beschreibung |
|---|---|
-l, --list | Nur die Status-Tabelle pro Distribution ausgeben |
--no-color | Farbige Ausgabe deaktivieren (NO_COLOR wird ebenfalls berücksichtigt) |
--os-release FILE | Diese os-release-Datei anstelle von /etc/os-release verwenden |
--uname-r STRING | Diesen Kernel-Release anstelle des laufenden beurteilen (überspringt lokale Prüfungen) |
--uname-v STRING | Kernel-Build-String (uname -v), erforderlich für Debian-Kernel mit --uname-r |
-h, --help | Hilfe anzeigen |
| Code | Bedeutung |
|---|---|
| 0 | Sicher (behoben, nicht betroffen oder livegepatcht) |
| 1 | Anfällig — ein behobener Kernel ist verfügbar |
| 2 | Behobener Kernel installiert — Neustart erforderlich |
| 3 | Anfällig — noch kein Hersteller-Fix oder End of Life |
| 4 | Unbestimmt (unbekannter Kernel, Ausführung in einem Container, ...) |
Die Exit-Codes machen es nutzbar aus Konfigurationsmanagement oder Monitoring:
bash scanner-cve-2026-99999.sh --no-color > report.txt; echo "exit code: $?"
Das Urteil kann für Werte berechnet werden, die an anderer Stelle gesammelt wurden, zum Beispiel aus einem Container oder einem Inventar:
# On the target: uname -r ; uname -v ; cat /etc/os-release > os-release.txt
bash scanner-cve-2026-99999.sh --uname-r 5.14.0-570.12.1.el9_6.x86_64 --os-release os-release.txt
bash scanner-cve-2026-99999.sh --uname-r 6.1.0-38-amd64 \
--uname-v '#1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1 (2026-08-02)' --os-release os-release.txt
bash scanner-cve-2026-99999.sh --list gibt dieselbe Tabelle aus.