
Docker-basiertes Proof-of-Concept, das CVE-2025-23320 im NVIDIA Triton Inference Server demonstriert und die Freigabe von Shared-Memory-Schlüsseln ausnutzt, um über eine Unregister/Register-Race-Condition einen Out-of-Bounds-Schreibzugriff auszulösen.
Demonstriert CVE-2025-23320
Dieses Repository repliziert CVE-2025-23320 und demonstriert CWE-209, die Erzeugung von Fehlermeldungen, die sensible Informationen enthalten (CVSS-Score: 7.5). Diese Schwachstelle ist auf allen NVIDIA Triton Inference Servern 25.06 und früher vorhanden.
Dieses Docker-Setup führt ein Netzwerk aus, das einen NVIDIA Triton Inference Server und einen angreifenden Client enthält. Diese Umgebung stellt außerdem sicher, dass der Client unter Linux läuft, sodass die CVE auf allen Betriebssystemen replizierbar ist.
Zum Erstellen/Ausführen
docker compose --build-no-cache
Wenn dies das erste Mal ist, dass Sie es ausführen, kann dies eine Weile dauern, da das NVIDIA Triton Server-Image Version 25.06 von GitHub gezogen wird.
Dann:
docker compose up
POC
Das Skript des angreifenden Clients wird automatisch ausgeführt und gibt eine Fehlermeldung in der Form aus: Fehler beim Erhöhen der Größe des Shared-Memory-Pools für den Schlüssel 'triton_python_backend_shm_region_8a463f1a-fcd6-4c1b-b4b5-df63f9c512ad' auf 54525952 Bytes.
Nach Erhalt dieses Schlüssels kann ein Angreifer zahlreiche Aktionen durchführen. In unserer Code-Implementierung nutzte der Angreifer die Unregister-API von Triton. Da Triton nicht überprüft, wer diese API aufruft, wird die Funktion ausgeführt. Wenn der Angreifer anschließend die Register-Funktion verwendet und erfolgreich eine Race Condition auslöst, führt dies zu einem Out-of-Bounds (OOB)-Schreibzugriff.