Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/vasyapokemon/cve-2026-31431
Privilege EscalationSchwachstellenanalyseExploitationMalware-AnalyseDigitale ForensikEinbruchserkennungPapers & ForschungLernen & BildungIncident ResponseKuratierte RessourcenLabs & Praxis
24vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
vasyapokemon/cve-2026-31431

cve-2026-31431

Forschungs- und Erkennungs-Toolkit für Linux-Kernel-LPE CVE-2026-31431, einschließlich Exploit-Analyse, YARA-Regeln, auditd/Falco-Erkennung, Patch-Anleitung und Laborumgebung.

Repository anzeigen

CVE-2026-31431 — „Copy Fail“: Lokale Rechteausweitung im Linux-Kernel algif_aead

CISA KEV | CVSS 7.8 HOCH | Betrifft Linux-Kernel 4.14 – Anfang 2026 (~9 Jahre)


Inhaltsverzeichnis

  1. Executive Summary
  2. Risikobewertung
  3. Technische Tiefenanalyse
  4. Angriffsmethodik — Red Team
  5. Erkennung & Incident Response — Blue Team
  6. Patchen & Behebung
  7. Laborumgebung
  8. Referenzen

1. Executive Summary

CVE-2026-31431, mit dem Spitznamen „Copy Fail“, ist eine Schwachstelle mit hohem Schweregrad zur lokalen Rechteausweitung (LPE) im kryptografischen Subsystem des Linux-Kernels. Ein lokaler Benutzer mit niedrigen Privilegien kann auf jedem ungepatchten System in Sekunden Root-Rechte erlangen.

AttributWert
CVECVE-2026-31431
SpitznameCopy Fail
CVSS v3.17.8 HOCH
AngriffsvektorLokal
Erforderliche PrivilegienNiedrig
BenutzerinteraktionKeine
Komponentecrypto/algif_aead.c — authencesn-Vorlage
Eingeführt2017 (Commit 72548b093ee3)
Offengelegt2026
Jahre unentdeckt~9 Jahre
CISA KEVJa
Öffentlicher PoCJa (732-Byte eigenständiges Python-Skript)

Geschäftliche Auswirkungen

  • Root-Zugriff auf jedem ungepatchten Linux-Server, jeder VM, Cloud-Instanz oder jedem Container-Host
  • Container-Escape aus Kubernetes-Pods — der Page Cache wird mit dem Host-Kernel geteilt
  • Keine Spuren auf dem Datenträger — die Ausnutzung hinterlässt keine Dateiänderungen, keine Dirty Pages, keine Audit-Trails über Standard-Tools zur Dateiintegritätsprüfung (Tripwire, AIDE)
  • Betrifft Red Hat, Ubuntu, Debian, SUSE, Amazon Linux sowie praktisch alle großen Distributionen, die Kernel ab 2017 ausführen

Empfohlene Sofortmaßnahme

  1. Temporäre Abschwächung (sofort bereitstellen, kein Neustart erforderlich, wenn das Modul nicht geladen ist): ```bash echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf sudo rmmod algif_aead 2>/dev/null || true
  2. Dauerhafte Behebung: Aktualisieren Sie die Kernel-Pakete über den Paketmanager Ihrer Distribution und starten Sie neu.
  3. Überprüfung: Führen Sie detection/check_vulnerable.sh vor und nach der Behebung aus.

2. Risikobewertung

CVSS 3.1-Vektorzeichenfolge```

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

| Metrik | Wert | Begründung |
|--------|-------|-----------|
| Angriffsvektor | **Lokal** | Erfordert Shell-Zugriff (SSH, Container-Exec, physisch) |
| Angriffskomplexität | **Niedrig** | Zuverlässig, vollständig automatisiert — kein Race Condition erforderlich |
| Erforderliche Privilegien | **Niedrig** | Jedes unprivilegierte Benutzerkonto |
| Benutzerinteraktion | **Keine** | Keine Interaktion mit dem Opfer erforderlich |
| Vertraulichkeit | **Hoch** | Vollständige Systemkompromittierung |
| Integrität | **Hoch** | Vollständige Systemkompromittierung |
| Verfügbarkeit | **Hoch** | Vollständige Systemkompromittierung |

### Bedrohungslage

| Faktor | Bewertung |
|--------|-----------|
| PoC-Verfügbarkeit | Öffentlich, weaponized, 732 Byte eigenständiges Python |
| Exploit-Zuverlässigkeit | Hoch — funktioniert auf getesteten Distributionen ohne Modifikation |
| Erkennungsschwierigkeit | Hoch — keine Schreibvorgänge auf der Festplatte, keine Dirty Pages |
| Erforderliche Angreiferfähigkeiten | Niedrig — Script Kiddie mit öffentlichem PoC |
| CISA KEV | Hinzugefügt 2026 — aktiv überwacht |
| Microsoft Defender | Als unter aktiver Untersuchung markiert |

### Betroffene Umgebungen

| Umgebung | Risiko |
|-------------|------|
| Bare-Metal-Linux-Server | Kritisch |
| Linux-VMs (Cloud oder On-Premises) | Kritisch |
| Kubernetes-Knoten | Kritisch (ermöglicht auch Container-Escape) |
| Docker-Hosts | Kritisch |
| Shared Hosting / Multi-Tenant | Kritisch |
| WSL2 / Linux auf Windows | Je nach Kernel-Version bewerten |

---

## 3. Technischer Deep Dive

### 3.1 Hintergrund: AF_ALG und AEAD

Der Linux-Kernel stellt kryptografische Operationen über **AF_ALG-Sockets** (`AF_ALG = 38`) für Userspace-Anwendungen bereit. Diese Schnittstelle (`algif_aead`) erlaubt unprivilegierten Anwendungen, Kernel-Krypto-Hardwarebeschleuniger aufzurufen, ohne Kernel-Mode-Code zu benötigen.

**AEAD**-Algorithmen (Authenticated Encryption with Associated Data) wie AES-GCM und ChaCha20-Poly1305 werden häufig für TLS, Festplattenverschlüsselung und VPN-Protokolle verwendet. Die verwundbare Vorlage ist `authencesn` — eine AEAD-Komposition mit `hmac(sha256)` + `cbc(aes)` und Unterstützung für Extended Sequence Number (ESN), die üblicherweise in IPsec verwendet wird.

### 3.2 Grundursache

Im Jahr 2017 führte Commit `72548b093ee3` **In-Place-AEAD-Operationen** in `algif_aead` als Leistungsoptimierung ein — wodurch die Crypto-Engine denselben Puffer lesen und beschreiben konnte. Dies war fehlerhaft:```
The bug chain:

1. Caller binds AF_ALG socket to:
      authencesn(hmac(sha256),cbc(aes))

2. Caller sends a decryption request via sendmsg() with specific flags

3. Caller uses splice() to feed PAGE CACHE PAGES from an open file
   descriptor directly into the socket's scatterlist

4. The authencesn template, during ESN header processing, uses the
   OUTPUT BUFFER as scratch space — writing 4 bytes past the
   expected output boundary

5. Because the scatterlist contains page cache pages (not private
   copies), this scratch write lands DIRECTLY IN THE PAGE CACHE

6. Page cache is shared kernel-wide — all processes reading the
   same file now see the modified bytes

Key insight: splice() is zero-copy — it hands page cache references
to the socket. The in-place "optimization" then writes INTO those
pages. No dirty bit is set because the write goes through the crypto
engine, not the normal write path.

3.3 Die Write-Primitive

Die Schwachstelle ermöglicht einen kontrollierten 4-Byte-Schreibzugriff in den Page Cache jeder Datei, die der Angreifer zum Lesen öffnen kann:

EigenschaftWert
Schreibgröße4 Bytes
Offset-KontrolleJa — vom Angreifer kontrollierbar über den splice-Offset
ZielPage Cache jeder lesbaren Datei
Markierung als „dirty"Keine
Änderung auf der FestplatteKeine
Zeitstempel-AktualisierungKeine
Kernel-Log-EintragKeiner (sofern auditd nicht konfiguriert ist)

Der Schreibzugriff ist wiederholbar — der Exploit schleift den 4-Byte-Schreibzugriff, um größere Codesequenzen zu patchen.

3.4 Exploit-Kette```

[1] Open /usr/bin/su (or any setuid-root binary) for reading ↓ [2] Map a copy to find target instruction bytes (e.g., UID check, execve path, security gate) ↓ [3] Compute exact page cache offset of target bytes ↓ [4] Set up AF_ALG socket → authencesn(hmac(sha256),cbc(aes)) ↓ [5] splice() the target binary's page cache into the socket ↓ [6] Trigger decryption → authencesn scratch write patches the target bytes in page cache (4 bytes per iteration) ↓ [7] Repeat for each 4-byte patch needed ↓ [8] Execute /usr/bin/su → runs root-owned setuid binary but now with attacker-controlled code in page cache ↓ [9] Root shell

### 3.5 Warum Standard-Abwehrmaßnahmen versagen
Tool herunterladen