Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
COPY-FAIL-Detection-with-Wazuh-4.14.4 — Wazuh 4.14.4-Erkennungsregeln für CVE-2026-31431 (Copy Fail) – Lokale Privilegienausweitung unter Linux über den authencesn-Seitencache-Schreibvorgang | Kitploit
Tools/GitHubGitHub/mym0us3r/copy-fail-detection-with-wazuh-4.14.4
Privilege EscalationSchwachstellenanalyseKonfigurationsprüfungBedrohungsanalyseEinbruchserkennung
GitHubmym0us3r/copy-fail-detection-with-wazuh-4.14.4

COPY-FAIL-Detection-with-Wazuh-4.14.4

Wazuh 4.14.4-Erkennungsregeln für CVE-2026-31431 (Copy Fail) – Lokale Privilegienausweitung unter Linux über den authencesn-Seitencache-Schreibvorgang

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
9vor 3 MonatenNoch nicht geprüft

COPY FAIL-Erkennung mit Wazuh 4.14.4 - CVE-2026-31431

Detection Engineering für die Copy Fail Kernel-LPE · Ubuntu / RHEL / SUSE / Amazon Linux 2023 / Kali

rules sca status mitre cve


Was ist Copy Fail?

CVE-2026-31431 ist ein Logikfehler in der authencesn-Krypto-Vorlage des Linux-Kernels. Er ermöglicht jedem unprivilegierten lokalen Benutzer einen deterministischen, kontrollierten 4-Byte-Schreibzugriff in den Page Cache jeder lesbaren Datei auf dem System - ohne Race Conditions, Kernel-Offsets oder erhöhte Privilegien.

Ein 732-Byte-Python-3.10+-Skript, das nur Standardbibliotheksmodule (os, socket, zlib) verwendet, nutzt die Schwachstelle aus, um auf allen großen Linux-Distributionen, die seit 2017 ausgeliefert werden, Root-Rechte zu erlangen.

Die Datei auf der Festplatte bleibt unverändert, wodurch herkömmliche Datei-Integritätsüberwachung (FIM) völlig blind ist.

Entdeckt von Taeyang Lee (Theori / Xint) mit Unterstützung des KI-Tools Xint Code.


Offizielle Referenzen


Warum FIM versagt - Warum dieses Repo existiert

Der Schreibzugriff zielt nur auf den In-Memory-Page-Cache. Der Kernel markiert die Seite nie als "dirty", sodass der Writeback-Mechanismus sie nie auf die Festplatte schreibt. Die Binärdatei auf der Festplatte bleibt byte-für-byte identisch mit dem Original.

root@kitploit:~
Traditioneller FIM-Ansatz:
  Datei von Festplatte lesen -> Hash berechnen -> vergleichen -> keine Anomalie gemeldet

Copy-Fail-Realität:
  Datei auf Festplatte = UNVERÄNDERT
  Page Cache          = BESCHÄDIGT
  FIM-Ergebnis        = BLIND

Die einzige wirksame Erkennung ist verhaltensbasiert, über Syscall-Überwachung. Dieses Repository stellt produktionsvalidierte Wazuh-Regeln bereit, die die Exploit-Kette auf Kernel-Syscall-Ebene erkennen.


Exploit-Kette

root@kitploit:~
Schritt 1: socket(38, 5, 0)       AF_ALG-Socket - keine Privilegien erforderlich
Schritt 2: bind()                  An authencesn binden - aktiviert verwundbaren Code
Schritt 3: sendmsg()               AAD-Payload erstellen - Bytes 4-7 = zu schreibender Wert
Schritt 4: splice()          [!]   AUSLÖSER - Page-Cache-Seiten gelangen in beschreibbaren SGL
Schritt 5: recv()                  authencesn schreibt seqno_lo in den Page Cache
Schritt 6: execve(/usr/bin/su)     Beschädigte setuid-Binärdatei führt Shellcode als UID 0 aus

CVE-2026-31431 Exploit-Kette

splice() ist der kritische Schritt. Es liefert Page-Cache-Seiten in den beschreibbaren Scatterlist des AF_ALG-Sockets, ohne sie zu kopieren - eine In-Place-Optimierung aus dem Jahr 2017 in algif_aead.c, die Seiten aus dem Pipe-Puffer im Ziel-SGL wiederverwendbar machte. Wenn authencesn.decrypt() ausgeführt wird, schreibt es in diese Seiten, die zufällig der Page Cache Ihrer Zieldatei sind.


Betroffene Distributionen

Alle Linux-Distributionen, die Kernel seit Commit 72548b093ee3 (2017) ausliefern, sind betroffen.

Container-Escape: Copy Fail ist auch ein Container-Escape-Vektor. Der Page Cache wird von allen Prozessen auf dem Host gemeinsam genutzt, auch über Container-Grenzen hinweg. Teil 2 von Xint behandelt die Kubernetes-Ausnutzung.


Repository-Struktur

root@kitploit:~
COPY-FAIL-Detection-with-Wazuh-4.14.4/
│
├── rules/
│   └── local_rules.xml              # 8 Wazuh-Erkennungsregeln (199600-199607)
│
├── auditd/
│   └── cve-2026-31431.rules         # auditd-Syscall-Sensorregeln
│
├── sca/
│   └── cve_2026_31431.yml           # SCA-Richtlinie - kernelversionsunabhängig
│
└── docs/
    ├── pentlab_uid.png               # PoC-Ausführung - Root auf Kali erlangt
    ├── Rule-199604-TRIGs.png         # Regel 199604 - 80 Treffer auf pentlab
    ├── Rule_199604_Wazuh_Server_only.png  # Regel 199604 - erste Validierung
    ├── Splice_-_Non-root_process.png # Regeln 199600/199601/199604 ausgelöst
    ├── Modprobe_-_Possible_Algif_aed_load_attempt.png  # Regel 199603
    ├── Pentlab-PoC.png               # Regel 199603 auf pentlab-Agent
    ├── exploit_chain_timeline.svg    # Exploit-Kette
    └── SCA_CVE-2026-31431.png        # SCA-Richtlinien-Score 75%

Erkennungsarchitektur

Zwei unabhängige Ebenen - keine hängt von der Kernelversion ab.

Ebene 1 - Verhaltenserkennung (auditd + Wazuh)

Der Filter uid!=0 deckt Benutzer über interaktive Konten hinaus ab: Dienstkonten (www-data, postgres, jenkins), Container und Web-Shells ohne Login-Sitzung.

Auditd-Sensorregeln (auditd/cve-2026-31431.rules):

root@kitploit:~
-a always,exit -F arch=b64 -S socket -F a0=0x26 -F uid!=0 -k copy_fail_af_alg
-a always,exit -F arch=b32 -S socket -F a0=0x26 -F uid!=0 -k copy_fail_af_alg
-a always,exit -F arch=b64 -S splice -F uid!=0 -k copy_fail_splice
-w /usr/bin/su    -p x -k copy_fail_execve_su
-w /usr/bin/kmod  -p x -k copy_fail_modload

Ebene 2 - Angriffsfläche (SCA-Richtlinie)

Automatisierte Konfigurationsprüfungen alle 12 Stunden über sca/cve_2026_31431.yml. Keine Kernelversion erforderlich.

Regelketten-Architektur

Technischer Hinweis: Die Regeln 199600 und 199601 müssen Kinder von Regel 92600 (Python-Prozess, Tiefe 1) sein, nicht von 80700. Die Wazuh-Regelengine folgt einem Kettenpfad pro Ereignis. Die Platzierung der Erkennungsregeln auf Tiefe 2 unter 92600 stellt sicher, dass sie die Kettenauswertung gegenüber Geschwisterregeln gewinnen (z. B. 92603-92606 in 0850-audit_rules.xml, die ebenfalls if_group=audit + exe=python abgleichen).


Bereitstellung

Schritt 1 - auditd installieren

root@kitploit:~
# Ubuntu / Debian / Kali
apt install auditd audispd-plugins -y
systemctl enable --now auditd
auditctl -s | grep enabled
root@kitploit:~
# RHEL / Amazon Linux
yum install audit -y
systemctl enable --now auditd
root@kitploit:~
# SUSE
zypper install audit -y
systemctl enable --now auditd

Schritt 2 - auditd-Sensorregeln bereitstellen

root@kitploit:~
cp auditd/cve-2026-31431.rules /etc/audit/rules.d/
augenrules --load
auditctl -l | grep copy_fail

Erwartete Ausgabe:

root@kitploit:~
-a always,exit -F arch=b64 -S socket -F a0=0x26 -F uid!=0 -F key=copy_fail_af_alg
-a always,exit -F arch=b32 -S socket -F a0=0x26 -F uid!=0 -F key=copy_fail_af_alg
-a always,exit -F arch=b64 -S splice -F uid!=0 -F key=copy_fail_splice
-w /usr/bin/su -p x -k copy_fail_execve_su
-w /usr/bin/kmod -p x -k copy_fail_modload

Schritt 3 - Wazuh-Erkennungsregeln bereitstellen

Die Regeln sind in rules/local_rules.xml enthalten. Sie können den Inhalt entweder in Ihre bestehende /var/ossec/etc/rules/local_rules.xml einfügen oder als eigenständige Datei bereitstellen:

root@kitploit:~
# Option A - eigenständige Datei
cp rules/local_rules.xml /var/ossec/etc/rules/cve-2026-31431_rules.xml

# Option B - an local_rules.xml anhängen
cat rules/local_rules.xml >> /var/ossec/etc/rules/local_rules.xml
root@kitploit:~
# Syntax validieren - muss mit 0 und ohne Warnungen beendet werden
/var/ossec/bin/wazuh-analysisd -t 2>&1 | tail -5

# Manager neu starten
systemctl restart wazuh-manager

Schritt 4 - SCA-Richtlinie bereitstellen

root@kitploit:~
cp sca/cve_2026_31431.yml /var/ossec/etc/shared/default/

Fügen Sie in ossec.conf innerhalb des <sca>-Blocks hinzu:

root@kitploit:~
<policies>
  <policy>/var/ossec/etc/shared/default/cve_2026_31431.yml</policy>
</policies>
root@kitploit:~
systemctl restart wazuh-manager

Schritt 5 - ossec.conf localfile konfigurieren

Stellen Sie sicher, dass Wazuh das auditd-Protokoll aufnimmt:

root@kitploit:~
<!-- Innerhalb von <ossec_config> hinzufügen -->
<localfile>
  <log_format>audit</log_format>
  <location>/var/log/audit/audit.log</location>
</localfile>

Validierung

Schnelltest (kein Exploit - nur Syscalls)

root@kitploit:~
# Bei Bedarf Testbenutzer erstellen
useradd -m testuser 2>/dev/null || true

# SIGNAL 1 erzeugen - AF_ALG-Socket
su - testuser -c "python3 -c \"import socket; socket.socket(38, 5, 0); print('AF_ALG OK')\""

# SIGNAL 3 erzeugen - /usr/bin/su-Ausführung
su - testuser -c "/usr/bin/su --help 2>/dev/null || true"

# Prüfen, ob auditd Ereignisse erfasst hat
ausearch -k copy_fail_af_alg -ts recent 2>/dev/null | grep "key=\|exe=\|uid=" | head -5

# Prüfen, ob Wazuh Alerts erzeugt hat
grep -E "199600|199602" /var/ossec/logs/alerts/alerts.log | tail -10

SCA-Ergebnisse validieren

root@kitploit:~
grep -E "31431|cve_2026" /var/ossec/logs/alerts/alerts.log | tail -10

Erwarteter SCA-Score (System ohne Mitigation): 75% (3 bestanden / 1 fehlgeschlagen - algif_aead nicht auf Blacklist)


Produktionsvalidierungs-Nachweise

PoC-Ausführung - Root auf Kali erlangt (pentlab)

testuser (uid=1001) führte den 732-Byte-PoC aus und erlangte eine Root-Shell:

PoC - Root auf Kali erlangt


Regel 199604 - EXPLOIT-KETTE ERKANNT (pentlab, 80 Treffer)

AF_ALG-Socket + splice() aus demselben Python-Prozess - pid=46784 - SOFORTIGE UNTERSUCHUNG ERFORDERLICH:

Regel 199604 - pentlab 80 Treffer


Regel 199604 - Erste Validierung (Wazuh-Server, pid=53447)

Regel 199604 - Wazuh-Server


Regeln 199600 / 199601 / 199604 - splice() und AF_ALG ausgelöst

Splice und AF_ALG - Nicht-Root-Prozess


Regel 199603 - modprobe-Ausführung erkannt (93 Treffer)

Modprobe - Möglicher algif_aead-Ladeversuch


Regel 199603 - pentlab-Agent (35 Treffer)

Pentlab - Regel 199603


SCA-Richtlinie - Score 75% (3 bestanden / 1 fehlgeschlagen)

SCA CVE-2026-31431


Wazuh-Dashboard-Discover-Ergebnisse (Agent=pentlab, Heute):

wazuh-analysisd -t: Exit 0 - keine Warnungen - alle 8 Regeln geladen.


Behebung

Sofortige Mitigation (vor dem Patch)

root@kitploit:~
rmmod algif_aead 2>/dev/null || true
echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif-aead.conf

Dies betrifft nicht dm-crypt/LUKS, kTLS, IPsec, OpenSSL, GnuTLS oder SSH.

Dauerhafte Lösung

Wenden Sie Kernel-Commit a664bf3d603d über das Kernel-Update Ihrer Distribution an. Es macht die In-Place-Optimierung von 2017 in algif_aead.c rückgängig und trennt req->src (TX-SGL, wo splice Seiten zustellt) von req->dst (RX-SGL, Benutzerpuffer). Alle großen Distributionen liefern den Fix aus.

root@kitploit:~
# Ubuntu / Debian
apt update && apt upgrade linux-generic

# RHEL / Amazon Linux
dnf update kernel

# SUSE
zypper update kernel-default

Offenlegungszeitplan


Vergleich mit ähnlichen Schwachstellen


SCA-Richtlinienübersicht


Autor

Kislley Rodrigues (m0us3r) Wazuh Ambassador | Detection Engineering | Blue Team


Danksagungen

  • Taeyang Lee (Theori / Xint) für die Entdeckung, den Bericht und die koordinierte Offenlegung von CVE-2026-31431
  • Wazuh-Team für die offene SIEM/XDR-Plattform und das Ambassador-Programm
  • Xint Research für die technische Tiefe unter https://xint.io/blog/copy-fail-linux-distributions

Erkennungsregeln, auditd-Sensorkonfiguration und SCA-Richtlinie validiert auf Wazuh 4.14.4, Ubuntu 24.04.2 LTS (Kernel 6.8.0-106-generic) und Kali GNU/Linux 2026.1 (Kernel 6.18.12+kali-amd64).


Update 2026-05-03

QuelleLink
CISA nimmt aktiv ausgenutzten Linux-Root-Zugriffsfehler CVE-2026-31431 in KEV aufhttps://thehackernews.com/2026/05/cisa-adds-actively-exploited-linux-root.html


Wazuh

Dieses Projekt wurde im Rahmen des Wazuh Ambassador Program entwickelt.

Wazuh ist eine kostenlose Open-Source-Sicherheitsplattform, die vereinheitlichten XDR- und SIEM-Schutz bietet. Erfahren Sie mehr unter wazuh.com.

Tool herunterladen
RessourceLink
Offizielle CVE-Websitehttps://copy.fail/
Technischer Bericht - Xint Researchhttps://xint.io/blog/copy-fail-linux-distributions
PoC - copy_fail_exp.pyhttps://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py
Kernel-Fix - a664bf3d603dhttps://github.com/torvalds/linux/commit/a664bf3d603d
Verwundbarer Commit - 72548b093ee3https://github.com/torvalds/linux/commit/72548b093ee3
MITRE ATT&CK T1068https://attack.mitre.org/techniques/T1068/
DistributionKernelStatus
Ubuntu 24.04 LTS6.17.0-1007-awsROOT BESTÄTIGT
Amazon Linux 20236.18.8-9.213.amzn2023ROOT BESTÄTIGT
RHEL 10.16.12.0-124.45.1.el10_1ROOT BESTÄTIGT
SUSE 166.12.0-160000.9-defaultROOT BESTÄTIGT
Kali GNU/Linux 2026.16.18.12+kali-amd64ROOT BESTÄTIGT
RegelElternregelSignalTiefeLevel
80700decoded_as=auditdauditd-Anker (Wazuh integriert)00
9260080700Python-Prozessausführung (Wazuh integriert)10
19960092600AF_ALG-Socket - Python-Kette210
19960192600splice()-Syscall - Python-Kette210
199604199601 + if_matched=199600EXPLOIT-KETTE - Python (gleiche pid/120s)315
19960280700/usr/bin/su-Ausführung16
19960380700modprobe/kmod-Ausführung112
19960580700AF_ALG-Socket - Nicht-Python110
19960680700splice()-Syscall - Nicht-Python110
199607199606 + if_matched=199605EXPLOIT-KETTE - Nicht-Python (gleiche pid/120s)215
RegelTrefferBeschreibung
19960480EXPLOIT-KETTE ERKANNT - pid=46784 exe=/usr/bin/python3.13
19960040AF_ALG-Socket von Nicht-Root-Prozess erstellt
19960328modprobe-Ausführung erkannt
19960212/usr/bin/su ausgeführt
DatumEreignis
2026-03-23Schwachstelle an das Linux-Kernel-Sicherheitsteam gemeldet
2026-03-24Erste Bestätigung erhalten
2026-03-25Patches vorgeschlagen und überprüft
2026-04-01Patch im Mainline-Kernel committet (a664bf3d603d)
2026-04-22CVE-2026-31431 zugewiesen
2026-04-29Öffentliche Offenlegung - Xint-Bericht + PoC veröffentlicht
Dirty Cow (2016-5195)Dirty Pipe (2022-0847)Copy Fail (2026-31431)
Race ConditionJa - mehrere VersucheNeinNein - deterministische Logik
Kann System zum Absturz bringenJaNeinNein
PortabilitätEingeschränktVersionsspezifischAlle Distributionen 2017+
Exploit-GrößeKilobyte (C)Hunderte Bytes732 Bytes (Python-Stdlib)
FIM-ErkennungMöglichMöglichNicht möglich
PrüfungTitelRisiko
31431001algif_aead nicht im Speicher geladenKRITISCH
31431002algif_aead über modprobe.d deaktiviertHOCH
31431003auditd aktiv und läuftHOCH
31431004CVE-2026-31431-Sensorregeln bereitgestelltHOCH
Katalog bekannter ausgenutzter Schwachstellenhttps://www.cisa.gov/known-exploited-vulnerabilities-catalog
CVE-2026-31431 - crypto: algif_aead - Rückkehr zum Out-of-Place-Betriebhttps://www.cve.org/CVERecord?id=CVE-2026-31431