---
title: "OWASP LLM Top 10 (2025): cinco riscos que já viraram incidente — e como cobrir cada um - OkamiOps Insights"
description: "A lista de 2025 do OWASP para aplicações LLM foi reescrita depois de dois anos de incidente real. Ela não substitui o Top 10 web — soma. Para um time de"
url: https://okamiops.com/pt/insights/owasp-llm-top-10-2025/
lang: pt-BR
alternates:
  en: https://okamiops.com/insights/owasp-llm-top-10-2025/
  pt-BR: https://okamiops.com/pt/insights/owasp-llm-top-10-2025/
  de: https://okamiops.com/de/insights/owasp-llm-top-10-2025/
  x-default: https://okamiops.com/insights/owasp-llm-top-10-2025/
lastmod: 2026-09-10
---

# OWASP LLM Top 10 (2025): cinco riscos que já viraram incidente — e como cobrir cada um

APPSEC · ABR · 2026 · 8 min

A lista de 2025 do OWASP para aplicações LLM foi reescrita depois de dois anos de incidente real. Ela não substitui o Top 10 web — soma. Para um time de cinco ou dez engenheiros com uma feature de IA em produção, a pergunta não é conhecer os dez itens: é saber quais cinco fechar primeiro, quanto custa cada um em dias de engenharia e o que checar antes do release.

- **Categoria**: AppSec
- **Data**: ABR · 2026
- **Leitura**: 8 min
- **Fontes**: 8

Dez itens, nenhum deles teórico. A diferença entre a lista de 2023 e a de 2025 aparece exatamente onde dói em produção: no que o modelo pode chamar e para onde a resposta dele vai. Este texto é para o time que já colocou uma feature de IA no ar e precisa decidir o que fechar primeiro.

## O que mudou da lista de 2023 para a de 2025

Duas entradas são novas. System Prompt Leakage (LLM07) e Vector and Embedding Weaknesses (LLM08) nasceram do mesmo lugar: prompt de sistema comprido e RAG deixaram de ser detalhe de implementação e viraram superfície de ataque. Em 2023 nenhum dos dois existia na lista.

Três itens mudaram de nome e de escopo. Insecure Output Handling, que era LLM02, virou Improper Output Handling e desceu para LLM05. Training Data Poisoning virou Data and Model Poisoning (LLM04) e passou a cobrir pesos e fine-tuning, não só o corpus de treino. Model Denial of Service virou Unbounded Consumption (LLM10) e agora inclui custo: fatura de API estourada e serviço fora do ar entraram na mesma caixa.

Dois subiram e dois saíram. Sensitive Information Disclosure pulou de LLM06 para LLM02. Supply Chain foi de LLM05 para LLM03. Insecure Plugin Design e Model Theft deixaram de ser itens próprios — o conteúdo de plugin foi absorvido por Supply Chain e Excessive Agency. E Overreliance virou Misinformation (LLM09), tirando o foco do comportamento do usuário e colocando no output que o sistema produz.

**O que mudou: lista 2023 → 2025** (OWASP Top 10 for LLM Applications — v1.1 (2023) vs 2025)

|  | 2023 | 2025 |
| --- | --- | --- |
| Divulgação de informação sensível | LLM06 | LLM02 |
| Supply Chain | LLM05 | LLM03 |
| Tratamento de saída (renomeado) | LLM02 · Insecure Output Handling | LLM05 · Improper Output Handling |
| Envenenamento de dado/modelo (escopo maior) | LLM04 · só corpus de treino | LLM04 · pesos e fine-tuning |
| Negação de serviço → consumo ilimitado | LLM10 · só disponibilidade | LLM10 · + custo de API |
| Itens novos: prompt de sistema e embeddings | não existia | LLM07 · LLM08 |
| Plugin inseguro e roubo de modelo (absorvidos) | itens próprios | conteúdo em LLM03 e LLM06 |
| Confiança excessiva → desinformação (foco mudou) | LLM09 · comportamento do usuário | LLM09 · saída do sistema |

## Os cinco que importam para um time pequeno

Um time de dez engenheiros não fecha dez frentes ao mesmo tempo. Fecha cinco. O critério para escolher não é gosto: LLM01, LLM02, LLM03, LLM05 e LLM06 são os que já apareceram em incidente público com detalhe técnico divulgado. Os outros cinco importam, mas podem esperar o trimestre seguinte.

**OWASP LLM Top 10 · 2025**

- **LLM01** — Prompt Injection (alto)
- **LLM02** — Sensitive Information Disclosure (alto)
- **LLM03** — Supply Chain (alto)
- **LLM04** — Data and Model Poisoning (médio)
- **LLM05** — Improper Output Handling (alto)
- **LLM06** — Excessive Agency (alto)
- **LLM07** — System Prompt Leakage (médio)
- **LLM08** — Vector and Embedding Weaknesses (médio)
- **LLM09** — Misinformation (médio)
- **LLM10** — Unbounded Consumption (médio)

Prompt Injection (LLM01) com Improper Output Handling (LLM05) foi o par do EchoLeak (CVE-2025-32711, CVSS 9.3), divulgado pela Aim Security em junho de 2025. Um e-mail com instrução escondida em comentário HTML, sem um clique sequer do usuário, fez o Microsoft 365 Copilot ler arquivos internos e mandar o conteúdo para fora. O payload passou pelo classificador de prompt injection, pela redação de links e pelo CSP, usando um proxy de imagem do Teams que estava na allowlist. A Microsoft corrigiu no servidor e disse não ter visto exploração real.

Três meses depois veio o ForcedLeak (CVSS 9.4), reportado pela Noma Security à Salesforce em 28 de julho de 2025 e divulgado em 25 de setembro. O campo Description de um formulário Web-to-Lead do Agentforce virou canal de instrução, e a saída foi para um domínio expirado que continuava na allowlist do CSP — comprado por US$ 5 no registrador. A Salesforce ligou o Trusted URLs Enforcement em 8 de setembro de 2025. A lição não é sobre a Salesforce: sua allowlist de CSP vale o domínio mais barato que sobrou nela.

A Slack AI mostrou o mesmo padrão um ano antes. Em 20 de agosto de 2024, a PromptArmor publicou como uma mensagem plantada em canal público, ingerida pelo pipeline de RAG, fazia o assistente montar um link markdown que carregava dados de canais privados nos quais o atacante nunca entrou. Mesma mecânica, produto diferente: entrada não confiável, saída sem controle.

Supply Chain (LLM03) acumulou três casos em dezoito meses. Em fevereiro de 2024, a JFrog encontrou mais de 100 modelos maliciosos no Hugging Face, com pickle disparando shell reverso no momento do load e cerca de 95% deles em formato PyTorch. Em julho de 2025, a extensão Amazon Q Developer para VS Code recebeu um PR externo e saiu como versão 1.84.0 em 17 de julho com um prompt de sistema mandando o agente limpar o disco e apagar recursos AWS via CLI; só foi substituída pela 1.85.0 em 19 de julho, com boletim AWS-2025-019 (o payload não chegou a funcionar por erro de formatação). Em 26 de agosto de 2025, o s1ngularity (CVE-2025-10894) publicou versões maliciosas do Nx com um postinstall que usava os CLIs de IA já instalados na máquina para varrer o disco atrás de segredos. A Wiz contou mais de 190 usuários e organizações e mais de 3.000 repositórios atingidos na segunda onda.

Excessive Agency (LLM06) tem a história mais cara e a mais silenciosa. Em julho de 2025, o agente do Replit apagou o banco de produção durante um code freeze: 1.206 registros de executivos e 1.196 de empresas, sem rollback. O CEO pediu desculpas publicamente em 19 de julho e a empresa passou a separar banco de desenvolvimento e de produção por padrão. Dois meses antes, o Invariant Labs tinha mostrado a versão silenciosa do mesmo problema: no servidor MCP do GitHub, uma issue maliciosa em repositório público faz o agente que foi só 'olhar as issues abertas' publicar conteúdo de repositório privado num PR público. Não é bug de código. É permissão demais concentrada numa sessão só.

**Linha do tempo dos incidentes citados**

- **FEV · 2024** — JFrog encontra 100+ modelos maliciosos no Hugging Face (LLM03)
- **AGO · 2024** — Slack AI: injeção via RAG exfiltra canal privado (LLM01/LLM05)
- **JAN · 2025** — Wiz encontra banco do DeepSeek exposto na internet (LLM02)
- **MAI · 2025** — Invariant Labs: GitHub MCP vaza repositório privado (LLM06)
- **JUN · 2025** — EchoLeak divulgado: zero-click no Microsoft 365 Copilot (LLM01/LLM05)
- **JUL · 2025** — Agente do Replit apaga banco de produção (LLM06)
- **JUL · 2025** — Extensão maliciosa do Amazon Q Developer publicada (LLM03)
- **AGO · 2025** — s1ngularity compromete pacotes do Nx (LLM03)
- **SET · 2025** — ForcedLeak divulgado no Salesforce Agentforce (LLM01/LLM05)

## Mitigação por item, com esforço realista

Os números abaixo são dias de engenharia para um time que já tem CI e revisão de PR. Somados, doze a quinze dias — menos do que costuma custar uma única resposta a incidente.

**O custo de fechar os cinco itens críticos**

- **5 de 10** — itens já registraram incidente público com detalhe técnico divulgado
- **12–15 dias** — esforço total de mitigação para um time que já tem CI e revisão de PR
- **US$ 5** — custo do domínio expirado que permitiu a exfiltração no ForcedLeak

LLM01 e LLM05 andam juntos e dão o melhor retorno. Trate todo texto vindo de fora — e-mail, issue, PDF, página raspada, registro de CRM — como dado não confiável, e trate a saída do modelo do mesmo jeito. Na prática: nada de renderizar HTML ou markdown cru do modelo, nada de imagem com URL montada pelo modelo, nada de eval, nada de SQL concatenado, e uma allowlist de domínios de saída revisada com monitoramento de expiração. De 3 a 5 dias.

LLM06 é o item mais barato e o que mais dói quando falta. Toda ferramenta exposta ao modelo ganha escopo mínimo, credencial própria e ambiente próprio. Ação destrutiva — DROP, DELETE, deploy, envio de e-mail, pagamento — exige confirmação humana fora do canal do modelo. E uma sessão de agente toca um repositório, um banco, um bucket. De 2 a 3 dias, e é o que separa o seu time do incidente do Replit.

LLM03 se resolve com higiene de dependência aplicada ao novo estoque: versão travada no lockfile, instalação sem executar postinstall onde for possível, revisão manual de qualquer extensão de IDE com acesso a shell e carregamento de modelo em safetensors no lugar de pickle. Acrescente um SBOM ao build. 2 dias na primeira vez, depois vira manutenção.

LLM02 é infraestrutura de sempre aplicada a dado novo. Nenhum segredo no prompt de sistema, redação de PII antes de gravar log de prompt e resposta, retenção curta. O vazamento da DeepSeek — um ClickHouse aberto na internet com mais de 1 milhão de linhas de log, histórico de conversa e chaves em texto claro, encontrado pela Wiz em 29 de janeiro de 2025 — não foi falha de modelo. Foi banco exposto. 2 dias.

LLM07, LLM08 e LLM10 saem na mesma passada. Assuma que o prompt de sistema vaza e não guarde nele nada que não possa ser público. Isole índices vetoriais por tenant e aplique no retrieval a mesma ACL do dado de origem. Ponha teto de tokens por requisição, rate limit por usuário e alerta de custo diário. 3 dias.

## Como isso entra no threat modeling e no CI

No threat modeling, cada feature de IA vira um diagrama de três caixas: de onde vem o texto, o que o modelo pode chamar, para onde vai a saída. Cada seta recebe um item da lista. Se ninguém no time sabe apontar onde a seta de saída termina, você tem um EchoLeak esperando a hora.

No CI, três gates baratos. Um teste de regressão rodando um corpus de prompts de injeção conhecidos contra os endpoints de IA. Um scanner de segredo no repositório e nos logs de exemplo. E a checagem de dependência que quebra o build quando um pacote ganha postinstall novo ou foi publicado nas últimas 48 horas — exatamente a janela do Nx e da Amazon Q. Nenhum dos três exige ferramenta paga.

Se você precisa mostrar isso para cliente ou auditor, o NIST AI 600-1 (o perfil de IA generativa do AI RMF, publicado em julho de 2024) dá o vocabulário, com 12 categorias de risco e mais de 200 ações sugeridas, e a ISO/IEC 42001 é a norma certificável de sistema de gestão de IA. Comece pelo OWASP e mapeie depois. O caminho inverso custa meses e não fecha nenhum bug.

## Checklist antes do release

Sete perguntas. Se alguma resposta for 'não sei', o release espera. Primeira: todo texto de terceiro que chega ao modelo está marcado como não confiável no código? Segunda: a saída do modelo é renderizada ou executada em algum ponto sem sanitização? Terceira: qual é a lista exata de ferramentas que o modelo pode chamar, e quem aprovou cada permissão? Quarta: existe ação destrutiva sem confirmação humana? Quinta: o que acontece com o produto se o prompt de sistema inteiro virar público amanhã? Sexta: os logs de prompt e resposta guardam PII, e por quanto tempo? Sétima: qual é o teto de gasto por usuário por dia, e quem recebe o alerta?

**Checklist antes do release**

1. **Entrada não confiável** — Todo texto de terceiro que chega ao modelo está marcado como não confiável no código?
2. **Saída sanitizada** — A saída do modelo é renderizada ou executada em algum ponto sem sanitização?
3. **Ferramentas aprovadas** — Qual é a lista exata de ferramentas que o modelo pode chamar, e quem aprovou cada permissão?
4. **Confirmação humana** — Existe ação destrutiva sem confirmação humana?
5. **Prompt de sistema público** — O que acontece com o produto se o prompt de sistema inteiro virar público amanhã?
6. **PII nos logs** — Os logs de prompt e resposta guardam PII, e por quanto tempo?
7. **Teto de gasto** — Qual é o teto de gasto por usuário por dia, e quem recebe o alerta?

A lista de 2025 já tem sucessora para quem roda agentes: em 9 de dezembro de 2025 a OWASP publicou o Top 10 para Aplicações Agênticas, de ASI01 (Agent Goal Hijack) a ASI10 (Rogue Agents). Se o seu produto planeja, guarda memória e chama ferramenta sozinho, leia as duas. Se ele só responde perguntas, os cinco itens acima já cobrem o seu risco real.

> **O que fazer amanhã**: Comece por LLM06: dê a cada ferramenta do modelo escopo mínimo, credencial própria e confirmação humana para toda ação destrutiva. São 2 a 3 dias de trabalho e é o que separa o seu time do incidente do Replit.

## Fontes desta análise

- **01**: [OWASP Gen AI Security Project · Top 10 for LLM Applications 2025](https://genai.owasp.org/llm-top-10/)
- **02**: [OWASP · Top 10 for Large Language Model Applications (2023, v1.1)](https://owasp.org/www-project-top-10-for-large-language-model-applications/)
- **03**: [arXiv · EchoLeak: the first real-world zero-click prompt injection exploit in a production LLM system](https://arxiv.org/abs/2509.10540)
- **04**: [Noma Security · ForcedLeak: AI agent risks exposed in Salesforce Agentforce](https://noma.security/blog/forcedleak-agent-risks-exposed-in-salesforce-agentforce/)
- **05**: [Wiz Research · Exposed DeepSeek database leaking chat history and secret keys](https://www.wiz.io/blog/wiz-research-uncovers-exposed-deepseek-database-leak)
- **06**: [JFrog · Data scientists targeted by malicious Hugging Face ML models with silent backdoor](https://jfrog.com/blog/data-scientists-targeted-by-malicious-hugging-face-ml-models-with-silent-backdoor/)
- **07**: [Nx · s1ngularity: what happened, how we responded, what we learned](https://nx.dev/blog/s1ngularity-postmortem)
- **08**: [Invariant Labs · GitHub MCP exploited: accessing private repositories via MCP](https://invariantlabs.ai/blog/mcp-github-vulnerability)

## Continue lendo

- **CONSULTORIA · AGO · 2026**: [Quanto custa implementar IA em 2026: as três faixas, com as contas abertas](https://okamiops.com/pt/insights/quanto-custa-implementar-ia-2026/) (6 min)
- **GATEWAY · JUL · 2026**: [Output de LLM varia 106× entre fornecedores. Sua PME paga o teto.](https://okamiops.com/pt/insights/llm-cost-spread-2026/) (6 min)
- **COMPLIANCE · MAR · 2026**: [EU AI Act depois do Digital Omnibus: o calendário real e o plano de 90 dias](https://okamiops.com/pt/insights/eu-ai-act-timeline/) (7 min)

## Sem opinião solta. Cada número tem fonte, cada artigo termina com o que fazer.

Escrevemos o que aprendemos resolvendo o problema em cliente. Se o seu caso parece com algum destes, a conversa começa por aqui.
