---
title: "OWASP Top 10 2025: o que mudou e como se proteger de cada risco"
description: "Guia prático do OWASP Top 10 2025 em português: as dez categorias, o que mudou em relação a 2021, exemplos em código e como detectar e prevenir cada risco."
url: "https://security.transitax.com/blog/owasp-top-10-2025"
---

Vulnerabilidades

# OWASP Top 10 2025: o que mudou e como se proteger de cada risco

Guia prático do OWASP Top 10 2025 em português: as dez categorias, o que mudou em relação a 2021, exemplos em código e como detectar e prevenir cada risco.

[Equipe de Pesquisa TransiTax Security](https://security.transitax.com/sobre#pesquisa)Publicado em 26 de agosto de 2026Atualizado em 5 de setembro de 20265 min de leitura

Resumo

-   O OWASP Top 10 2025 manteve controle de acesso quebrado em primeiro lugar e subiu configuração incorreta para o segundo.
-   Duas novidades: falhas na cadeia de suprimentos de software (A03) e tratamento inadequado de condições excepcionais (A10).
-   SSRF deixou de ser categoria própria e foi incorporado ao controle de acesso quebrado.
-   Nenhuma ferramenta cobre as dez categorias sozinha: a combinação de SAST, SCA, CSPM, DAST e pentest é o caminho.

Neste artigo

1.  [O que mudou em relação a 2021](#o-que-mudou-em-relacao-a-2021)
2.  [A01:2025 Controle de acesso quebrado](#a012025-controle-de-acesso-quebrado)
3.  [A02:2025 Configuração incorreta de segurança](#a022025-configuracao-incorreta-de-seguranca)
4.  [A03:2025 Falhas na cadeia de suprimentos de software](#a032025-falhas-na-cadeia-de-suprimentos-de-software)
5.  [A04:2025 Falhas criptográficas](#a042025-falhas-criptograficas)
6.  [A05:2025 Injeção](#a052025-injecao)
7.  [A06:2025 Projeto inseguro](#a062025-projeto-inseguro)
8.  [A07:2025 Falhas de autenticação](#a072025-falhas-de-autenticacao)
9.  [A08:2025 Falhas de integridade de software e de dados](#a082025-falhas-de-integridade-de-software-e-de-dados)
10.  [A09:2025 Falhas de registro e alerta](#a092025-falhas-de-registro-e-alerta)
11.  [A10:2025 Tratamento inadequado de condições excepcionais](#a102025-tratamento-inadequado-de-condicoes-excepcionais)
12.  [Como usar o OWASP Top 10 no seu time](#como-usar-o-owasp-top-10-no-seu-time)

O OWASP Top 10 é a lista de referência dos riscos mais críticos em aplicações web, mantida pela OWASP Foundation a partir de dados de milhares de aplicações testadas e de uma pesquisa com profissionais da área. A edição 2025, apresentada em novembro de 2025, substitui a de 2021 e reflete como os ataques mudaram: menos foco em falhas pontuais de código e mais foco em configuração, dependências e falhas de projeto.

Abaixo, cada uma das dez categorias com o que ela significa na prática, um exemplo e como detectar.

## [O que mudou em relação a 2021](#o-que-mudou-em-relacao-a-2021)

-   **Controle de acesso quebrado continua em primeiro** e agora absorve o SSRF, que em 2021 era a categoria A10.
-   **Configuração incorreta de segurança subiu do quinto para o segundo lugar**, reflexo de aplicações cada vez mais configuráveis e de infraestrutura como código.
-   **Falhas na cadeia de suprimentos de software entram como A03**, ampliando a antiga categoria de componentes vulneráveis para incluir pacotes maliciosos, pipelines de build e dependências comprometidas.
-   **Tratamento inadequado de condições excepcionais é a nova A10**, cobrindo erros mal tratados que expõem dados ou deixam o sistema em estado inseguro.
-   **Injeção caiu para o quinto lugar**, não porque ficou menos grave, mas porque frameworks modernos a previnem por padrão.

## [A01:2025 Controle de acesso quebrado](#a012025-controle-de-acesso-quebrado)

Um usuário consegue fazer algo que não deveria: ver o pedido de outro cliente trocando o ID na URL (IDOR), acessar uma rota administrativa sem ser administrador, ou fazer o servidor buscar uma URL interna (SSRF).

```python
# Vulnerável: qualquer usuário autenticado lê qualquer fatura
@app.get("/faturas/<int:fatura_id>")
@login_required
def obter_fatura(fatura_id):
    return Fatura.query.get_or_404(fatura_id).to_dict()

# Corrigido: a consulta é limitada ao dono
@app.get("/faturas/<int:fatura_id>")
@login_required
def obter_fatura(fatura_id):
    return Fatura.query.filter_by(id=fatura_id, cliente_id=current_user.id).first_or_404().to_dict()
```

**Como detectar:** ausência de verificação é difícil para regras estáticas. Os métodos mais eficazes são [pentest com IA](https://security.transitax.com/funcionalidades/pentest-com-ia) com múltiplos usuários de teste, [testes de API](https://security.transitax.com/funcionalidades/seguranca-de-apis) focados em BOLA e [revisão de pull request com IA](https://security.transitax.com/funcionalidades/revisao-de-pull-request), que nota quando uma rota nova não tem checagem de permissão.

## [A02:2025 Configuração incorreta de segurança](#a022025-configuracao-incorreta-de-seguranca)

Contas padrão habilitadas, mensagens de erro detalhadas em produção, buckets públicos, CORS aberto, cabeçalhos de segurança ausentes, recursos de depuração ligados. É a categoria que mais cresceu.

**Como detectar:** [CSPM](https://security.transitax.com/funcionalidades/cspm) para a nuvem, [análise de IaC](https://security.transitax.com/funcionalidades/infraestrutura-como-codigo) para Terraform e Kubernetes antes do deploy e [DAST](https://security.transitax.com/funcionalidades/dast) para cabeçalhos, TLS e páginas expostas. Veja as [12 configurações erradas mais comuns na nuvem](https://security.transitax.com/blog/cspm-aws-azure-gcp).

## [A03:2025 Falhas na cadeia de suprimentos de software](#a032025-falhas-na-cadeia-de-suprimentos-de-software)

Tudo o que você não escreveu mas executa: dependências com vulnerabilidades conhecidas, pacotes maliciosos publicados em registros públicos, ações de CI de terceiros, imagens base desatualizadas e sistemas de build comprometidos. Os ataques ao npm em 2025, que atingiram pacotes com bilhões de downloads semanais, mostram por que a categoria ganhou espaço próprio.

**Como detectar:** [SCA com alcançabilidade](https://security.transitax.com/funcionalidades/sca), [detecção de malware em dependências](https://security.transitax.com/funcionalidades/malware-em-dependencias), [SBOM](https://security.transitax.com/funcionalidades/sbom) e [proteção das máquinas de desenvolvimento](https://security.transitax.com/funcionalidades/protecao-de-dispositivos). Detalhes em [ataques à cadeia de suprimentos](https://security.transitax.com/blog/ataques-cadeia-de-suprimentos-npm).

## [A04:2025 Falhas criptográficas](#a042025-falhas-criptograficas)

Dados sensíveis trafegando sem TLS, senhas com hash rápido (MD5, SHA1) e sem salt, chaves embutidas no código, algoritmos obsoletos, geradores de números aleatórios previsíveis usados para tokens.

```js
// Vulnerável: token de recuperação previsível
const token = Math.random().toString(36).slice(2);

// Corrigido: gerador criptograficamente seguro
const token = crypto.randomBytes(32).toString('base64url');
```

**Como detectar:** SAST encontra algoritmos fracos e aleatoriedade insegura; [detecção de secrets](https://security.transitax.com/funcionalidades/secrets) encontra chaves no código; CSPM verifica criptografia em repouso.

## [A05:2025 Injeção](#a052025-injecao)

Entrada do usuário interpretada como código ou comando: SQL, NoSQL, comando do sistema, LDAP, templates e XSS, que foi incorporado a esta categoria desde 2021.

**Como detectar:** é o território clássico do [SAST](https://security.transitax.com/funcionalidades/sast) com análise de fluxo de dados. Em produção, a [proteção em runtime](https://security.transitax.com/funcionalidades/protecao-em-runtime) bloqueia a injeção no momento em que ela alteraria a consulta.

## [A06:2025 Projeto inseguro](#a062025-projeto-inseguro)

Falhas que nascem no desenho, não na implementação: um fluxo de recuperação de senha que confia em perguntas públicas, um checkout que aceita o preço vindo do cliente, uma API sem limite de tentativas. Código perfeito não conserta um projeto inseguro.

**Como detectar:** modelagem de ameaças na fase de projeto, [auditoria de código com IA](https://security.transitax.com/funcionalidades/auditoria-de-codigo-com-ia) que raciocina sobre fluxos inteiros, e pentest focado em lógica de negócio.

## [A07:2025 Falhas de autenticação](#a072025-falhas-de-autenticacao)

Ausência de MFA, senhas fracas aceitas, sessões que não expiram, tokens JWT sem validação de assinatura ou de expiração, falta de proteção contra credential stuffing.

**Como detectar:** DAST e pentest para fluxos de login e sessão; SAST para validação de JWT; [proteção contra bots](https://security.transitax.com/funcionalidades/protecao-contra-bots) para credential stuffing em produção.

## [A08:2025 Falhas de integridade de software e de dados](#a082025-falhas-de-integridade-de-software-e-de-dados)

Atualizações sem verificação de assinatura, desserialização insegura de dados vindos do cliente, pipelines de CI que executam código não confiável de pull requests externos.

**Como detectar:** SAST para desserialização; análise de configuração de pipelines de CI; assinatura e proveniência de artefatos, como fazem as [imagens endurecidas](https://security.transitax.com/funcionalidades/imagens-endurecidas).

## [A09:2025 Falhas de registro e alerta](#a092025-falhas-de-registro-e-alerta)

A aplicação não registra eventos relevantes, como falhas de login e mudanças de permissão, ou registra mas ninguém é alertado. O resultado é o incidente descoberto meses depois. A mudança de nome, de "monitoramento" para "alerta", reforça que log sem alerta não protege.

**Como detectar:** revisão de código para eventos de segurança; checagem de trilhas de auditoria na nuvem via CSPM; proteção em runtime que gera eventos de ataque para o seu SIEM.

## [A10:2025 Tratamento inadequado de condições excepcionais](#a102025-tratamento-inadequado-de-condicoes-excepcionais)

Erros não tratados que expõem stack traces e dados, exceções engolidas que deixam uma transação pela metade, sistemas que "falham abertos" e liberam acesso quando um serviço de autorização cai.

```ts
// Vulnerável: se o serviço de permissões falhar, libera o acesso
async function podeAcessar(usuario: Usuario, recurso: string) {
  try {
    return await permissoes.verificar(usuario.id, recurso);
  } catch {
    return true;
  }
}
```

A correção é falhar fechado: em caso de erro, negar e registrar.

**Como detectar:** SAST para blocos que engolem exceções; [análise de qualidade de código](https://security.transitax.com/funcionalidades/qualidade-de-codigo) para tratamento de erro inconsistente; DAST para mensagens de erro detalhadas.

## [Como usar o OWASP Top 10 no seu time](#como-usar-o-owasp-top-10-no-seu-time)

O Top 10 é um documento de conscientização, não uma norma completa. Use-o para três coisas:

1.  **Treinamento:** as dez categorias são o vocabulário mínimo de qualquer pessoa que escreve código.
2.  **Critério de revisão:** inclua as categorias no template de pull request e no checklist de arquitetura.
3.  **Mapa de cobertura:** para cada categoria, pergunte qual ferramenta ou processo detecta aquele risco hoje. As lacunas mostram onde investir.

Para verificações mais detalhadas, o OWASP ASVS (*Application Security Verification Standard*) oferece uma lista de requisitos testáveis por nível de criticidade.

Quer ver isso rodando no seu código?

Em 30 minutos mostramos a TransiTax Security num repositório seu, separando o que é explorável do que é ruído.

[Falar com um especialista](https://security.transitax.com/contato)

Escrito por

Equipe de Pesquisa TransiTax Security

Engenheiros de segurança de aplicações e de nuvem que acompanham registros de pacotes, bases de vulnerabilidades e técnicas de ataque. [Conheça a equipe](https://security.transitax.com/sobre#pesquisa).

Neste artigo

1.  [O que mudou em relação a 2021](#o-que-mudou-em-relacao-a-2021)
2.  [A01:2025 Controle de acesso quebrado](#a012025-controle-de-acesso-quebrado)
3.  [A02:2025 Configuração incorreta de segurança](#a022025-configuracao-incorreta-de-seguranca)
4.  [A03:2025 Falhas na cadeia de suprimentos de software](#a032025-falhas-na-cadeia-de-suprimentos-de-software)
5.  [A04:2025 Falhas criptográficas](#a042025-falhas-criptograficas)
6.  [A05:2025 Injeção](#a052025-injecao)
7.  [A06:2025 Projeto inseguro](#a062025-projeto-inseguro)
8.  [A07:2025 Falhas de autenticação](#a072025-falhas-de-autenticacao)
9.  [A08:2025 Falhas de integridade de software e de dados](#a082025-falhas-de-integridade-de-software-e-de-dados)
10.  [A09:2025 Falhas de registro e alerta](#a092025-falhas-de-registro-e-alerta)
11.  [A10:2025 Tratamento inadequado de condições excepcionais](#a102025-tratamento-inadequado-de-condicoes-excepcionais)
12.  [Como usar o OWASP Top 10 no seu time](#como-usar-o-owasp-top-10-no-seu-time)
13.  [Perguntas frequentes](#perguntas-frequentes)

## Perguntas frequentes

Respostas diretas às dúvidas mais comuns sobre o tema.

### Quando foi lançado o OWASP Top 10 2025?

A versão foi apresentada em novembro de 2025 e substitui a edição de 2021.

### Qual o risco número um do OWASP Top 10 2025?

Controle de acesso quebrado (A01), que agora também inclui SSRF. É a categoria encontrada com mais frequência em aplicações testadas.

### O que é a categoria A03:2025?

Falhas na cadeia de suprimentos de software. Ela amplia a antiga categoria de componentes vulneráveis e desatualizados para incluir pacotes maliciosos, pipelines de build e dependências comprometidas.

### O OWASP Top 10 é obrigatório?

Não é uma lei, mas é citado como referência em normas e contratos, como o PCI DSS, e é esperado em auditorias e questionários de segurança de clientes.

### Uma ferramenta consegue cobrir todo o OWASP Top 10?

Nenhuma técnica isolada cobre as dez categorias. É preciso combinar SAST, SCA, análise de configuração, DAST e pentest, o que é mais simples quando tudo está numa plataforma única.

## Continue lendo

-   [O que é SAST: guia completo de análise estática de código16 de setembro de 2026Fundamentos](https://security.transitax.com/blog/o-que-e-sast)
-   [SAST, DAST, IAST e SCA: diferenças e quando usar cada um2 de setembro de 2026Fundamentos](https://security.transitax.com/blog/sast-dast-iast-sca-diferencas)
-   [Pentest com IA: como funciona e quando substituir o pentest manual10 de setembro de 2026Pentest](https://security.transitax.com/blog/pentest-com-ia)

## Veja o que é explorável no seu código

Em 30 minutos mostramos a plataforma num repositório seu, separamos o risco real do ruído e montamos uma proposta em reais.

[Falar com um especialista](https://security.transitax.com/contato)

Resposta em até 1 dia útil.
