CVE-2024-5565

Schwachstelle in der Vanna.AI-Bibliothek entdeckt

Sicherheitslücke, Schwachstelle, Vanna.AI, CVE

Im Rahmen der fortlaufenden Erforschung dieser Technologien hat das Team von JFrog Security eine bedeutende Schwachstelle in der Vanna.AI-Bibliothek aufgedeckt.

Diese Bibliothek, die eine Text-zu-SQL-Schnittstelle ermöglicht, wurde als anfällig für eine Schwachstelle bei der Remote-Code-Ausführung durch Prompt-Injection-Techniken identifiziert, die als CVE-2024-5565 bezeichnet wird. Dieser Fall ist ein mahnendes Beispiel für die wachsende Bedrohung durch „Prompt Injection”-Angriffe auf LLMs und zeigt die Möglichkeit auf, „Pre-Prompting”-Schutzmaßnahmen, die zum Schutz dieser Systeme entwickelt wurden, zu umgehen. Die Schwachstelle wurde außerdem auch von Tong Liu auf der Bug Bounty-Plattform Huntrentdeckt und als CVE-2024-5826 veröffentlicht, nachdem die von JFrog gemeldete CVE bereits veröffentlicht worden war.

Anzeige

Pre-Prompting und Prompt-Injection

LLM-Modelle sind zwar leistungsfähig und robust, erben aber eine Vielzahl von Verzerrungen und unerwünschten Inhalten aus den unstrukturierten Datensätzen, auf denen sie trainiert werden, wie z. B. Online-Foren und Nachrichtenartikel. Um diese Risiken zu mindern, implementieren die Entwickler Pre-Prompting-Anweisungen – hart kodierte Direktiven, die den Benutzereingaben einen Kontext geben. Das Design von LLMs, bei denen „alles eine Eingabe ist”, macht diese Pre-Prompting-Anweisungen jedoch anfällig für Manipulationen durch Prompt-Injection-Angriffe. Bei diesen Attacken wird die Unfähigkeit von LLM-Modellen ausgenutzt, zwischen Benutzereingaben und vordefinierten Aufforderungen zu unterscheiden, wodurch der Kontext und das Verhalten des Modells effektiv verändert werden können.

Arten von Prompt Injection

Schwachstellen durch Prompt-Injection können als direkt oder indirekt kategorisiert werden. Direkte Prompt-Injektionen treten auf, wenn Benutzereingaben den Prompt direkt beeinflussen, während indirekte Injektionen Benutzereingaben beinhalten, die den Prompt über eine externe Quelle beeinflussen. Die Auswirkungen dieser Schwachstellen sind je nach Integrationsgrad des LLM sehr unterschiedlich. Isolierte Prompt-Injektionen, bei denen das LLM nicht mit aktivierbaren Systemen verbunden ist, stellen ein minimales Risiko dar. Integrierte Prompt-Injektionen, bei denen der LLM mit der Befehlsausführung oder Entscheidungsprozessen verbunden ist, können jedoch zu ernsthaften Sicherheitsproblemen führen.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Technischer Hintergrund von CVE-2024-5565

Vanna.AI, eine Python-Bibliothek, vereinfacht die Generierung von SQL-Abfragen aus natürlichen Sprachbefehlen mittels LLMs und nutzt Retrieval-Augmented Generation (RAG) für höhere Genauigkeit. Sie unterstützt Jupyter-Notebooks, Streamlit-Apps, Flask-Server und Slack-Bots. Die Forscher von JFrog konnten aufzeigen, dass Vanna.AI’s SQL-Visualisierungsfunktion durch die Plotly-Bibliothek anfällig für Prompt-Injection-Angriffe war. Die dynamische Generierung und Auswertung von Plotly-Code über LLM-Prompts ermöglichte eine Remotecodeausführung (RCE), indem vordefinierte Einschränkungen mit manipulierten Prompts umgangen wurden.

Anzeige

CVE-2024-5565 ist eine Sicherheitslücke, die durch die exec-Methode beliebigen Code über Benutzer-Eingaben in der standardmäßig aktivierten Visualisierungsfunktion von Vanna.AI ermöglicht. Die Parameter “question” und “sql” dienen als primäre Angriffspunkte. Durch eine bösartige SQL-Abfrage kann ein Angreifer schädlichen Code in den dynamisch generierten Plotly-Code einschleusen, der dann von der exec-Methode ausgeführt wird, was zu Remote-Code-Ausführung (RCE) führt.

Nach der Entdeckung durch die Sicherheitsforscher haben die Entwickler von Vanna.AI umgehend einen Leitfaden zur Absicherung veröffentlicht, der Nutzern hilft, ähnliche Angriffsversuche zu verhindern.

Sicherheitsrisiken und Schutzmaßnahmen bei der Integration von LLM-Modellen

Die Integration von LLM-Modulen verbessert die Benutzerfreundlichkeit und Funktionalität von Anwendungen erheblich, birgt jedoch erhebliche Risiken. Ein Beispiel dafür ist die Prompt-Injection-Schwachstelle in Vanna.AI. LLMs haben Schwierigkeiten, Benutzereingaben von vordefinierten Richtlinien zu unterscheiden, was sie anfällig für Manipulationen macht. Daher sind umfassendere Sicherheitsmaßnahmen erforderlich, wie Prompt-Injection-Tracing-Modelle, Output-Integritätsprüfungen und Sandbox-Umgebungen.

Die Erkenntnisse von JFrog betonen die Notwendigkeit ständiger Wachsamkeit und Innovation bei der Sicherung von LLM-Anwendungen. Werkzeuge wie das Static Application Security Testing (SAST) Tool helfen, Prompt-Injection-Schwachstellen zu erkennen und detaillierte Einblicke in Schwachstellen und Datenfluss zu bekommen, um Anwendungen gegen Bedrohungen zu schützen.

Die vollständige Untersuchung von JFrog Security finden Sie hier.

(vp/JFrog Security)

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.