
Proof-of-Concept-Exploit für CVE-2023-0386, eine Linux-OverlayFS-Schwachstelle zur lokalen Privilegienausweitung. Zeigt, wie falsche Dateicapability-Behandlung während des Copy-up es unprivilegierten Benutzern ermöglicht, Root-Zugriff zu erlangen.
Dieses Repository enthält einen Proof-of-Concept für CVE-2023-0386: https://nvd.nist.gov/vuln/detail/CVE-2023-0386
Teammitglieder: Bǎnicǎ Dragoș-Marius und Borsos Matheas-Roland
Hier ist das Video: https://www.youtube.com/watch?v=Ikux1rjIYP0
Dieses Repository enthält einen Proof-of-Concept-Exploit (PoC) für CVE-2023-0386, eine Schwachstelle zur lokalen Privilegienerweiterung im OverlayFS-Subsystem des Linux-Kernels.
Die Schwachstelle ermöglicht es einem lokalen, nicht privilegierten Benutzer, durch die Ausnutzung fehlerhafter Behandlung von Datei-Capabilities und Besitzrechten während OverlayFS-Copy-up-Operationen Root-Rechte zu erlangen. Der PoC zeigt, wie ein sorgfältig konstruiertes OverlayFS-Setup eine ausführbare Datei erzeugen kann, die erhöhte Privilegien behält, selbst wenn sie von einem nosuid-Mount kopiert wird.
OverlayFS ist ein Union-Dateisystem, das verwendet wird, um mehrere Verzeichnisbäume in einer einzigen einheitlichen Ansicht zu kombinieren. Es wird intensiv eingesetzt in:
OverlayFS besteht aus:
Wenn eine Datei aus der unteren Ebene geändert wird, führt OverlayFS eine Copy-up-Operation durch: Die Datei wird in die obere Ebene kopiert und dort anschließend geändert.
Die Schwachstelle liegt in der Behandlung von Dateimetadaten durch OverlayFS während des Copy-up, insbesondere:
CAP_SETUID)nosuid-MountoptionenIn betroffenen Kernel-Versionen:
nosuid-unteren Ebene kopiert werden.Dies bricht die Sicherheitsannahme, dass nosuid-Mounts eine Privilegienerweiterung verhindern.
CVE-2023-0386_POC/
├── exp.c # Main exploit logic
├── fuse.c # User-space filesystem helper (FUSE)
├── getshell.c # Privilege escalation payload
├── ovlcap/ # OverlayFS capability test utilities
│ ├── Makefile
│ └── ...
├── Makefile # Top-level build instructions
└── README.md
nosuid-untere Ebene zu simulieren.gccmakelibfuse-dev (oder entsprechend)libcap-dev (oder entsprechend)git clone https://github.com/dragosbanica/CVE-2023-0386_POC.git
cd CVE-2023-0386_POC
make all
Öffnen Sie zwei Terminals und geben Sie im ersten ein:
./fuse ./ovlcap/lower ./gc
Geben Sie im zweiten Terminal ein:
./exp