Sploitus

Exploit for cve-2026-31431 CVE-2026-31431

kitploit · 2026-08-27

Exploit Code

MARKDOWN533 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-VASYAPOKEMON-CVE-2026-31431
# 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.

Attribut| Wert  
---|---  
CVE| CVE-2026-31431  
Spitzname| Copy Fail  
CVSS v3.1| **7.8 HOCH**  
Angriffsvektor| Lokal  
Erforderliche Privilegien| Niedrig  
Benutzerinteraktion| Keine  
Komponente| `crypto/algif_aead.c` — `authencesn`-Vorlage  
EingefĂŒhrt| 2017 (Commit `72548b093ee3`)  
Offengelegt| 2026  
Jahre unentdeckt| ~9 Jahre  
CISA KEV| **Ja**  
Öffentlicher PoC| **Ja** (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 

root@kitploit:~

  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

root@kitploit:~
    
    
    | 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:

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

root@kitploit:~
    
    
    ### 3.5 Warum Standard-Abwehrmaßnahmen versagen
    
    | Abwehrmaßnahme | Umgangen? | Grund |
    |---------|-----------|--------|
    | DateiintegritĂ€tsĂŒberwachung (Tripwire/AIDE) | **Ja** | Keine Änderung auf der Festplatte |
    | IDS-Dateihash-PrĂŒfungen | **Ja** | Festplatten-Bytes unverĂ€ndert |
    | `inotify`-DateiĂŒberwachung | **Ja** | Kein VFS-Schreibereignis |
    | SELinux / AppArmor | **Teilweise** | Kontrolliert den Prozess, nicht den Page-Cache-Schreibvorgang ĂŒber die Krypto-Engine |
    | SchreibgeschĂŒtzte Mounts | **Ja** | Page-Cache im Speicher geĂ€ndert, nicht ĂŒber den Mount |
    | auditd-`watch` auf BinĂ€rdatei | **Ja** | Audit ĂŒberwacht VFS-SchreibvorgĂ€nge — dies umgeht VFS |
    
    ### 3.6 Betroffene Kernel-Versionen
    
    | Zweig | AnfÀllig bis | Behoben ab |
    |--------|-------------------|------------|
    | 4.14.x | Alle (Ursprung der Schwachstelle) | Kein Upstream-Fix (EOL) |
    | 5.4.x (LTS) | Alle | Distributions-Backport erforderlich |
    | 5.10.x (LTS) | Alle | Distributions-Backport erforderlich |
    | 5.15.x (LTS) | Alle | Distributions-Backport erforderlich |
    | 6.1.x (LTS) | ≀ 6.1.129 | **6.1.130+** |
    | 6.6.x (LTS) | ≀ 6.6.86 | **6.6.87+** |
    | 6.12.x (LTS) | ≀ 6.12.22 | **6.12.23+** |
    | 6.15-rc | In rc behoben | **6.15-rc+** |
    
    > Distributions-Kernel haben den Fix möglicherweise unter anderen Versionsnummern zurĂŒckportiert. PrĂŒfen Sie immer das Sicherheitsbulletin Ihrer Distribution.
    
    ---
    
    ## 4. Angriffsmethodik — Red Team
    
    > **Autorisierung erforderlich.** Dieser Abschnitt dient dazu, Verteidigern die Angreiferperspektive zu vermitteln. FĂŒhren Sie Tests nur auf Systemen aus, die Ihnen gehören oder fĂŒr die Sie eine ausdrĂŒckliche schriftliche Testautorisierung besitzen.
    
    ### 4.1 Voraussetzungen
    
    - Shell mit niedrigen Rechten auf dem Zielsystem (SSH, Container-Exec, RCE-Kette)
    - Python 3.10+ **oder** kompilierte C-BinÀrdatei
    - Ungepatcher Kernel mit verfĂŒgbarem `algif_aead`
    
    ### 4.2 AufklÀrung```bash
    # Check if vulnerable
    uname -r
    cat /proc/crypto | grep -A10 "authencesn"
    lsmod | grep algif_aead
    
    # Verify setuid target exists
    ls -la /usr/bin/su /usr/bin/sudo /usr/bin/passwd
    

### 4.3 Öffentlicher PoC

Die ursprĂŒnglichen Forscher (Theori) haben einen voll funktionsfĂ€higen, eigenstĂ€ndigen Python-PoC mit 732 Bytes veröffentlicht:

  * **Repository** : https://github.com/theori-io/copy-fail-CVE-2026-31431
  * **Website** : https://copy.fail
  * **Datei** : `copy_fail_exp.py````bash



# Default: targets /usr/bin/su

python3 copy_fail_exp.py

# Custom target

python3 copy_fail_exp.py /usr/bin/passwd

root@kitploit:~
    
    
    Eine lokale Kopie ist unter `exploit/poc.py` verfĂŒgbar. Technische Details finden Sie in `exploit/README.md`.
    
    ### 4.4 Container-Escape-Szenario
    
    Da der Linux-Page-Cache von allen Prozessen auf demselben Host gemeinsam genutzt wird (einschließlich Host und Containern):```
    Attacker in container → patches /usr/bin/su in HOST page cache
    Host user runs su → executes attacker code as root on host
    

Dies funktioniert sogar aus nicht-privilegierten Containern, solange der Host-Kernel verwundbar ist.

### 4.5 MITRE ATT&CK Mapping

* * *

## 5\. Erkennung & Incident Response — Blue Team

> **Dies ist der primÀre Fokus dieses Repositorys.**

### 5.1 Schwachstellenerkennung

FĂŒhren Sie das Erkennungsskript auf einem beliebigen Linux-System aus:```bash chmod +x detection/check_vulnerable.sh sudo ./detection/check_vulnerable.sh

root@kitploit:~
    
    
    **Was geprĂŒft wird:**
    - Kernel-Version gegen bekannte anfÀllige Bereiche
    - Lade- und Blacklist-Status des `algif_aead`-Moduls
    - VerfĂŒgbarkeit von `authencesn` in `/proc/crypto`
    - IntegritÀt des Page-Cache von setuid-Binaries (erfordert Root)
    - Verteilungsspezifischer Patch-Status
    - Laufende Prozesse auf aktive Exploit-Indikatoren
    
    Ein mit Zeitstempel versehener Bericht wird unter `/tmp/cve-2026-31431-report-*.txt` gespeichert.
    
    ### 5.2 YARA-Erkennung
    
    Zwei YARA-Regeln werden in `detection/yara/` bereitgestellt:
    
    | Regeldatei | Zweck |
    |-----------|---------|
    | `cve_2026_31431_base.yar` | Stimmt exakt mit bekannten öffentlichen PoCs ĂŒberein |
    | `cve_2026_31431_enhanced.yar` | Erkennt verschleierte, kompilierte und Varianten-Exploits |```bash
    # Install YARA
    apt-get install yara   # Debian/Ubuntu
    dnf install yara       # RHEL/Fedora
    apk add yara           # Alpine
    
    # Scan running process executables
    sudo yara -r detection/yara/cve_2026_31431_enhanced.yar /proc/*/exe 2>/dev/null
    
    # Scan common dropper locations
    sudo yara -r detection/yara/cve_2026_31431_enhanced.yar /home /tmp /var/tmp /dev/shm
    
    # Scan uploaded files / quarantine
    yara detection/yara/cve_2026_31431_base.yar <suspect_file>
    

**Warum erweiterte Regeln wichtig sind** : Angreifer können den öffentlichen Python-PoC verschleiern (Strings base64-kodieren, den Algorithmusnamen XOR-kodieren, zu einem C-Binary kompilieren, Symbole entfernen). Die erweiterte Regel erkennt diese Varianten, indem sie auf Invarianten abzielt, die nicht entfernt werden können, ohne den Exploit zu brechen:

  * Der Kernel MUSS `authesn` als Algorithmusnamen empfangen
  * Der Exploit MUSS `splice()` verwenden, um Zero-Copy-Seitencache-Zugriff zu erreichen
  * Der Exploit MUSS einen AF_ALG-Socket (Familie `38`) erstellen



### 5.3 Auditd-Regeln

Bereitstellen unter `/etc/audit/rules.d/cve-2026-31431.rules`:```bash

# Detect AF_ALG socket creation (family 38 = 0x26)

-a always,exit -F arch=b64 -S socket -F a0=38 -k cve_2026_31431_afalg

# Detect splice() calls — used to feed page cache into the socket

-a always,exit -F arch=b64 -S splice -k cve_2026_31431_splice

# Monitor algif_aead module loading

-a always,exit -F arch=b64 -S init_module -S finit_module -k cve_2026_31431_modload

# Detect setuid binary execution by non-root users

-a always,exit -F arch=b64 -S execve -F euid=0 -F auid>=1000 -k cve_2026_31431_suid_exec

root@kitploit:~
    
    
    Reload:```bash
    augenrules --load && service auditd restart
    

Query fĂŒr Exploit-Versuche:```bash

# Look for AF_ALG socket creation

ausearch -k cve_2026_31431_afalg --start today

# Correlate: same PID doing AF_ALG socket + splice

ausearch -k cve_2026_31431_afalg -k cve_2026_31431_splice --start today

root@kitploit:~
    
    
    ### 5.4 Falco / eBPF-Erkennung
    
    FĂŒgen Sie zu `/etc/falco/rules.d/cve-2026-31431.yaml` hinzu:```yaml
    - rule: CVE-2026-31431 AF_ALG Socket Creation
      desc: Detects unprivileged process creating AF_ALG socket (family 38) — required step for Copy Fail exploit
      condition: >
        syscall.type = socket and
        evt.arg.domain = 38 and
        not user.uid = 0 and
        not proc.name in (known_crypto_daemons)
      output: >
        CVE-2026-31431 exploitation attempt - AF_ALG socket (user=%user.name
        uid=%user.uid pid=%proc.pid cmd=%proc.cmdline)
      priority: CRITICAL
      tags: [cve-2026-31431, lpe, kernel, crypto]
    
    - list: known_crypto_daemons
      items: [strongswan, charon, pluto, openssl]
    
    - rule: CVE-2026-31431 Splice After AF_ALG
      desc: Detects splice() syscall shortly after AF_ALG socket creation — exploitation sequence
      condition: >
        syscall.type = splice and
        not user.uid = 0 and
        evt.elapsed < 5000000000
      output: >
        CVE-2026-31431 splice after AF_ALG socket (user=%user.name pid=%proc.pid)
      priority: CRITICAL
      tags: [cve-2026-31431, lpe]
    

### 5.5 IntegritĂ€tsprĂŒfung des Page Cache

Da der Exploit den Page Cache **ohne Schreiben auf die Festplatte** verĂ€ndert, sind Standard-FIM-Tools blind. Diese PrĂŒfung erkennt aktive Ausnutzung:```bash #!/bin/bash

# Compare in-memory binary against on-disk binary

SETUID_BINS=("/usr/bin/su" "/usr/bin/sudo" "/usr/bin/passwd")

for binary in "${SETUID_BINS[@]}"; do [[ -f "$binary" ]] || continue LIVE_HASH=$(sha256sum "$binary" | awk '{print $1}') echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null # flush page cache DISK_HASH=$(sha256sum "$binary" | awk '{print $1}') if [[ "$LIVE_HASH" != "$DISK_HASH" ]]; then echo "CRITICAL: Page cache tampering detected on $binary" echo " Pre-flush: $LIVE_HASH" echo " Post-flush: $DISK_HASH" else echo "OK: $binary page cache matches disk" fi done

root@kitploit:~
    
    
    **Produktionshinweis:** `drop_caches` verursacht einen Leistungsabfall. FĂŒhren Sie dies zuerst wĂ€hrend Wartungsfenstern oder auf nicht kritischen Systemen aus.
    
    ### 5.6 Indicators of Compromise (IoCs)
    
    | IoC-Typ | Indikator | Konfidenz |
    |----------|-----------|-----------|
    | String (BinÀr/Skript) | `authencesn(hmac(sha256),cbc(aes))` | Hoch |
    | Hex-Bytes | `78 DA AB 77 F5 71 63 62 64 64` (zlib-Payload-Header) | Hoch |
    | Syscall-Sequenz | `socket(38,5,0)` → `bind()` → `splice()` | Hoch |
    | Netzwerk | Keine — rein lokal | N/A |
    | Datei | Keine DatentrĂ€ger-SchreibvorgĂ€nge (Stealth) | — |
    | Prozess | Kurzlebiger Python/C-Prozess mit AF_ALG-Socket | Mittel |
    | Page-Cache | Setuid-BinĂ€rdatei im Page-Cache ≠ On-Disk-Hash | Kritisch |
    
    ### 5.7 SIEM-Erkennungsabfragen
    
    **Splunk (auditd-Quelle):**```spl
    index=linux_audit sourcetype=auditd action=SYSCALL syscall=socket a0="0x26"
    | join pid [
        search index=linux_audit sourcetype=auditd action=SYSCALL syscall=splice
      ]
    | where (_time - join_time) < 30
    | table _time host user pid cmd a0
    | eval severity="CRITICAL"
    

**Elastisches KQL:** ```kql event.action: "SYSCALL" AND process.args: "socket" AND auditd.data.a0: "0x26" AND NOT user.id: "0"

root@kitploit:~
    
    
    **Microsoft Sentinel (KQL):**```kql
    Syslog
    | where Facility == "kern" or ProcessName == "audit"
    | where SyslogMessage contains "socket" and SyslogMessage contains "a0=0x26"
    | extend UserName = extract("uid=([0-9]+)", 1, SyslogMessage)
    | where UserName != "0"
    | project TimeGenerated, Computer, UserName, SyslogMessage
    | order by TimeGenerated desc
    

* * *

## 6\. Patching & Remediation

FĂŒhren Sie das automatisierte Patch-Skript aus:```bash chmod +x patch/patch.sh sudo ./patch/patch.sh

root@kitploit:~
    
    
    ### 6.1 Sofortige Gegenmaßnahmen (Kein Neustart erforderlich*)```bash
    # Blacklist the module permanently
    echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
    echo "install authencesn /bin/false" | sudo tee -a /etc/modprobe.d/disable-algif-aead.conf
    
    # Unload if currently loaded
    sudo rmmod algif_aead 2>/dev/null || echo "Not loaded — mitigation active after config"
    
    # Verify
    lsmod | grep algif_aead && echo "WARNING: still loaded — reboot needed" || echo "OK: not loaded"
    

*Wenn `algif_aead` bereits geladen ist, ist ein Neustart erforderlich, damit die Blacklist vollstÀndig wirksam wird.

**Nebenwirkungen:** Anwendungen, die die Kernel-AEAD-Schnittstelle ĂŒber AF_ALG nutzen (ungewöhnlich – die meisten verwenden OpenSSL im Userspace), können fehlschlagen. Standard-TLS, FestplattenverschlĂŒsselung und VPN-Tools sind in der Regel nicht betroffen.

### 6.2 Dauerhafte Lösung – Kernel-Update

### 6.3 Kubernetes-Cluster```bash

# Check all node kernel versions

kubectl get nodes -o wide

# Drain → update node kernel → uncordon (one node at a time)

kubectl drain  \--ignore-daemonsets --delete-emptydir-data

# SSH into node and run kernel update

kubectl uncordon 

root@kitploit:~
    
    
    Nutzen Sie Node-Auto-Upgrader (Karpenter, Managed Node Groups) oder die Rotation des Cluster-Node-Pools, sofern verfĂŒgbar.
    
    ### 6.4 Verifizierung nach dem Patchen```bash
    # Re-run detection script
    sudo ./detection/check_vulnerable.sh
    
    # Quick manual verification
    uname -r                          # confirm new kernel version
    lsmod | grep algif_aead           # should be empty
    cat /proc/crypto | grep authencesn  # should return nothing (or still listed but module blacklisted)
    

* * *

## 7\. Laborumgebung

Eine minimale Alpine-Docker-Lab-Umgebung wird zum sicheren Testen von Erkennungswerkzeugen bereitgestellt.```bash cd lab/ docker compose up -d docker exec -it cve-2026-31431-lab /bin/sh

# Inside container:

/cve-2026-31431/detection/check_vulnerable.sh

root@kitploit:~
    
    
    > **Wichtig:** Docker-Container teilen sich den Kernel des Hostsystems. Das Labor testet den Schwachstellenstatus **Ihres Host-Kernels**. Die Schwachstellenergebnisse spiegeln das tatsĂ€chliche Hostsystem wider – dies ist fĂŒr eine realistische Bewertung beabsichtigt.
    
    FĂŒr isolierte Tests mit einer bestimmten anfĂ€lligen Kernel-Version verwenden Sie eine dedizierte VM mit einem festgelegten Kernel. Siehe `lab/README.md` fĂŒr Anleitungen zur VM-Einrichtung.
    
    ---
    
    ## 8. Referenzen
    
    | Ressource | Link |
    |----------|------|
    | NVD-Advisory | https://nvd.nist.gov/vuln/detail/CVE-2026-31431 |
    | UrsprĂŒngliche Forschung | https://copy.fail |
    | Technischer Bericht | https://xint.io/blog/copy-fail-linux-distributions |
    | Öffentlicher PoC | https://github.com/theori-io/copy-fail-CVE-2026-31431 |
    | CISA-KEV-Katalog | https://www.cisa.gov/known-exploited-vulnerabilities-catalog |
    | Kernel-Fix – Revert-Commit | `a664bf3d603d` / `fafe0fa2995a` |
    | AnfÀlliger Commit | `72548b093ee3` |
    | Microsoft-Defender-Advisory | Microsoft Defender Threat Intelligence Blog |
    
    ---
    
    ## Repository-Struktur```
    cve-2026-31431/
    ├── README.md                          ← This document
    ├── exploit/
    │   ├── README.md                      ← Technical exploit breakdown
    │   └── poc.py                         ← Public PoC (theori-io, for reference)
    ├── detection/
    │   ├── README.md                      ← Detection guide
    │   ├── check_vulnerable.sh            ← Vulnerability & IoC detection script
    │   └── yara/
    │       ├── cve_2026_31431_base.yar    ← Detects known public PoC
    │       └── cve_2026_31431_enhanced.yar ← Detects obfuscated/compiled variants
    ├── patch/
    │   ├── README.md                      ← Remediation guide
    │   └── patch.sh                       ← Automated patch/mitigation script
    └── lab/
        ├── README.md                      ← Lab setup guide
        ├── Dockerfile                     ← Alpine-based lab container
        └── docker-compose.yml             ← Lab orchestration
    

* * *

_Diese Forschung dient ausschließlich Bildungs- und Verteidigungszwecken im Bereich der Cybersicherheit. SĂ€mtliche Werkzeuge sind darauf ausgelegt, Verteidigern zu helfen, CVE-2026-31431 auf Systemen zu erkennen und zu beheben, die sie autorisiert sind zu schĂŒtzen._

_Repository gepflegt vonrippsec_