CVE-2016-5195
Linux Kernel — Linux Kernel Race Condition Vulnerability
Beschreibung
Racebedingung in mm/gup.c im Linux-Kernel 2.x bis 4.x vor 4.8.3 ermöglicht es lokalen Benutzern, durch die fehlerhafte Handhabung einer Kopie-bei-Schreib-Funktion (COW) auf eine schreibgeschützte Speicherzuordnung zuzugreifen und so Berechtigungen zu erlangen, wie im Oktober 2016 ausgenutzt, bekannt als "Dirty COW".
Behebung & Mitigation
Warum sofort handeln?
Priorisierung
Dirty COW (CVE-2016-5195) ist eine der bekanntesten Linux-Privilege-Escalation-Schwachstellen überhaupt und wurde bereits im Oktober 2016 aktiv ausgenutzt — der EPSS-Wert von 83,5 % (Perzentile 99,7 %) spiegelt die extrem hohe Ausnutzungswahrscheinlichkeit wider. Der CVSS-v3-Vektor bewertet die Schwachstelle als HIGH (7.0, AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H), wobei der lokale Angriffsvektor die unmittelbare Gefahr für Systeme mit Shell-Zugang — insbesondere Shared-Hosting, CI/CD-Pipelines, Container-Hosts und Systeme mit SSH-Zugang für mehrere Nutzer — erheblich erhöht. Für KRITIS-Organisationen im NIS2-Scope ist die Priorität hoch, wenn ungepatchte Linux-Systeme mit interaktivem Nutzerzugang betrieben werden; der fehlende CISA-Ransomware-Flag ändert nichts daran, dass die Schwachstelle in Post-Exploitation-Ketten zur dauerhaften Kompromittierung genutzt wird.
Runbook · Schritt 1
Sofort-Response (0-24 h)
- Kernel-Version auf allen Linux-Systemen prüfen (
uname -r): Systeme mit Kernel < 4.8.3 sind verwundbar — Patch sofort einspielen (Distribution-spezifische Pakete: RHEL/CentOS viakernel-Paket aus Red Hat Security Advisory RHSA-2016:2098 o. ä., Ubuntu via USN-3107-1/-3107-2, Debian via DSA-3696-1). - Systeme, die nicht sofort gepatcht werden können, vom Netzwerk isolieren oder Zugang auf vertrauenswürdige, authentifizierte Nutzer beschränken — Dirty COW erfordert lokalen Zugriff, daher ist die Angriffsfläche primär über Shell-Zugang, SSH oder Web-Shells gegeben.
- Alle interaktiven Nutzerkonten auf betroffenen Systemen auf unerwartete UID-0-Einträge oder SUID-Binaries prüfen (
find / -perm -4000 -user root 2>/dev/null). - Laufende Prozesse auf verdächtige Kindprozesse von Webservern, Datenbank-Diensten oder Container-Runtimes untersuchen (
ps auxf, EDR-Prozessbaum). - Auf Container-Hosts (Docker, LXC) sicherstellen, dass der Host-Kernel gepatcht ist — Container teilen den Host-Kernel und sind direkt betroffen.
- Nach dem Patch System-Neustart durchführen, da der neue Kernel erst nach Reboot aktiv wird; Kexec als Notfall-Alternative prüfen, wenn Downtime kritisch ist.
Runbook · Schritt 2
Mitigation-Layer
- Netzwerksegmentierung / Zugriffskontrolle: SSH-Zugang auf Bastion-Hosts beschränken; direkte interaktive Logins auf Produktionssystemen deaktivieren. Jede Reduktion der Anzahl lokaler Nutzer verkleinert die Angriffsfläche direkt.
- Least Privilege / IAM: Unprivilegierte Nutzerkonten auf das absolute Minimum reduzieren;
sudo-Rechte auditieren und nicht benötigte Einträge entfernen (visudo,/etc/sudoers.d/). - Kernel-Härtung (kurzfristig):
vm.mmap_min_addrauf einen erhöhten Wert setzen (sysctl -w vm.mmap_min_addr=65536) — reduziert Null-Pointer-Exploitpfade, schützt aber nicht vollständig vor Dirty COW selbst. SELinux oder AppArmor in Enforcing-Modus versetzen, um Post-Exploitation-Schritte zu erschweren. - Datei-Integritätsüberwachung: AIDE oder ähnliche FIM-Lösungen auf kritische Binaries und
/etc/passwd,/etc/shadowanwenden — Dirty COW wird häufig genutzt, um diese Dateien direkt zu überschreiben. - Container-Isolation: Seccomp-Profile und User-Namespaces aktivieren;
--privileged-Container-Starts unterbinden (OPA/Gatekeeper-Policy oder PSP/PSA in Kubernetes). - Audit-Logging verschärfen:
auditd-Regeln für Schreibzugriffe auf/proc/self/memund/proc/*/memaktivieren (siehe Detection-Regeln).
Runbook · Schritt 3
Detection-Regeln
- auditd: Regel auf
/proc/self/mem-Schreibzugriffe:-a always,exit -F arch=b64 -S write -F path=/proc/self/mem -k dirtycow— Alarm bei jedem Treffer, da legitime Nutzung extrem selten ist. - auditd / Datei-Integrität: Überwachung von Schreibzugriffen auf
/etc/passwdund/etc/shadowdurch Prozesse, die nichtpasswd,useraddoderchpasswdsind:-w /etc/passwd -p wa -k passwd_modification. - Sysmon (Linux) / EDR-Prozessbaum: Alarm, wenn ein Prozess mit niedrigem UID (> 999) einen Kindprozess mit UID 0 erzeugt — Sigma-Shape:
EventID: 1, User: != root, ParentUser: != root, IntegrityLevel: System. - KQL (Microsoft Sentinel / Defender for Endpoint):
DeviceProcessEvents | where InitiatingProcessAccountSid != "S-1-5-18" and AccountSid == "S-1-5-18" | where FileName in ("bash","sh","python","perl")— erkennt Privilege-Escalation-Moment, wenn Shell mit Root-Kontext aus Nicht-Root-Prozess entsteht. - Netzwerk-Telemetrie (Zeek/Suricata): Ausgehende Verbindungen von Prozessen mit unerwartetem UID-0-Kontext kurz nach Login-Ereignissen eines Nicht-Root-Nutzers — korrelieren mit
auth.log-Einträgen und Netzflow.
Metriken
Öffentliche Exploit-Referenzen
Öffentliche Proof-of-Concepts und Detection-Templates für diese Schwachstelle. Die Reife reicht von gemeldeten PoCs über funktionsfähige Detection-Skripte bis hin zu vollständig waffenfähigen Exploit-Modulen. NEOSEC mirrort den Code intern für forensische Analysen; nach außen verlinken wir ausschließlich auf die Original-Quellen.
Quellen & Referenzen
- http://rhn.redhat.com/errata/RHSA-2016-2107.htmlvendor-advisoryx_refsource_REDHAT
- https://www.exploit-db.com/exploits/40616/exploitx_refsource_EXPLOIT-DB
- https://access.redhat.com/errata/RHSA-2017:0372vendor-advisoryx_refsource_REDHAT
- https://bto.bluecoat.com/security-advisory/sa134x_refsource_CONFIRM
- https://h20566.www2.hpe.com/portal/site/hpsc/public/kb/docDisplay?docId=emr_na-c05352241x_refsource_CONFIRM
- http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.htmlx_refsource_CONFIRM
- https://www.exploit-db.com/exploits/40839/exploitx_refsource_EXPLOIT-DB
- https://dirtycow.ninjax_refsource_MISC
- https://www.exploit-db.com/exploits/40847/exploitx_refsource_EXPLOIT-DB
- http://rhn.redhat.com/errata/RHSA-2016-2118.htmlvendor-advisoryx_refsource_REDHAT
- http://rhn.redhat.com/errata/RHSA-2016-2128.htmlvendor-advisoryx_refsource_REDHAT
- https://source.android.com/security/bulletin/2016-12-01.htmlx_refsource_CONFIRM
- http://rhn.redhat.com/errata/RHSA-2016-2120.htmlvendor-advisoryx_refsource_REDHAT
- http://www.openwall.com/lists/oss-security/2016/10/26/7mailing-listx_refsource_MLIST
- http://rhn.redhat.com/errata/RHSA-2016-2133.htmlvendor-advisoryx_refsource_REDHAT
- http://rhn.redhat.com/errata/RHSA-2016-2098.htmlvendor-advisoryx_refsource_REDHAT
- https://h20566.www2.hpe.com/hpsc/doc/public/display?docLocale=en_US&docId=emr_na-hpesbgn03761en_usx_refsource_CONFIRM
- https://www.kb.cert.org/vuls/id/243144third-party-advisoryx_refsource_CERT-VN
- https://bugzilla.suse.com/show_bug.cgi?id=1004418x_refsource_CONFIRM
- http://www.securitytracker.com/id/1037078vdb-entryx_refsource_SECTRACK