„`html
Zusammenfassung
vLLM-Versionen ab 0.8.0 sind anfällig für einen Out-of-Memory (OOM) Denial-of-Service-Angriff. Die Schwachstelle liegt in der unbegrenzten Verarbeitung von Video-Frames in der Methode VideoMediaIO.load_base64(). Durch manipulierte API-Anfragen können Angreifer tausende JPEG-Frames in einer einzelnen Anfrage übermitteln, was zum Absturz des Servers führt. Authentifizierung ist nicht erforderlich.
Betroffene Systeme
- vLLM Version 0.8.0 und später
- Systeme mit aktiviertem OpenAI-kompatiblem Chat-Completions-API-Endpunkt
- Installationen, die Video-Datenverarbeitung über data URLs erlauben
Technische Details
Die Vulnerabilität befindet sich in der VideoMediaIO.load_base64()-Methode, die bei der Verarbeitung von video/jpeg data URLs ohne Validierung arbeitet. Der Code teilt die base64-kodierte Datenzeichenkette an Komma-Positionen auf, um individuelle JPEG-Frames zu extrahieren.
Angriffsablauf:
- Angreifer erstellt eine Anfrage mit data URL:
data:video/jpeg;base64,<frame1>,<frame2>,...,<frameN> - Die API akzeptiert die Anfrage ohne Authentifizierung
load_base64()dekodiert alle Frames sequenziell in den RAM- Mit tausenden Frames überschreitet der Speicherverbrauch verfügbare Ressourcen
- Speichererschöpfung führt zu OOM-Fehler und Prozessabsturz
CVSS v3.1 Score: 7.5 (High)
Network-basierter Angriffsvektor, ohne Authentifizierung und Benutzerinteraktion möglich.
Empfohlene Massnahmen
- Implementierung von Limits für die maximale Frame-Anzahl pro Anfrage
- Validierung der Datengröße vor dem Dekodieren
- Überwachung der Speichernutzung und Rate-Limiting aktivieren
- OpenAI-API-Endpunkt einschränken oder mit Authentifizierung schützen
- Auf offiziellen Security-Patch des vLLM-Projekts warten
- Monitoring auf ungewöhnliche Anfragen mit multiplen Frames implementieren
Bewertung
Diese Schwachstelle stellt ein erhebliches Risiko dar, da sie leicht zu exploitieren ist und keine Authentifizierung erfordert. Das OOM-DoS-Potenzial kann produktive vLLM-Instanzen lahmlegen. Schnelle Mitigation wird empfohlen.
„`