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
DIRTY-FRAG-Detection-with-Wazuh-4.14.4 — Wazuh 4.14.4 Erkennungsregeln für CVE-2026-43284 / CVE-2026-43500 (Dirty Frag) - Linux Lokale Privilegieneskalation via page cache write | Kitploit
Tools/GitHubGitHub/mym0us3r/dirty-frag-detection-with-wazuh-4.14.4
Privilege EscalationSchwachstellenanalyseExploitationBedrohungsanalyseEinbruchserkennungLernen & BildungIncident ResponseBinary-ExploitationLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubmym0us3r/dirty-frag-detection-with-wazuh-4.14.4

DIRTY-FRAG-Detection-with-Wazuh-4.14.4

Wazuh 4.14.4 Erkennungsregeln für CVE-2026-43284 / CVE-2026-43500 (Dirty Frag) - Linux Lokale Privilegieneskalation via page cache write

Repository anzeigen
3vor 3 MonatenNoch nicht geprüft

DIRTY FRAG Erkennung mit Wazuh 4.14.4 - CVE-2026-43284 / CVE-2026-43500

Erkennungsentwicklung für die Dirty Frag Kernel LPE - Ubuntu / RHEL / Debian / Amazon Linux

rules sca status mitre cve cve


Was ist Dirty Frag?

CVE-2026-43284 / CVE-2026-43500 ist eine lokale Rechteausweitung (LPE) im Linux-Kernel, die zwei unabhängige Page-Cache-Schreibprimitive verknüpft, um Root von einem unprivilegierten Benutzerkonto aus zu erlangen. Eine einzelne kompilierte Binärdatei erlangt Root auf allen großen Linux-Distributionen. Keine Race-Condition. Kein Heap-Spray. Kein Kernel-Offset erforderlich.

Variante 1 - CVE-2026-43284 (xfrm-ESP):``` unshare(CLONE_NEWUSER|CLONE_NEWNET) -> register XFRM SA via netlink (CAP_NET_ADMIN inside new namespace) -> vmsplice(ESP header into pipe) -> splice(target file into pipe) -> splice(pipe to UDP socket) -> esp_input() in-place AEAD decrypt writes 4 bytes into page cache

root@kitploit:~
**Variante 2 - CVE-2026-43500 (RxRPC):**```
add_key("rxrpc", ...)       no privileges required
-> socket(AF_RXRPC=35)
-> RxRPC handshake + forged DATA packet
-> vmsplice(RxRPC wire header into pipe)
-> splice(target file into pipe)
-> splice(pipe to UDP socket)
-> rxkad_verify_packet_1() in-place pcbc(fcrypt) decrypt writes 8 bytes into page cache

We have source. We output translation.

Wenn CLONE_NEWUSER durch AppArmor blockiert wird (Ubuntu 24.04+ Standard), fällt der Exploit automatisch von der ESP-Variante auf die RxRPC-Variante zurück. Dieselbe Binärdatei erreicht in beiden Fällen Root.

KRITISCH: Die Copy Fail-Mitigation (Blacklisting von algif_aead) schützt nicht vor Dirty Frag. Beide Sicherheitslücken teilen denselben authencesn-Sink, aber Dirty Frag wird über einen völlig anderen Codepfad ausgelöst. Falls Sie die Copy Fail-Mitigation bereitgestellt haben, sind Sie weiterhin gefährdet.

Entdeckt und veröffentlicht von V4bel – https://github.com/V4bel/dirtyfrag


Offizielle Referenzen


Warum FIM versagt – Warum dieses Repository existiert

Dirty Frag schreibt direkt in den speicherinternen Page Cache. Die Binärdatei auf der Festplatte wird nie verändert. Der Kernel markiert die beschädigte Seite nie als „dirty“, daher wird der Writeback nie ausgeführt. Die Datei auf der Festplatte ist vor und nach der Ausnutzung byteweise identisch mit dem Original.``` Traditional FIM approach: read file from disk -> compute hash -> compare -> no anomaly reported

Dirty Frag reality: on-disk /usr/bin/su = UNCHANGED page cache of /usr/bin/su = CONTAINS ROOT SHELL ELF FIM result = BLIND

root@kitploit:~
Die einzige effektive Erkennung ist verhaltensbasiert, durch Syscall-Überwachung auf Kernel-Ebene. Dieses Repository enthält produktionserprobte Wazuh-Regeln, die beide Exploit-Varianten auf Syscall-Ebene erkennen, unabhängig von Kernel-Version oder Patch-Status.

---

## Exploit-Kette```
ESP variant (CVE-2026-43284):
  unshare(CLONE_NEWUSER)    privilege boundary bypass via user namespace
  -> XFRM SA registration  CAP_NET_ADMIN gained inside new netns
  -> vmsplice()        [!]  ESP header planted into pipe
  -> splice()          [!]  /usr/bin/su page cache enters pipe
  -> splice()               pipe delivered to UDP socket
  -> esp_input() decrypt    4 bytes written deterministically into page cache
  -> execve(/usr/bin/su)    corrupted setuid binary runs shellcode as UID 0

RxRPC variant (CVE-2026-43500):
  add_key("rxrpc")          session key K planted - no privileges needed
  -> socket(AF_RXRPC)       rxrpc.ko auto-loaded
  -> vmsplice()        [!]  RxRPC wire header planted into pipe
  -> splice()          [!]  /etc/passwd page cache enters pipe
  -> splice()               pipe delivered to UDP socket
  -> rxkad_verify_packet_1() 8 bytes written deterministically into page cache
  -> su -                   /etc/passwd root entry has empty password field

Die Seitencache-Korruption ist die zentrale Grundlage beider Varianten. vmsplice pflanzt den vom Angreifer kontrollierten Protokoll-Header in eine Pipe. splice liefert die Seitencache-Seiten der Zieldatei in dieselbe Pipe ohne Kopieren. Wenn der Kernel den kombinierten Puffer durch den Entschlüsselungspfad verarbeitet, schreibt er die vom Angreifer kontrollierten Bytes in den Seitencache der Zieldatei.


Betroffene Systeme

Bestätigt durch @m0us3r - Ubuntu 24.04.2 LTS Testlabor

Bestätigt durch Autor (github.com/V4bel/dirtyfrag)

Alle Linux-Kernel seit 2017 sind betroffen. Die AppArmor unprivileged_userns-Einschränkung auf Ubuntu 24.04+ blockiert die ESP-Variante, aber die RxRPC-Variante umgeht sie vollständig.

CVE-2026-43284 (ESP): im Bereich von Commit cac2661c53f3 (2017-01-17) bis f4c50a4034e6 (2026-05-05) - GEFIXT im Hauptentwicklungszweig

CVE-2026-43500 (RxRPC): im Bereich von Commit 2dc334f1a63a (2023-06-08) bis upstream - NOCH KEIN PATCH VORHANDEN


Repository-Struktur```

DIRTY-FRAG-Detection-with-Wazuh-4.14.4/ | |- rules/ | '- local_rules.xml # 9 Wazuh detection rules (200000-200008) | |- auditd/ | '- cve-dirty-frag.rules # auditd syscall sensor rules (v2 - auid fix) | |- sca/ | '- cve-dirty-frag.yml # SCA policy - kernel-version independent | '- docs/ |- dirty_frag_dash_rules.png # Wazuh Rules Management - 200000-200008 deployed and active |- SCA.png # SCA policy score 50% - 3 passed / 3 failed |- SCA-hits.png # Wazuh Discover - SCA check results across 3 scan cycles |- discover-dirty-frag.png # Wazuh Discover - 52 hits - initial validation run (May 8) '- discover-dirty-frag_more.png # Wazuh Discover - 13 hits - chain rule 200007 level 15 (May 15)

root@kitploit:~
> **Hinweis zu local_rules.xml:** Die Regeln werden in `local_rules.xml` ausgeliefert, der Standarddatei für benutzerdefinierte Regeln in Wazuh unter `/var/ossec/etc/rules/local_rules.xml`. Falls Sie Ihre Erkennungsregeln lieber nach CVE organisiert halten möchten, können Sie den Inhalt als eigenständige Datei (z. B. `cve-2026-43284_rules.xml`) im selben Verzeichnis bereitstellen. Beide Ansätze funktionieren gleichermaßen.

---

## Erkennungsarchitektur

Zwei unabhängige Schichten – keine hängt von der Kernelversion oder dem Patch-Status ab.

### Schicht 1 – Verhaltenserkennung (auditd + Wazuh)

**Wichtiger Hinweis zu uid vs. auid:** Der Kindprozess der ESP-Variante ruft `unshare(CLONE_NEWUSER)` auf und mappt sich innerhalb des neuen Benutzernamespaces selbst als `uid=0`. Das Linux-Audit-Subsystem zeichnet in SYSCALL-Ereignissen die namespace-lokale uid auf, weshalb `-F uid!=0`-Filter die `vmsplice`- und `splice`-Ereignisse des Exploit-Kindprozesses nicht erfassen. `auid` (Audit-UID/Login-UID) wird bei der Anmeldung gesetzt und ändert sich durch Namespace-Remapping nicht. Die Sensorregeln für `vmsplice` und `splice` verwenden `-F auid>=1000`, um den tatsächlichen Login-Benutzer korrekt zu erfassen, unabhängig davon, was der Exploit innerhalb eines Namespaces tut.

**Auditd-Sensorregeln** (`auditd/cve-dirty-frag.rules`):```
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=-1 -k dirty_frag_vmsplice
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=-1 -k dirty_frag_vmsplice
-a always,exit -F arch=b64 -S splice   -F auid>=1000 -F auid!=-1 -k dirty_frag_splice
-a always,exit -F arch=b32 -S splice   -F auid>=1000 -F auid!=-1 -k dirty_frag_splice
-a always,exit -F arch=b64 -S unshare  -F uid!=0                  -k dirty_frag_ns_escape
-a always,exit -F arch=b64 -S add_key  -F uid!=0                  -k dirty_frag_add_key
-a always,exit -F arch=b64 -S socket   -F a0=0x23 -F uid!=0       -k dirty_frag_rxrpc_socket
-w /usr/bin/kmod -p x                                             -k dirty_frag_modload
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/su -F auid>=1000 -F auid!=-1 -k dirty_frag_execve_su

Layer 2 - Vulnerability Surface (SCA Policy)

Automatische Konfigurationsprüfungen via sca/cve-dirty-frag.yml. Läuft alle 12 Stunden auf allen registrierten Agenten. Keine Kernel-Versionsprüfung erforderlich.

Regelketten-Architektur

Hinweis zur Entwicklung: Die Kettenregeln (200007/200008) werden ausgelöst, wenn zwei Signale vom selben Prozess innerhalb von 120 Sekunden eintreffen. vmsplice gefolgt von splice von derselben PID ist die Kern-Pipe-Einschleussequenz beider Varianten. AF_RXRPC-Socket gefolgt von splice von derselben PID ist spezifisch für den RxRPC-Pfad. Beide Ketten werden via wazuh-logtest mit 9/9 bestanden validiert.

Wazuh Dashboard - Bereitgestellte Regeln

Wazuh rules 200000-200008

Regeln 200000-200008 bereitgestellt und aktiv. Compliance-Tags: PCI_DSS, HIPAA, GDPR, NIST_800_53, MITRE ATT&CK. Regeln 200007 und 200008 erreichen Stufe 15 (Kritisch) bei korrelierter Kettenerkennung.


Bereitstellung

Schritt 1 - auditd installieren```bash

Ubuntu / Debian

apt install auditd audispd-plugins -y systemctl enable --now auditd auditctl -s | grep enabled

RHEL / Amazon Linux

yum install audit -y systemctl enable --now auditd

SUSE

zypper install audit -y systemctl enable --now auditd

root@kitploit:~
### Schritt 2 - Bereitstellen von auditd Sensorregeln```bash
cp auditd/cve-dirty-frag.rules /etc/audit/rules.d/
augenrules --load
auditctl -l | grep dirty_frag

Erwartete Ausgabe (9 Regeln geladen):``` -a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_vmsplice -a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_vmsplice -a always,exit -F arch=b64 -S splice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_splice -a always,exit -F arch=b32 -S splice -F auid>=1000 -F auid!=-1 -F key=dirty_frag_splice -a always,exit -F arch=b64 -S unshare -F uid!=0 -F key=dirty_frag_ns_escape -a always,exit -F arch=b64 -S add_key -F uid!=0 -F key=dirty_frag_add_key -a always,exit -F arch=b64 -S socket -F a0=0x23 -F uid!=0 -F key=dirty_frag_rxrpc_socket -w /usr/bin/kmod -p x -k dirty_frag_modload -a always,exit -F arch=b64 -S execve -F exe=/usr/bin/su -F auid>=1000 -F auid!=-1 -F key=dirty_frag_execve_su

root@kitploit:~
### Schritt 3 - Wazuh-Erkennungsregeln bereitstellen

Fügen Sie den Inhalt von `rules/local_rules.xml` zu Ihrer vorhandenen `/var/ossec/etc/rules/local_rules.xml` hinzu, oder stellen Sie als eigenständige Datei bereit, wenn Sie die Regeln lieber nach CVE organisiert halten möchten:```bash
# Option A - append to local_rules.xml (recommended)
cat rules/local_rules.xml >> /var/ossec/etc/rules/local_rules.xml

# Option B - standalone file
cp rules/local_rules.xml /var/ossec/etc/rules/cve-2026-43284_rules.xml

#```bash

Validate syntax - must exit 0 with zero warnings

/var/ossec/bin/wazuh-analysisd -t 2>&1 | tail -5

Restart manager

systemctl restart wazuh-manager

root@kitploit:~
### Schritt 4 - SCA-Richtlinie bereitstellen```bash
# On the Wazuh manager - distribute to all agents via shared group
cp sca/cve-dirty-frag.yml /var/ossec/etc/shared/default/
chown root:wazuh /var/ossec/etc/shared/default/cve-dirty-frag.yml
chmod 660 /var/ossec/etc/shared/default/cve-dirty-frag.yml

Fügen Sie zur Agentengruppenkonfiguration hinzu (/var/ossec/etc/shared/default/agent.conf):```xml <agent_config> /var/ossec/etc/shared/cve-dirty-frag.yml </agent_config>

root@kitploit:~
> **Erforderlich:** Die Remote-Befehlsausführung muss auf jedem Agenten aktiviert sein, damit die Prüfungen `c:lsmod` und `c:systemctl` ausgeführt werden können:
>
> ```bash
> echo "sca.remote_commands=1" >> /var/ossec/etc/local_internal_options.conf
> systemctl restart wazuh-agent
> ``````bash
systemctl restart wazuh-manager

Schritt 5 - ossec.conf localfile konfigurieren

Stellen Sie sicher, dass der Wazuh-Agent das auditd-Protokoll aufnimmt. Fügen Sie innerhalb von <ossec_config> in /var/ossec/etc/ossec.conf auf jedem überwachten Host hinzu, oder verteilen Sie es über agent.conf:```xml <log_format>audit</log_format> /var/log/audit/audit.log

root@kitploit:~
---

## Validierung

### wazuh-logtest - alle 9 Regeln```bash
# SIGNAL 1 - vmsplice (rule 200000)
echo 'type=SYSCALL msg=audit(1778261582.230:1155): arch=c000003e syscall=316 success=yes exit=8 a0=3 a1=7fff00000000 a2=1 a3=0 items=0 ppid=1000 pid=93321 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=58 comm="exp" exe="/home/kr/exp" subj=unconfined key="dirty_frag_vmsplice"' | /var/ossec/bin/wazuh-logtest 2>&1 | grep -E "rule|level|200"

# SIGNAL 7 - CHAIN ESP (rules 200000 + 200007, same pid)
printf 'type=SYSCALL msg=audit(1777570010.000:200): arch=c000003e syscall=316 success=yes exit=8 a0=3 a1=7fff00000000 a2=1 a3=0 items=0 ppid=1000 pid=55001 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=58 comm="exp" exe="/home/kr/exp" key="dirty_frag_vmsplice"\ntype=SYSCALL msg=audit(1777570011.000:201): arch=c000003e syscall=275 success=yes exit=4 a0=4 a1=5 a2=6 a3=0 items=0 ppid=1000 pid=55001 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=58 comm="exp" exe="/home/kr/exp" key="dirty_frag_splice"\n' | /var/ossec/bin/wazuh-logtest 2>&1 | grep -E "rule|level|200"

Erwartet für den Kettentest:``` id: '200000' level: '10' <- vmsplice signal id: '200007' level: '15' <- CHAIN ESP confirmed - IMMEDIATE INVESTIGATION REQUIRED

root@kitploit:~
### Überprüfen, ob auditd Ereignisse nach der Exploit-Ausführung erfasst hat```bash
ausearch -k dirty_frag_vmsplice --start today 2>/dev/null | grep "exe=" | head -5
ausearch -k dirty_frag_ns_escape --start today 2>/dev/null | grep "exe=" | head -5
ausearch -k dirty_frag_execve_su --start today 2>/dev/null | grep "EUID=" | head -5

Überprüfen der von Wazuh generierten Alarme```bash

grep -E "200002|200005|200006" /var/ossec/logs/alerts/alerts.log | tail -10

root@kitploit:~
Erwarteter SCA-Score (Basissystem ohne Sensor oder auditd bereitgestellt): **50%** (3 bestanden / 3 fehlgeschlagen).

---

## Produktionsvalidierungsnachweise

### Exploit-Ausführung - Agent wazuh5beta (Ubuntu 24.04.2 LTS Kernel 6.8.0-111-generic)```
kr@wazuh5beta:~$ ./exp
root@wazuh5beta:~# date ; uname -a ; id ; whoami
Sat May 9 04:59:08 AM UTC 2026
Linux wazuh5beta 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64
uid=0(root) gid=0(root) groups=0(root)
root

Benutzer kr (uid=1000) ohne Privilegien führte die PoC-Binärdatei aus und erlangte eine Root-Shell (uid=0). Wazuh erfasste und alarmierte in Echtzeit.

Erster Validierungslauf - 8. Mai 2026 (52 Treffer)

Discover alerts - 52 hits

RegelTrefferBeschreibung
200002bestätigtunshare(CLONE_NEWUSER) - AppArmor AUDIT - ESP-Versuch erfasst
200005bestätigtkmod/modprobe-Ausführung - Laden der Module esp4/esp6/rxrpc

Kontext: Dieser Lauf wurde ausgeführt, bevor die vollständigen auditd-Sensorregeln bereitgestellt wurden. Die Regeln 200002, 200005 und 200006 wurden über die Basis-auditd-Abdeckung ausgelöst. Die vollständige Kettenregel (200007) erfordert, dass die Sensordatei cve-dirty-frag.rules aktiv ist - siehe den vollständigen Validierungslauf unten.

Vollständiger Validierungslauf - Kettenregel 200007 ausgelöst (15. Mai 2026)

Discover alerts - 13 hits - chain rule 200007

Regel 200007 wurde ausgelöst, nachdem die vollständigen auditd-Sensorregeln (cve-dirty-frag.rules) bereitgestellt wurden. Die Kette korrelierte vmsplice() + splice() von pid=5670 (exe=/home/kr/exp) innerhalb des 120-Sekunden-Fensters. Dies ist das Signal mit der höchsten Vertrauenswürdigkeit im Erkennungssatz.

SCA-Richtlinie - Bewertung 50% (Basislinie ohne bereitgestellten Sensor)

SCA policy overview

SCA Discover

Die Bewertung von 50% repräsentiert ein sauberes Basissystem, bei dem die anfälligen Module nicht vorhanden (entladen) sind, jedoch ohne den bereitgestellten Erkennungs- und Härtungsstapel. Dies ist der erwartete Ausgangspunkt für ein System, das die in diesem Repository beschriebenen Abhilfemaßnahmen noch nicht angewendet hat.

wazuh-analysisd -t: exit 0 - null Warnungen - alle 9 Regeln geladen.


Hinweis zu Ubuntu 24.04 - AppArmor und Varianten-Rückfall

Ubuntu 24.04 wird standardmäßig mit apparmor_restrict_unprivileged_userns=1 ausgeliefert (Kernel 6.1+). Diese Einstellung schränkt unshare(CLONE_NEWUSER) für unprivilegierte Prozesse ein, was die ESP-Variante (CVE-2026-43284) teilweise entschärft. Der Kernel protokolliert ein AppArmor AUDIT-Ereignis für den Versuch, was in unserem Labor die Regel 200002 auslöst.

Die Exploit-Binärdatei fällt automatisch auf die RxRPC-Variante (CVE-2026-43500) zurück, wenn der ESP-Pfad fehlschlägt. Die RxRPC-Variante benötigt kein CLONE_NEWUSER und umgeht diese Einschränkung.```bash

Check if your Ubuntu system has this restriction active

cat /proc/sys/kernel/apparmor_restrict_unprivileged_userns

1 = restricted (ESP variant blocked, RxRPC still active)

0 = not restricted (both variants active)

root@kitploit:~
Regeln 200000/200001 (vmsplice/splice) bleiben aktiv und relevant für:
- Ubuntu 22.04 und früher
- Debian 11/12
- RHEL 8/9
- Jeder Kernel mit `apparmor_restrict_unprivileged_userns=0`

Die vollständige 9/9-Regelabdeckung wurde mittels `wazuh-logtest` auf Wazuh 4.14.4 validiert.

---

## Abhilfe

### Sofortige Abhilfe (vor Kernel-Patch)

**Für die RxRPC-Variante (CVE-2026-43500):**```bash
echo 'install rxrpc /bin/false' >> /etc/modprobe.d/dirty-frag.conf
rmmod rxrpc 2>/dev/null || true

Sicher auf allen Nicht-AFS-Systemen. Beeinträchtigt nicht IPsec, kTLS, SSH oder den allgemeinen Netzwerk-Stack.

Für die ESP-Variante (CVE-2026-43284) - nur wenn keine IPsec-Tunnel verwendet werden:```bash echo 'install esp4 /bin/false' >> /etc/modprobe.d/dirty-frag.conf echo 'install esp6 /bin/false' >> /etc/modprobe.d/dirty-frag.conf rmmod esp4 esp6 2>/dev/null || true

root@kitploit:~
> **WARNUNG:** Blacklisting von `esp4`/`esp6` unterbricht strongSwan/Libreswan-IPsec-Tunnel. Nicht auf Hosts anwenden, die aktive IPsec-Verbindungen ausführen.

### Dauerhafte Behebung

Wenden Sie den Kernel-Commit `f4c50a4034e6` über Ihr Distributionskernel-Update an.```bash
# Ubuntu / Debian
apt update && apt upgrade linux-generic

# RHEL / Amazon Linux
dnf update kernel

# SUSE
zypper update kernel-default

Beziehung zu Copy Fail (CVE-2026-31431)

Beide Schwachstellen nutzen denselben authencesn-Decrypt-Sink im Linux-Kernel, um vom Angreifer kontrollierte Bytes in den Page-Cache zu schreiben. Der Unterschied liegt darin, wie sie diesen Sink erreichen.

Beide Regelsätze können sicher auf demselben Wazuh-Manager koexistieren. Die Auditd-Schlüssel-Namensräume sind getrennt und es gibt keine Regel-ID-Konflikte.


Offenlegungszeitplan

DatumEreignis
29.04.2026Öffentliche Offenlegung von Copy Fail (CVE-2026-31431)
07.05.2026Öffentliche Offenlegung von Dirty Frag durch V4bel - PoC veröffentlicht
08.05.2026Erkennungslabor abgeschlossen - Wazuh 4.14.4-Regeln validiert
08.05.2026Community-Ergebnis veröffentlicht

SCA-Richtlinienübersicht


Erkennungsregeln, Auditd-Sensorkonfiguration und SCA-Richtlinie validiert auf Wazuh 4.14.4, Ubuntu 24.04.2 LTS (Kernel 6.8.0-111-generic).


Autor

Kislley Rodrigues (m0us3r) Wazuh-Botschafter | Erkennungstechnik | Blue Team


Danksagungen

  • V4bel für die Entdeckung, öffentliche Offenlegung und den PoC von CVE-2026-43284 / CVE-2026-43500 - https://github.com/V4bel/dirtyfrag
  • Wazuh-Team für die offene SIEM/XDR-Plattform
  • Anthony Faruna und Katia Bukcovac - Wazuh-Botschafterprogramm, für die Überprüfung und das Feedback zu diesem Erkennungsergebnis
  • CloudLinux für die frühe Abhilfemaßnahmen-Referenz unter https://blog.cloudlinux.com/dirty-frag-mitigation-and-kernel-update

Wazuh

Dieses Projekt wurde im Rahmen des Wazuh-Botschafterprogramms entwickelt.

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

Tool herunterladen
RessourceLink
PoC - dirtyfrag (exp.c)https://github.com/V4bel/dirtyfrag
CVE-2026-43284https://github.com/V4bel/dirtyfrag
CVE-2026-43500https://github.com/V4bel/dirtyfrag
Kernel Fix - commit f4c50a4034e6https://github.com/torvalds/linux/commit/f4c50a4034e6
Mitigation Reference - CloudLinuxhttps://blog.cloudlinux.com/dirty-frag-mitigation-and-kernel-update
Related - Copy Fail (CVE-2026-31431)https://github.com/mym0us3r/COPY-FAIL-Detection-with-Wazuh-4.14.4
MITRE ATT&CK T1068https://attack.mitre.org/techniques/T1068/
DistributionKernelAppArmor usernsAktive VarianteGrundStatus
Wazuh Server - Ubuntu 24.04.2 LTS6.8.0-111-genericRestricted (default)RxRPCAppArmor blockiert ESP, rxrpc.ko standardmäßig geladenVERWUNDBAR
Wazuh Beta 5 - Ubuntu 24.04.2 LTS6.8.0-111-genericRestricted (default)RxRPCAppArmor blockiert ESP, rxrpc.ko standardmäßig geladenVERWUNDBAR
DistributionKernelAppArmor usernsAktive VarianteGrund
Ubuntu 24.04.46.17.0-23-genericRestricted (default)RxRPCAppArmor blockiert ESP + ESP in Kernel 6.17 gefixt
RHEL 10.16.12.0-124.49.1.el10_1.x86_64Not restrictedESP + RxRPCKeine Namespace-Einschränkung, Kernel vor ESP-Patch
openSUSE Tumbleweed7.0.2-1-defaultNot restrictedESP + RxRPCKeine Namespace-Einschränkung
CentOS Stream 106.12.0-224.el10.x86_64Not restrictedESP + RxRPCKeine Namespace-Einschränkung
AlmaLinux 106.12.0-124.52.3.el10_1.x86_64Not restrictedESP + RxRPCKeine Namespace-Einschränkung
Fedora 446.19.14-300.fc44.x86_64Not restrictedESP + RxRPCKeine Namespace-Einschränkung
RuleParentSignalKeyDepthLevel
80700decoded_as=auditdauditd-Anker (Wazuh-integriert)-00
20000080700vmsplice() - Protokoll-Header-Einschleusendirty_frag_vmsplice110
20000180700splice() - Page-Cache-Einschleusendirty_frag_splice110
20000280700unshare(CLONE_NEWUSER) - ESP-Pfaddirty_frag_ns_escape112
20000380700add_key("rxrpc") - RxRPC-Schlüsseleinschleusendirty_frag_add_key18
20000480700socket(AF_RXRPC) - RxRPC-Triggerdirty_frag_rxrpc_socket110
20000580700kmod/modprobe-Ausführungdirty_frag_modload112
20000680700execve /usr/bin/su euid=rootdirty_frag_execve_su16
200007200001 + if_matched=200000CHAIN ESP: vmsplice + splice gleiche PID/120s-215
200008200001 + if_matched=200004CHAIN RXRPC: AF_RXRPC + splice gleiche PID/120s-215
200006
bestätigt
execve /usr/bin/su - uid=kr euid=root - LPE bestätigt
RegelStufeSchlüsselAnmerkung
20000212dirty_frag_ns_escapeunshare(CLONE_NEWUSER) - ESP-Namensraumausbruch
2000038dirty_frag_add_keyadd_key() - RxRPC-Sitzungsschlüssel pflanzen
20000010dirty_frag_vmsplicevmsplice() - Protokollheader pflanzen
20000715dirty_frag_spliceEXPLOIT-KETTE ERKANNT: vmsplice + splice gleiche PID/120s - SOFORTIGE UNTERSUCHUNG ERFORDERLICH
PrüfungTitelErgebnis
43284001esp4-Kernelmodul nicht geladenBestanden
43284002esp6-Kernelmodul nicht geladenBestanden
43284003rxrpc-Kernelmodul nicht geladenBestanden
43284004esp4/esp6/rxrpc über modprobe.d deaktiviertFehlgeschlagen
43284005auditd aktiv und läuftFehlgeschlagen
43284006CVE-2026-43284 auditd-Sensorregeln bereitgestelltFehlgeschlagen
Copy Fail (CVE-2026-31431)Dirty Frag (CVE-2026-43284/43500)
Trigger-PfadAF_ALG-Socket + Splice über algif_aeadvmsplice + Splice über esp_input oder rxkad
Erforderliche BerechtigungenKeineKeine (RxRPC) / User-Namespace (ESP)
Überlappung der AbhilfemaßnahmenBlacklist algif_aeadBlacklist rxrpc / esp4 / esp6
Gegenmaßnahmenübergreifendalgif_aead-Blacklist stoppt Dirty Frag NICHTrxrpc-Blacklist stoppt Copy Fail NICHT
FIM-ErkennungNeinNein
Auditd-Schlüsselcopy_fail_*dirty_frag_*
Wazuh-Regeln199600-199607200000-200008
Prüf-IDTitelRisiko
43284001esp4-Kernelmodul nicht in den Speicher geladenHOCH
43284002esp6-Kernelmodul nicht in den Speicher geladenHOCH
43284003rxrpc-Kernelmodul nicht in den Speicher geladenHOCH
43284004esp4/esp6/rxrpc über modprobe.d deaktiviertHOCH
43284005auditd aktiv und läuftHOCH
43284006CVE-2026-43284 Dirty Frag auditd-Sensorregeln bereitgestelltHOCH