
# Ansible-Playbook zur Erkennung und Behebung von CVE-2026-31431 (Copy Fail) – Lokale Privilegienausweitung im Linux-Kernel
Kopierfehler-Erkennung und Behebung
Eine Ansible-Rolle und Playbook-Suite zur Erkennung und Behebung von CVE-2026-31431 (Copy Fail), einer kritischen lokalen Privilegienausweitung-Schwachstelle im algif_aead-Modul des Linux-Kernels.
🔗 GitHub: https://github.com/parmstro/cfDr
Der Name cfDr ist ein Wortspiel mit „Copy Fail Doctor“ – Ihr vertrauenswürdiges Mittel gegen CVE-2026-31431.
CVE-2026-31431 (CVSS 7.8) ist ein Logikfehler in der AEAD-Socket-Schnittstelle (AF_ALG) des Linux-Kernels, der 2026 entdeckt wurde. Die Schwachstelle ermöglicht es jedem nicht privilegierten lokalen Benutzer, innerhalb von Sekunden Root-Rechte zu erlangen.
algif_aead-Kernelmodul (AF_ALG-Krypto-Schnittstelle)Kernel-Versionen: Linux-Kernel >= 4.10 (veröffentlicht 2017)
Betroffene Distributionen:
Hinweis: Jede Linux-Distribution mit Kernel 4.10 oder neuer ist potenziell verwundbar.
Diese Schwachstelle ist besonders gefährlich, weil:
Sobald ein Angreifer irgendeine Form von lokalem Zugriff hat (SSH, Web-Shell, Container-Escape usw.), kann er:
Während auf vom Hersteller bereitgestellte Kernel-Patches gewartet wird, stehen mehrere Abschwächungsstrategien zur Verfügung. cfDr implementiert alle davon, mit intelligenten Empfehlungen basierend auf Ihrer Systemkonfiguration.
Nicht alle Behebungen sind gleichwertig. Hier ist, was Sie wissen müssen:
| Methode | Kann Root umgehen? | Abdeckung | Enterprise-Linux-Unterstützung |
|---|---|---|---|
| Modul-Blacklist | ✅ Ja (über insmod) | Verhindert modprobe-Laden | Alle Versionen |
| SELinux-Richtlinie | ❌ NEIN (LSM-Ebene) | Nur konfigurierte Domänen | Alle Versionen (Standard) |
| systemd seccomp | ❌ NEIN (Syscall-Filter) | Nur konfigurierte Dienste | Alle Versionen |
| eBPF LSM | ❌ NEIN (LSM-Ebene) | Systemweit (falls konfiguriert) | RHEL 9+, Fedora 34+ |
cfDr's Standardempfehlung: Flag 3 (Modul-Blacklist + SELinux)
Dies bietet zwei unabhängige Schutzebenen:``` ┌─────────────────────────────────────────────────┐ │ Layer 1: Module Blacklist │ │ • Prevents modprobe algif_aead │ │ • Persists across reboots │ │ • CAN be bypassed by malicious root (insmod) │ ├─────────────────────────────────────────────────┤ │ Layer 2: SELinux Policy │ │ • Blocks AF_ALG socket() at syscall level │ │ • Works even if module is loaded │ │ • CANNOT be bypassed from userspace │ │ • Covers user_t, unconfined_t (majority cases) │ └─────────────────────────────────────────────────┘
Result: If either layer fails, the other still protects
### Warum eine Modul-Blacklist allein nicht ausreicht
Ein entschlossener Angreifer mit Root-Zugriff kann die Modul-Blacklist umgehen:```bash
# Module blacklist DOES NOT prevent:
insmod /lib/modules/$(uname -r)/kernel/crypto/algif_aead.ko.xz
Dies ist jedoch akzeptabel, weil:
Für vollständigen, nicht umgehbaren Schutz benötigen Sie:
Modul-Blacklist + mindestens eines von:
cfDr verwendet bitweise Flags, um mehrere Minderungen zu aktivieren:
| Flag-Wert | Aktivierte Minderungen | Anwendungsfall |
|---|---|---|
| 1 | Nur Modul-Blacklist | Minimaler Schutz, Systeme ohne SELinux |
| 2 | Nur SELinux | Nur-SELinux-Umgebungen |
| 3 | Modul-Blacklist + SELinux | EMPFOHLENE Standardeinstellung |
| 5 | Modul-Blacklist + seccomp | Nicht-SELinux mit Dienst-Härtung |
| 7 | Modul-Blacklist + SELinux + seccomp | Erweiterter Schutz |
| 15 | Alle Minderungen | Maximaler Schutz (nur RHEL 9+) |
Flags berechnen: 1 (Blacklist) + 2 (SELinux) + 4 (seccomp) + 8 (eBPF) = Summe
SELinux-Schutz:
user_t, unconfined_t, httpd_t, postgresql_t, mysqld_tuser_t und unconfined_t die überwiegende Mehrheit der Angriffsszenarien absystemd seccomp-Schutz:
httpd, nginx, postgresql, mariadb, redis, memcachedeBPF-LSM-Schutz:
cfDr führt eine umfassende Bewertung über mehrere Dimensionen hinweg durch:
uname -r
- Ermittelt, ob die Kernel-Version >= 4.10 ist (verwundbarer Bereich)
- Identifiziert Kernel-Release und Distribution
#### 2. Prüfung der Modulverfügbarkeit```bash
modinfo algif_aead
algif_aead im Kernel vorhanden istlsmod | grep algif_aead
- Ermittelt, ob das Modul derzeit geladen ist
- **Kritisch**: Geladenes Modul = aktiv ausnutzbar
#### 4. Aktive Socket-Erkennung```bash
lsof -U | grep AF_ALG
Modul-Blacklist:```bash grep -E "blacklist algif_aead|install algif_aead" /etc/modprobe.d/*.conf
**SELinux-Richtlinie**:```bash
semodule -l | grep cve_2026_31431_af_alg_deny
systemd seccomp:```bash systemctl show | grep RestrictAddressFamilies
#### 6. Kategorische Statusbestimmung
cfDr ordnet jeden Host einem dieser Zustände zu:
| Status | Bedingung | Erforderliche Maßnahme |
|--------|-----------|-----------------|
| **VERWUNDBAR – Modul geladen** | Kernel >= 4.10, Modul vorhanden UND geladen | **SOFORT** – Aktiv ausnutzbar |
| **VERWUNDBAR – Modul vorhanden** | Kernel >= 4.10, Modul vorhanden, nicht geladen | **HOCH** – Kann geladen und ausgenutzt werden |
| **ENTSCHÄRFT – Modul blockiert** | Blacklist erkannt | **NIEDRIG** – Überwachen, zusätzliche Schutzebenen anwenden |
| **GESCHÜTZT – Defense-in-depth** | Blacklist + SELinux/seccomp/eBPF | **KEINE** – Vollständig geschützt |
| **NICHT VERWUNDBAR – Alter Kernel** | Kernel < 4.10 | **KEINE** – Stammt aus der Zeit vor der Schwachstelle |
| **NICHT VERWUNDBAR – Kein Modul** | algif_aead-Modul nicht im Kernel | **KEINE** – Modul nicht verfügbar |
### Bewertungsausgabe
Jeder Host erhält:
1. **Konsolenausgabe**: Kurzer einzeiliger Status
2. **Detaillierte Datei**: `/root/cve-2026-31431-assessment-<hostname>.txt`
3. **JSON-Bericht**: `/tmp/cve-2026-31431-<hostname>.json`
Beispiel für eine kurze Ausgabe:```
webserver1.example.com: VULNERABLE - Module exists and can be loaded
dbserver2.example.com: PROTECTED - Defense-in-depth (Module Blacklist + SELinux)
appserver3.example.com: NOT VULNERABLE - Module not available
cfDr ist als moderne Ansible-Rolle mit mehreren Playbook-Einstiegspunkten aufgebaut:``` cfDr/ ├── roles/ │ └── cve_2026_31431/ # Main role │ ├── tasks/ │ │ ├── main.yml # Role orchestration │ │ ├── assessment.yml # Vulnerability detection │ │ ├── remediation_module_blacklist.yml │ │ ├── remediation_selinux.yml │ │ ├── remediation_seccomp.yml │ │ ├── remediation_ebpf.yml │ │ ├── reporting.yml # Status reporting │ │ └── inventory_update.yml # Inventory generation │ ├── templates/ # Config file templates │ ├── defaults/ # Default variables │ └── handlers/ # Service restarts, etc. ├── quickstart.yml # Simplest usage ├── sample_playbook.yml # Multiple examples └── cve_2026_31431_playbook.yml # Full-featured playbook
### Ausführungsablauf
#### Bewertungsmodus (Standard)```
1. Pre-flight checks
↓
2. Gather system facts
↓
3. Detect kernel version
↓
4. Check module availability
↓
5. Check current load status
↓
6. Check existing mitigations
↓
7. Determine vulnerability status
↓
8. Flag vulnerable hosts
↓
9. Generate reports
↓
10. Create summary
↓
11. [Optional] Generate inventory
apply_remediation=true)```1-8. [Same as Assessment Mode] ↓ 9. Apply Module Blacklist (if flag 1) • Unload module if loaded • Create blacklist config • Update initramfs/initrd • Verify blacklist works ↓ 10. Apply SELinux Policy (if flag 2) • Install policy packages • Compile policy module • Install policy • Verify policy active ↓ 11. Apply systemd seccomp (if flag 4) • Create drop-in files • Reload systemd • Restart services • Verify filters active ↓ 12. Apply eBPF LSM (if flag 8) • Compile eBPF program • Load into kernel • Verify program attached ↓ 13. Re-assess protection status ↓ 14. Generate reports ↓ 15. Create summary
### Details zur Behebung
#### Modul-Blacklist (Flag 1)
**Was es tut**:
1. Entlädt das Modul `algif_aead`, falls es derzeit geladen ist (`rmmod algif_aead`)
2. Erstellt `/etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf`: ```
blacklist algif_aead
install algif_aead /bin/true
update-initramfs -udracut -fmodprobe geladen werden kannSchutz: Sofortig, kein Neustart erforderlich Persistenz: Übersteht Neustarts und Kernel-Updates
Was sie tut:
policycoreutilspolicycoreutils-python-utilsselinux-policy-develcheckpolicysemodule -i cve_2026_31431_af_alg_deny.ppGeschützte Domänen (Standard):
user_t - Prozesse regulärer Benutzerunconfined_t - Unbeschränkte Prozessehttpd_t - Apache-Webserverpostgresql_t - PostgreSQL-Datenbankmysqld_t - MySQL/MariaDB-DatenbankSchutz: Blockiert auf der LSM-Ebene, kann nicht umgangen werden Persistenz: Richtlinie übersteht Neustarts
Was es tut:
/etc/systemd/system/<service>.service.d/90-cve-2026-31431-block-af-alg.confRestrictAddressFamilies=~AF_ALG hinzuGeschützte Dienste (Standard):
httpd, nginx - Webserverpostgresql, mariadb - Datenbankenredis, memcached - Cache-ServerSchutz: Blockiert die Socket-Erstellung auf Syscall-Ebene pro Dienst Persistenz: Übersteht Neustarts und Dienst-Updates
Was es tut:
Anforderungen:
CONFIG_BPF_LSM=ySchutz: Dynamische, programmierbare systemweite Richtlinie Persistenz: Erfordert einen Systemdienst, der beim Booten neu geladen wird
cfDr kann gebrauchsfertige Inventardateien generieren, die nur verwundbare Hosts enthalten:
Generierte Dateien:``` inventory_output/ ├── vulnerable_hosts.yml # YAML inventory ├── vulnerable_hosts.ini # INI inventory ├── group_vars_vulnerable_hosts.yml # Group variables └── host_vars/ ├── host1.yml # Per-host details └── host2.yml
**Enthalten**:
- Ergebnisse der Schwachstellenbewertung
- Empfohlene Mitigations-Flags (pro Host berechnet)
- Systemdetails (Kernel-Version, SELinux-Status)
- Sofort anwendbare Behebungs-Einstellungen
**Intelligente Empfehlungen**:
- Flag 3 (Modul-Blacklist + SELinux), wenn SELinux aktiviert ist
- Flag 1 (nur Modul-Blacklist), wenn SELinux nicht verfügbar ist
- Pro Host über generierte `host_vars` anpassbar
---
## Auswirkungen auf die Systemkryptografie
### Kritischer Befund: Standard-RHEL-Kryptografie ist NICHT betroffen
**Konfidenzniveau**: ⭐⭐⭐⭐⭐ **HOCH** - Siehe [IPsec/XFRM-Validierungsbericht](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md) für eine umfassende Analyse
**Gute Nachrichten für Enterprise-Linux-Bereitstellungen:** Basierend auf maßgeblichen Quellen wie [CERT-EU](https://cert.europa.eu/publications/security-advisories/2026-005/), [CloudLinux](https://blog.cloudlinux.com/cve-2026-31431-copy-fail-mitigation-and-patches) und [HPCsec](https://www.hpcsec.com/2026/04/30/advisory-cve-2026-31431-copy-fail-local-privilege-escalation-via-af-alg-algif_aead/) haben **cfDr-Mitigationen minimale bis keine Auswirkungen** auf die Standard-RHEL-Systemkryptografie und -Dienste.
### Was NICHT betroffen ist
Die folgenden kritischen RHEL-Kryptografiesysteme **verwenden kein AF_ALG** und sind von unseren Behebungen vollständig unbeeinflusst:
#### Kern-Systemdienste
| Dienst/Komponente | Funktion | Status |
|------------------|----------|--------|
| **dm-crypt / LUKS** | Vollständige Festplattenverschlüsselung | ✅ Nicht betroffen |
| **IPsec / XFRM** | VPN und verschlüsselte Netzwerke | ✅ Nicht betroffen ([validiert](https://github.com/parmstro/cfdr/blob/HEAD/docs/IPSEC_VALIDATION.md)) |
| **kTLS** | Kernel-TLS-Implementierung | ✅ Nicht betroffen |
| **SSH** | Sichere Shell-Verbindungen | ✅ Nicht betroffen |
#### Kryptografie-Bibliotheken
| Bibliothek | Verwendung | Status |
|---------|-------|--------|
| **OpenSSL** (Standard) | SSL/TLS, Zertifikate, allgemeine Kryptografie | ✅ Nicht betroffen |
| **GnuTLS** (Standard) | TLS-Implementierung | ✅ Nicht betroffen |
| **NSS** | Mozilla Network Security Services | ✅ Nicht betroffen |
| **Kernel-Keyring** | Kernel-Schlüsselverwaltung | ✅ Nicht betroffen |
#### Kritische Infrastruktur
- ✅ **SSL/TLS** - Die gesamte Webserver-Verschlüsselung ist nicht betroffen
- ✅ **HTTPS** - Sicherer Webverkehr ist nicht betroffen
- ✅ **E-Mail-Verschlüsselung** (S/MIME, PGP) - Nicht betroffen
- ✅ **Zertifikatsoperationen** - Nicht betroffen
- ✅ **Datenbankverschlüsselung** - Nicht betroffen
- ✅ **Backup-Verschlüsselung** - Nicht betroffen
### Warum Standarddienste kein AF_ALG verwenden
Wie in der [Linux-Kernel-Krypto-Dokumentation](https://www.kernel.org/doc/html/v4.11/crypto/userspace-if.html) dokumentiert, ist **AF_ALG eine Userspace-Socket-Schnittstelle** zur Kernel-Kryptografie, die in Linux 2.6.38 eingeführt wurde. Die meisten RHEL-Systemdienste verwenden die Kernel-Krypto-API jedoch **direkt**, anstatt über die AF_ALG-Socket-Ebene zu gehen.
Laut [CERT-EUs Sicherheitshinweis](https://cert.europa.eu/publications/security-advisories/2026-005/):
> „dm-crypt / LUKS, kTLS, IPsec, SSH und Standard-OpenSSL-/GnuTLS-Builds hängen nicht von AF_ALG ab und sind von AF_ALG-Einschränkungen nicht betroffen."
Die Architektur sieht wie folgt aus:```
┌─────────────────────────────────────────────┐
│ Userspace Applications │
├─────────────────────────────────────────────┤
│ Standard Crypto Libraries │
│ (OpenSSL, GnuTLS, NSS) │
│ │ │
│ └─────> In-Kernel Crypto API ──────────┐ │
│ (Direct access) │ │
├──────────────────────────────────────────┼──┤
│ AF_ALG Socket Interface (RARELY USED) │ │
│ │ │ │
│ └─────> In-Kernel Crypto API ──────────┘ │
├─────────────────────────────────────────────┤
│ Kernel Crypto Subsystem │
│ (AES, SHA, AEAD algorithms) │
└─────────────────────────────────────────────┘
Standard services bypass AF_ALG entirely
Laut R-fx Networks Analyse:
„Für die meisten HPC-Umgebungen wird dies nichts kaputt machen – AF_ALG ist eine Userspace-Eingangstür zur Kernel-Krypto, die fast niemand tatsächlich nutzt."
Nur diese extrem seltenen Konfigurationen könnten betroffen sein:
NICHT standardmäßig auf RHEL. Die afalg-Engine muss explizit konfiguriert werden:```bash
openssl engine afalg
**Anwendungsfall:** Hardware-Krypto-Beschleunigungs-Offload
**Verbreitung:** Extrem selten in Standardbereitstellungen
**Auswirkung:** Anwendung fällt auf Software-Krypto zurück
#### 2. Benutzerdefinierte Anwendungen mit libkcapi
**Direkte AF_ALG-Socket-Programmierung** mit spezialisierten Bibliotheken.
**Anwendungsfall:** Spezialisierte Sicherheitstools oder benutzerdefinierte Krypto-Anwendungen
**Verbreitung:** In Standard-Unternehmensumgebungen nahezu nicht vorhanden
**Auswirkung:** Anwendungsspezifisch, würde Codeänderungen erfordern
#### 3. Hardware-Krypto-Offload-Tools
**Spezialisierte Tools**, die AF_ALG für Hardware-Beschleunigung nutzen.
**Anwendungsfall:** Hochleistungsrechnen, kryptografische Hardware-Beschleuniger
**Verbreitung:** Nur in spezialisierten Hochsicherheits- oder HPC-Umgebungen
**Auswirkung:** Rückfall auf Software-Krypto
### Offizielle Position von Red Hat
Laut [Red Hat Bugzilla #2460538](https://bugzilla.redhat.com/show_bug.cgi?id=2460538):
- **CVE:** CVE-2026-31431
- **Schweregrad:** Hoch (CVSS 7.8)
- **Status:** Behoben in Kernel 6.19.12+
- **Fix:** Macht die In-Place-Optimierung von 2017 rückgängig (Commit 72548b093ee3)
- **Auswirkung:** „Kein Vorteil beim In-Place-Betrieb in algif_aead, da Quelle und Ziel aus unterschiedlichen Mappings stammen"
### Auswirkungsbewertung nach Mitigations-Flag
| Flag | Mitigationen | Auswirkung auf Standarddienste |
|------|--------------|--------------------------------|
| 1 | Modul-Blacklist | ✅ Keine Auswirkung – AF_ALG wird nicht verwendet |
| 2 | SELinux-Richtlinie | ✅ Keine Auswirkung – Blockiert ungenutzten Syscall |
| **3** | **Blacklist + SELinux** | ✅ **Keine Auswirkung – EMPFOHLEN** |
| 5 | Blacklist + seccomp | ✅ Keine Auswirkung – Pro Dienst sicher |
| 7 | Blacklist + SELinux + seccomp | ✅ Keine Auswirkung – Defense-in-Depth |
| 15 | Alle Mitigationen | ✅ Keine Auswirkung – Maximaler Schutz |
### Verifizierung nach der Behebung
Nach der Anwendung der cfDr-Mitigationen verifizieren Sie, dass kritische Dienste weiterhin ordnungsgemäß funktionieren:```bash
# Test SSH connectivity
ssh localhost echo "SSH working"
# Test HTTPS (if web server running)
curl -k https://localhost
# Test LUKS encryption (if using encrypted volumes)
cryptsetup status /dev/mapper/luks-volume
# Test IPsec (if VPN configured)
ipsec status
# Test system services
systemctl status sshd
systemctl status httpd
systemctl status postgresql
# Check for any service failures
systemctl --failed
Erwartetes Ergebnis: Alle Dienste funktionieren weiterhin normal.
Mehrere maßgebliche Sicherheitsorganisationen bestätigen unsere Bewertung:
CERT-EU (30. April 2026):
„dm-crypt / LUKS, kTLS, IPsec, SSH und Standard-Builds von OpenSSL / GnuTLS hängen nicht von AF_ALG ab"
Sysdig (29. April 2026):
Dokumentiert, dass Standard-Krypto-Operationen In-Kernel-APIs verwenden, nicht AF_ALG-Sockets
R-fx Networks (2. Mai 2026):
„Hosting-Workloads nutzen AF_ALG nicht legitim, sodass es sicher deaktiviert werden kann als Maßnahme, ohne Produktionsdienste zu beeinträchtigen"
HPCsec (30. April 2026):
„Für die meisten HPC-Umgebungen wird dies nichts brechen – AF_ALG ist eine Userspace-Eingangstür zur Kernel-Krypto, die fast niemand tatsächlich nutzt"
Für Standard-RHEL/CentOS/Fedora-Umgebungen:
Entscheidungsmatrix:
| Ihre Umgebung | Empfehlung | Grund |
|---|---|---|
| Standard-RHEL-Server | Flag 3 jetzt bereitstellen | Null Auswirkungen, sofortiger Schutz |
| RHEL mit benutzerdefinierter Krypto | Zuerst auf AF_ALG-Nutzung prüfen | Äußerst unwahrscheinlich, aber verifizieren |
| Entwicklungssysteme | Flag 3 jetzt bereitstellen | Gleich wie Produktion |
| Hochsicherheitsumgebungen | Flag 7 oder 15 bereitstellen | Maximale Defense-in-Depth |
Die Maßnahmen von cfDr sind für alle Standard-RHEL-Bereitstellungen sicher. Das algif_aead-Modul und die AF_ALG-Socket-Schnittstelle werden von keiner kritischen System-Kryptografie auf Enterprise-Linux-Systemen verwendet.
Was das bedeutet:
Das einzige theoretische Risiko betrifft benutzerdefinierte Anwendungen, die explizit für die Nutzung von AF_ALG-Sockets programmiert wurden – ein so seltenes Szenario, dass mehrere Sicherheitsorganisationen unabhängig voneinander bestätigt haben, dass es sicher ist, AF_ALG in Unternehmensumgebungen zu blockieren.
Dieser Workflow balanciert Gründlichkeit mit betrieblicher Sicherheit:
ansible-playbook -i inventory quickstart.yml
**Was passiert**:
- Alle Hosts werden bewertet
- Es werden keine Änderungen vorgenommen
- Berichte werden erstellt
**Überprüfung**:
- Prüfen Sie `/root/cve-2026-31431-assessment-<hostname>.txt` auf jedem Host
- Überprüfen Sie die Zusammenfassungsausgabe
- Identifizieren Sie verwundbare Hosts
**Erwartete Ausgabe**:```
CVE-2026-31431 Summary Report
==========================================
Total hosts scanned: 50
Vulnerable hosts: 12
VULNERABLE HOSTS REQUIRING REMEDIATION:
web1.example.com, web2.example.com, db1.example.com, ...
DEFAULT RECOMMENDED MITIGATION: Flag 3
- Module Blacklist (1) + SELinux (2) = Defense-in-depth
- Module Blacklist alone can be bypassed by root (via insmod)
- SELinux blocks syscall even if blacklist is bypassed
- Covers user_t/unconfined_t (vast majority of scenarios)
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true -e inventory_output_dir=./vulnerable_hosts
**Was passiert**:
- Anfällige Hosts werden identifiziert
- Empfohlene Minderungs-Flags werden pro Host berechnet
- Inventardateien werden generiert
**Überprüfung**:```bash
# Check generated inventory
cat vulnerable_hosts/vulnerable_hosts.yml
# Review per-host recommendations
ls vulnerable_hosts/host_vars/
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'dev*:test*'
**Was passiert**:
- Mitigationen nur auf Test-/Entwicklungshosts angewendet
- Dienste neu gestartet (für seccomp)
- Verifizierung durchgeführt
**Verifizieren**:```bash
# Re-scan test hosts
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml quickstart.yml --limit 'dev*:test*'
# Check for "PROTECTED - Defense-in-depth" status
Testanwendungen:
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'web*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'app*'
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml
-e apply_remediation=true
--limit 'db*'
**Was passiert**:
- Jede Stufe wird separat behoben
- Dienste werden jeweils eine Stufe nach der anderen neu gestartet
- Ermöglicht eine stufenweise Validierung
**Zwischen den Stufen überwachen**:
- Dienstverfügbarkeit prüfen
- Anwendungsprotokolle überprüfen
- Benutzererfahrung verifizieren
#### Schritt 5: Verifizierung und Dokumentation```bash
# Final assessment of all hosts
ansible-playbook -i inventory quickstart.yml
Dokument:
Total hosts scanned: 50 Vulnerable hosts: 0
All hosts protected with defense-in-depth mitigations
### Notfall-Reaktions-Workflow
Für **aktiv ausgenutzte** Systeme oder **unmittelbare Bedrohungen**:```bash
# Immediate assessment and remediation
ansible-playbook -i inventory quickstart.yml -e apply_remediation=true -e mitigation_flags=3
# Re-verify all hosts
ansible-playbook -i inventory quickstart.yml
Verwenden Sie diesen Ansatz, wenn:
Vorsicht: Dies wendet Gegenmaßnahmen gleichzeitig auf ALLE verwundbaren Hosts an. Überwachen Sie genau.
Für laufende Compliance und Erkennung neuer Systeme:```bash
0 2 * * 0 ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
**Integration mit**:
- Configuration-Management-Datenbank (CMDB)
- Security Information and Event Management (SIEM)
- Ticketing-Systeme zur Verfolgung von Abhilfemaßnahmen
### Benutzerdefinierter Abhilfe-Workflow
Für **spezifische Anforderungen** über Flag 3 hinaus:```bash
# Use enhanced protection (Flag 7: Blacklist + SELinux + seccomp)
ansible-playbook -i inventory quickstart.yml \
-e apply_remediation=true \
-e mitigation_flags=7
# Or customize per-host via inventory
# Edit generated host_vars/*.yml files to set custom flags
vim vulnerable_hosts/host_vars/web1.example.com.yml
# Change: recommended_mitigation_flags: 7
# Apply customized settings
ansible-playbook -i vulnerable_hosts/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
Nach der Behebung die Schutzmaßnahmen verifizieren:```bash
sudo lsmod | grep algif_aead
sudo modprobe algif_aead
cat /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf
sudo semodule -l | grep cve_2026_31431
systemctl show httpd | grep RestrictAddressFamilies
---
## Schnellstart
Für Benutzer, die sofort loslegen möchten:
### Einfachste Verwendung```bash
# Clone repository
git clone https://github.com/parmstro/cfDr.git
cd cfDr
# Step 1: Assess all hosts
ansible-playbook -i inventory quickstart.yml
# Step 2: Apply recommended mitigations to vulnerable hosts
ansible-playbook -i inventory quickstart.yml --limit vulnerable_hosts -e apply_remediation=true
ansible-playbook -i /path/to/your/inventory quickstart.yml
ansible-playbook -i /path/to/your/inventory quickstart.yml
--limit vulnerable_hosts
-e apply_remediation=true
### Generieren des Schwachstelleninventars```bash
# Scan and create inventory of vulnerable hosts
ansible-playbook -i inventory quickstart.yml -e generate_inventory=true
# Review generated files
ls inventory_output/
# Apply mitigations using generated inventory
ansible-playbook -i inventory_output/vulnerable_hosts.yml cve_2026_31431_playbook.yml \
-e apply_remediation=true
Standard-Mitigationen pro Playbook-Lauf überschreiben:```bash
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=1
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=2
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=3
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=7
ansible-playbook quickstart.yml -e apply_remediation=true -e mitigation_flags=15
### Anpassen von SELinux-Domains
Bearbeiten Sie `roles/cve_2026_31431/defaults/main.yml`:```yaml
# Add additional domains to protect
selinux_denied_domains:
- user_t
- unconfined_t
- httpd_t
- postgresql_t
- mysqld_t
- custom_app_t # Your custom domain
- another_service_t
Bearbeiten Sie roles/cve_2026_31431/defaults/main.yml:```yaml
seccomp_protected_services:
### Benutzerdefiniertes Inventar-Ausgabeverzeichnis```bash
# Specify custom output location
ansible-playbook quickstart.yml \
-e generate_inventory=true \
-e inventory_output_dir=/path/to/output
Die sample_playbook.yml enthält mehrere Beispiele:```yaml
### Anforderungen
- **Ansible**: 2.9 oder höher (2.15+ empfohlen)
- **Privilegierter Zugriff**: sudo/root auf den Zielhosts
- **Python**: 2.7 oder 3.5+ auf den Zielhosts
- **Unterstützte Betriebssysteme**: Red Hat Enterprise Linux, CentOS, Fedora (Debian/Ubuntu eingeschränkte Unterstützung)
---
## Zusätzliche Ressourcen
### CVE-Informationen und Analyse
**Offizielle Quellen**:
- [NVD - CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
- [MITRE CVE-Eintrag](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-31431)
**Sicherheitsforschung und -analyse**:
- [Sysdig - CVE-2026-31431-Analyse](https://www.sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds)
- [The Hacker News - Copy-Fail-Schwachstelle](https://thehackernews.com/2026/04/new-linux-copy-fail-vulnerability.html)
- [CERT-EU-Sicherheitshinweis](https://cert.europa.eu/publications/security-advisories/2026-005/)
- [Help Net Security - Copy-Fail-Details](https://www.helpnetsecurity.com/2026/04/30/copyfail-linux-lpe-vulnerability-cve-2026-31431/)
### Verwandte Mitigationsprojekte
Community-Beiträge zur Mitigation von CVE-2026-31431:
- **[block-copyfail](https://github.com/atgreen/block-copyfail)** - eBPF-LSM-Implementierung von Anthony Green
- Umfassende eBPF-basierte Mitigation
- Systemweiter Schutz für moderne Kernel
- Quelle für cfDrs eBPF-Implementierung
- **[Blastwall](https://gprocunier.github.io/blastwall/demo.html)** - SELinux-Policy-Framework von Greg Procunier
- Erweitertes SELinux-Policy-Management
- Multi-CVE-Schutzframework
- Quelle für cfDrs SELinux-Implementierung
### Red Hat-spezifische Ressourcen
**Wissensdatenbank-Artikel**:
- [Red Hat Customer Portal - CVE-2026-31431](https://access.redhat.com/security/cve/cve-2026-31431)
- [Red Hat Security Data - Betroffene Produkte](https://access.redhat.com/security/data/metrics/)
**Mitigationsanleitungen**:
- [SELinux für Enterprise Linux - Benutzerhandbuch](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/using_selinux/)
- [systemd-Sicherheitsfunktionen](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_systems_using_the_rhel_9_web_console/securing-systemd-services_system-management-using-the-rhel-9-web-console)
### Dokumentation
**cfDr Erweiterte Dokumentation**:
- [Enterprise-Linux-Mitigationsanleitung](https://github.com/parmstro/cfdr/blob/HEAD/enterprise-linux-mitigations.md) - Umfassender Vergleich aller Mitigationsmethoden
- [SELinux-Mitigationsanleitung](https://github.com/parmstro/cfdr/blob/HEAD/selinux-mitigation.md) - Detaillierte SELinux-Policy-Implementierung
- [seccomp-Mitigationsanleitung](https://github.com/parmstro/cfdr/blob/HEAD/seccomp-mitigation.md) - systemd-seccomp-Filterimplementierung
- [eBPF-LSM-Mitigationsanleitung](https://github.com/parmstro/cfdr/blob/HEAD/ebpf-lsm-mitigation.md) - eBPF-LSM-Programmimplementierung
- [docs/CONTRIBUTORS.md](https://github.com/parmstro/cfdr/blob/HEAD/CONTRIBUTORS.md) - Beitragsrichtlinien und Danksagungen
**Ansible-Dokumentation**:
- [Ansible-Benutzerhandbuch](https://docs.ansible.com/ansible/latest/user_guide/)
- [Ansible Best Practices](https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html)
---
## Überwachung auf Patches
### Red Hat Enterprise Linux
**Primäre Quelle**: Red Hat Customer Portal
- **Sicherheitshinweise**: https://access.redhat.com/security/security-updates/
- **Errata-Hinweise**: https://access.redhat.com/errata/
- **CVE-Tracker**: https://access.redhat.com/security/cve/cve-2026-31431
**Benachrichtigungsmethoden**:
1. **E-Mail-Benachrichtigungen** (empfohlen):
- Melden Sie sich im Red Hat Customer Portal an
- Navigieren Sie zu: Kontoeinstellungen → Benachrichtigungen
- Aktivieren Sie: „Sicherheitshinweise" und „Produkt-Errata"
- Wählen Sie: Die von Ihnen verwalteten RHEL-Versionen
2. **RSS-Feeds**:
- RHEL 7 Security: https://access.redhat.com/blogs/766093/feed
- RHEL 8 Security: https://access.redhat.com/blogs/1683903/feed
- RHEL 9 Security: https://access.redhat.com/blogs/5480361/feed
- Alle Sicherheitshinweise: https://access.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
3. **API-Zugriff**: ```bash
# Check for kernel security updates
curl -H "Accept: application/json" \
"https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json"
Automatisierte Überwachung: ```bash
sudo yum install yum-plugin-security
sudo yum updateinfo list security
sudo yum updateinfo list security kernel
Wonach suchen:
Beispielformat für ein Advisory:``` RHSA-2026:XXXX - Important: kernel security update Severity: Important CVEs: CVE-2026-31431 Affected Products: RHEL 7, 8, 9
### CentOS / Rocky Linux / AlmaLinux
**CentOS Stream**:
- **Ankündigungen**: https://lists.centos.org/pipermail/centos-announce/
- **Sicherheits-Mailingliste**: https://lists.centos.org/mailman/listinfo/centos-security-announce
**Rocky Linux**:
- **Security-Tracker**: https://errata.rockylinux.org/
- **Ankündigungen**: https://rockylinux.org/news/
**AlmaLinux**:
- **Errata**: https://errata.almalinux.org/
- **Sicherheit**: https://wiki.almalinux.org/security/
### Fedora
**Primärquelle**: Fedora-Projekt
- **Updates-System**: https://bodhi.fedoraproject.org/
- **Sicherheitsliste**: https://lists.fedoraproject.org/archives/list/[email protected]/
**Benachrichtigungsmethoden**:```bash
# Subscribe to security announcements
# Visit: https://lists.fedoraproject.org/admin/lists/security-announce.lists.fedoraproject.org/
# Check for updates
sudo dnf check-update kernel
# View available security updates
sudo dnf updateinfo list security
Primärquelle: Ubuntu Security Notices
Benachrichtigungsmethoden:```bash
sudo apt update sudo apt list --upgradable | grep security
sudo apt install ubuntu-security-tools usn list --cve CVE-2026-31431
### Debian
**Primärquelle**: Debian Security Tracker
- **Security Tracker**: https://security-tracker.debian.org/tracker/CVE-2026-31431
- **Security-Ankündigungen**: https://www.debian.org/security/
**Benachrichtigungsmethoden**:```bash
# Subscribe to Debian Security Announcements
# Visit: https://lists.debian.org/debian-security-announce/
# Check for security updates
sudo apt update
sudo apt list --upgradable
Primärquelle: SUSE Security
Benachrichtigungsmethoden:```bash
sudo zypper list-patches --category security
sudo zypper info --cve CVE-2026-31431
### Upstream-Kernel
**Linux-Kernel-Mailingliste**:
- **LKML-Archive**: https://lkml.org/
- **Sicherheitsliste**: https://www.kernel.org/category/releases.html
**Git-Repository**:```bash
# Monitor kernel git for patches
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
# Search for CVE-2026-31431 patches
git log --all --grep="CVE-2026-31431"
Erstellen Sie ein Überwachungsskript für Ihre Umgebung:```bash #!/bin/bash
DISTRO=$(grep ^ID= /etc/os-release | cut -d= -f2 | tr -d '"')
case $DISTRO in rhel|centos|rocky|alma) yum updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; fedora) dnf updateinfo list security kernel 2>/dev/null | grep -i CVE-2026-31431 ;; ubuntu|debian) apt-get update -qq apt-cache show linux-image-$(uname -r) | grep CVE-2026-31431 ;; sles|opensuse*) zypper info --cve CVE-2026-31431 kernel-default ;; esac
curl -s "https://access.redhat.com/labs/securitydataapi/cve/CVE-2026-31431.json" |
jq -r '.affected_release[] | select(.package | startswith("kernel")) |
"(.product_name): (.advisory) - (.package)"'
**Mit cron planen**:```bash
# Check daily for patches
0 6 * * * /usr/local/bin/check-cve-2026-31431-patch.sh | mail -s "CVE-2026-31431 Patch Check" [email protected]
Patch-Verfügbarkeit prüfen: ```bash
sudo yum check-update kernel # RHEL/CentOS/Fedora sudo apt update && apt list --upgradable linux-image-* # Ubuntu/Debian
Versionshinweise prüfen:
In einer Nicht-Produktionsumgebung testen: ```bash
sudo yum update kernel # RHEL/CentOS/Fedora sudo apt upgrade linux-image-* # Ubuntu/Debian sudo reboot
Wirksamkeit des Patches überprüfen: ```bash
uname -r
ansible-playbook -i inventory quickstart.yml
Produktions-Rollout planen:
Temporäre Maßnahmen entfernen (optional): ```bash
sudo rm /etc/modprobe.d/blacklist-algif_aead-cve-2026-31431.conf sudo semodule -r cve_2026_31431_af_alg_deny # SELinux policy
Empfehlung: Auch nach dem Patchen des Kernels sollten Sie Defense-in-Depth-Maßnahmen beibehalten, um sich vor zukünftigen Schwachstellen zu schützen.
Einen Fehler gefunden oder eine Funktionsanfrage?
Wir freuen uns über Beiträge! Siehe docs/CONTRIBUTORS.md für:
cfDr basiert auf dem kollektiven Fachwissen von Sicherheitsexperten:
Siehe docs/CONTRIBUTORS.md für vollständige Beitragsdetails.
Dieses Projekt wird unter der MIT-Lizenz für Schwachstellenbewertungs- und Behebungszwecke bereitgestellt.
Siehe LICENSE für Details.
WICHTIG: Dieses Tool bietet temporäre Mitigationen, während auf vom Anbieter bereitgestellte Kernel-Patches gewartet wird. Diese Mitigationen reduzieren das Risiko erheblich, bieten jedoch möglicherweise nicht in allen Szenarien vollständigen Schutz.
cfDr wird "wie besehen" ohne Gewährleistung bereitgestellt. Beachten Sie immer:
Die Mitwirkenden und Betreuer von cfDr sind nicht verantwortlich für Schäden oder Datenverluste, die durch die Verwendung dieses Tools entstehen.
Zuletzt aktualisiert: 2026-05-02T23:30:00Z