OWASP LLM Top 10 · LLM05
Onveilige verwerking van model-output
Model-output als veilig behandelen en rechtstreeks doorgeven aan een browser, shell, query of API.
Wat het is
Dit is de keerzijde van prompt injection. In plaats van de input te vertrouwen, vertrouwt de applicatie de output. Antwoorden van het model worden doorgegeven aan onderliggende systemen en gerenderd als HTML, uitgevoerd als code, in een databasequery gestopt, of in een shell-commando of HTTP-request geplaatst, allemaal zonder validatie. Het model wordt zo een confused deputy: het produceert een payload, en je eigen systeem voert die uit.
Hoe het opduikt in echte apps
- Model-output als HTML/Markdown renderen zonder te escapen, wat stored of reflected XSS oplevert.
- Gegenereerde SQL of commando's voeren aan een database of shell, wat injection oplevert.
- Het model URL's laten samenstellen die de backend vervolgens ophaalt, wat SSRF oplevert.
- Gegenereerde code automatisch uitvoeren in een context met verhoogde rechten.
Een concreet voorbeeld
Scenario
Een chatwidget rendert antwoorden van de assistent als HTML om links en opmaak te tonen.
Aanval
Een antwoord met een prompt injection bevat een <img src=x onerror=...> tag.
Resultaat
Het script draait in de browser van de volgende gebruiker. Klassieke XSS, afgeleverd via het model.
Hoe we erop testen
We stellen inputs op die het model actieve payloads laten produceren (script, SQL, shell, URL's) en controleren vervolgens wat je applicatie daar verderop in de keten mee doet. Escapet en valideert ze de output en past ze least privilege toe, of voert ze die gewoon uit? Dit is het punt waarop een LLM-bug verandert in een gewone web- of applicatiekwetsbaarheid.
Hoe je het risico terugdringt
- Behandel model-output als untrusted user input: codeer en escape bij het renderen, gebruik geparametriseerde queries, en sandbox elke uitvoering.
- Werk met allow-lists voor formaten en bestemmingen. Laat gegenereerde tekst nooit rechtstreeks bepalen welke URL de server ophaalt.
- Pas least privilege toe op alles wat de output aanstuurt (DB-rol, shell, API-scope).
- Plaats een validatielaag tussen het model en elke executor.
EU AI Act: doorgaans gekoppeld aan Art. 15 (cyberbeveiliging). Redproof rapporteert bevindingen als onafhankelijk testbewijs, niet als conformiteitsoordeel.
Test dit op je eigen AI voordat iemand anders dat doet
Redproof doet onafhankelijke red-teaming voor LLM- en AI-agentproducten. We toetsen je systeem op onveilige verwerking van model-output en de rest van de OWASP LLM Top 10, leveren bevindingen gerangschikt op ernst met reproducties, fixes en koppeling aan de EU AI Act, en hertesten nadat je hebt gepatcht. Dat is het bewijs dat je zelfbeoordeling nodig heeft, voordat een toezichthouder of klant erom vraagt.