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
CVE-2021-3493 — Proof-of-Concept in zwei Stufen für CVE-2021-3493, Ausnutzung von Ubuntu OverlayFS, um von einem unprivilegierten Benutzer zu root zu eskalieren durch Manipulation von Datei-Capabilities in Benutzernamensräumen. | Kitploit
Tools/GitHubGitHub/0xlane/cve-2021-3493
Privilege EscalationSchwachstellenanalyseExploitationLernen & BildungBinary-Exploitation
GitHub0xlane/cve-2021-3493

CVE-2021-3493

Proof-of-Concept in zwei Stufen für CVE-2021-3493, Ausnutzung von Ubuntu OverlayFS, um von einem unprivilegierten Benutzer zu root zu eskalieren durch Manipulation von Datei-Capabilities in Benutzernamensräumen.

Repository anzeigen
vor 27 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2021-3493 — Ubuntu OverlayFS Lokale Privilegieneskalation

Ein funktionierender Proof-of-Concept für CVE-2021-3493, eine lokale Privilegieneskalations-Schwachstelle in der OverlayFS-Implementierung des Ubuntu-Kernels.

Ein unprivilegierter Benutzer kann ein Overlay-Dateisystem innerhalb eines Benutzernamensraums einhängen und über setxattr beliebige Dateicapabilities setzen. Der Kernel validiert den Namensraumursprung dieser Capabilities nicht, sodass sie im init-Benutzernamensraum wirksam werden – was jedem lokalen Benutzer die Eskalation zu root ermöglicht.

Betroffene Versionen

Diese Schwachstelle ist Ubuntu-spezifisch. Ubuntu trägt einen Patch (FS_USERNS_MOUNT), der unprivilegierte Overlay-Mounts erlaubt – Upstream-Kernel tun dies nicht, daher sind Mainline-Linux und andere Distributionen in der Regel nicht betroffen.

DistributionKernelAnfällig (behoben in)
Ubuntu 20.105.8< 5.8.0-50
Ubuntu 20.04 LTS5.4< 5.4.0-72
Ubuntu 18.04 LTS4.15< 4.15.0-142
Ubuntu 18.04 LTS (HWE)5.3< 5.3.0-73
Ubuntu 16.04 LTS4.4< 4.4.0-209
Ubuntu 14.04 ESM (HWE)4.4< 4.4.0-209

Quelle: USN-4916-1

Funktionsweise

Dieser PoC verwendet ein zweistufiges Design:

DateiRolle
exploit.cStufe 1 — Erstellt ein Overlay-Dateisystem innerhalb eines Benutzernamensraums, kopiert das Rootshell-Payload hinein und setzt das security.capability-xattr mit allen Capabilities (all+ep)

Warum zwei Stufen? Der ursprüngliche inspiringz/CVE-2021-3493-PoC lässt den Exploit eine Shell aus dem Benutzernamensraum heraus execen, sodass uid=0 nur eine Namensraumzuordnung ist – keine echte Root. Dieser PoC trennt die Overlay-Einrichtung (Kindprozess im Benutzernamensraum) von der Payload-Ausführung (Elternprozess im Init-Namensraum), was eine echte Privilegieneskalation gewährleistet.

root@kitploit:~
exploit (init ns, uid=1000)
  │
  ├─ fork → Kind (user ns)
  │    ├─ unshare(CLONE_NEWUSER | CLONE_NEWNS)
  │    ├─ mount overlayfs
  │    ├─ copy rootshell → overlay merge dir
  │    ├─ setxattr("security.capability", all+ep)   ← Schwachstellenauslöser
  │    └─ exit
  │
  └─ Eltern (init ns, uid=1000)
       └─ execl("upper/rootshell")
            ├─ Kernel lädt Dateicapabilities im init ns
            │   CapPrm: 0000003fffffffff
            │   CapEff: 0000003fffffffff
            ├─ setuid(0) → Erfolg
            ├─ setgid(0) → Erfolg
            └─ exec /bin/bash → echte Root-Shell

Verbesserungen gegenüber dem ursprünglichen PoC

  1. /dev/shm → /tmp: Das Original verwendet /dev/shm, das mit nosuid eingehängt ist, was dazu führt, dass der Kernel Dateicapabilities bei exec stillschweigend ignoriert. Dieser PoC verwendet /tmp (normalerweise auf ext4 ohne nosuid).

  2. Zweistufiges Payload: Das Original kopiert sich selbst (/proc/self/exe) als das Capability-tragende Binary, aber da der Exploit unshare aufruft, führt eine erneute Ausführung nur wieder in einen Benutzernamensraum. Dieser PoC verwendet ein separates rootshell-Binary, das die Capabilities direkt konsumiert.

Getestet auf

BetriebssystemUbuntu 20.04.1 LTS (Focal Fossa)
Kernel5.4.0-65-generic (anfällig) / 5.4.0-216-generic (behoben)
KonfigurationStandard Ubuntu Server Installation – keine Absicherungen deaktiviert

Der Testhost verwendet einen Standard-Ubuntu-20.04-Kernel mit allen standardmäßigen Sicherheitsfunktionen intakt:

  • CONFIG_USER_NS=y + kernel.unprivileged_userns_clone=1 (Standard – erlaubt unprivilegierte Benutzernamensräume)
  • CONFIG_OVERLAY_FS=m (Standard – OverlayFS als Modul verfügbar)
  • AppArmor aktiv, seccomp aktiviert, KASLR an, Stack-Protector, FORTIFY_SOURCE – alles Standard
  • Keine speziellen Kernel-Kommandozeilenparameter (BOOT_IMAGE=... root=... ro)

Es müssen keine Sicherheitsfunktionen deaktiviert werden – der Exploit funktioniert sofort auf einem standardmäßigen Ubuntu 20.04 mit einem anfälligen Kernel.

Bauen & Ausführen

⚠️ WARNUNG: Führen Sie dies nur auf Systemen aus, die Ihnen gehören oder für die Sie ausdrücklich die Erlaubnis zum Testen haben. Dieser Exploit gewährt echten Root-Zugriff.

root@kitploit:~
make
./exploit

Das Standardverhalten erzeugt eine interaktive Root-Shell. Sie können auch einen einzelnen Befehl ausführen:

root@kitploit:~
./exploit "id && cat /etc/shadow"

Erwartete Ausgabe

root@kitploit:~
============================================
  CVE-2021-3493 OverlayFS Privilegieneskalation
  Kernel: 5.4.0-65-generic
  User:   uid=1000(user) gid=1000(user)
============================================

[1] Richte Overlay-Dateisystem in Benutzernamensraum ein...
[2] Dateicapabilities gesetzt auf /tmp/.ovlcap/upper/rootshell
[3] Führe rootshell aus init-Namensraum aus...

[*] Vor Privilegieneskalation:
    uid=1000(user) gid=1000(user)
[*] Prozess-Capabilities:
    CapInh: 0000000000000000
    CapPrm: 0000003fffffffff
    CapEff: 0000003fffffffff
    CapBnd: 0000003fffffffff
    CapAmb: 0000000000000000

[+] Nach setuid(0) + setgid(0):
    uid=0(root) gid=0(root)

root@host:~#

Bereinigung

root@kitploit:~
make clean

Kernel-Fix

Gepatchte Kernel (z. B. >= 5.4.0-70 unter Ubuntu 20.04) aktualisieren das Capability-xattr vom v2- auf v3-Format, wenn es über ein Overlay in einem Benutzernamensraum gesetzt wird. Das v3-Format enthält ein rootid-Feld, das die echte UID des Setzers im init-Namensraum aufzeichnet. Bei exec prüft der Kernel rootid – ist es nicht 0, werden die Capabilities abgelehnt:

root@kitploit:~
# Anfälliger Kernel (5.4.0-65) – v2-Format, kein rootid
security.capability = 0x01000002 ffffffff00000000 ffffffff00000000

# Gepatchter Kernel (5.4.0-70+) – v3-Format, rootid=1000
security.capability = 0x01000003 ffffffff00000000 ffffffff00000000 e8030000
                           ^^                                      ^^^^^^^^
                           v3                                    rootid=1000

Referenzen

  • Ubuntu Security Advisory – CVE-2021-3493
  • NVD – CVE-2021-3493
  • Original PoC von inspiringz
  • Kernel-Patch (ovl: fix missing negative dentry check)

Haftungsausschluss

Dieser Code wird ausschließlich für Sicherheitsforschung und autorisierte Tests bereitgestellt. Verwenden Sie ihn nur auf Systemen, die Ihnen gehören oder für deren Test Sie eine ausdrückliche schriftliche Genehmigung haben. Die Autoren übernehmen keine Haftung für Missbrauch.

Tool herunterladen
rootshell.cStufe 2 — Ein sauberes Payload, das die Dateicapabilities nutzt, um setuid(0) aufzurufen und eine echte Root-Shell zu starten