Falar sobre vulnerabilidades é abordar um dos pilares da cibersegurança, já que elas representam a porta de entrada para diversas ameaças. Compreender como funcionam, como são detectadas e por que ainda estão ativas é essencial para qualquer estratégia de segurança digital.

Entre os países da América Latina, assim como no Brasil, isso não é apenas teoria: ano após ano, relatórios como o ESET Security Report mostram que, entre as cinco vulnerabilidades mais detectadas, ainda aparecem falhas descobertas há mais de uma década.

Isso reflete uma realidade concreta e urgente: ainda há um longo caminho a percorrer em termos de atualização, monitoramento e conscientização.

Por isso, este catálogo tem como objetivo organizar e explicar os principais conceitos do universo das vulnerabilidades em diferentes categorias. Este guia foi pensado tanto para profissionais da área de cibersegurança, quanto para iniciantes e tomadores de decisão que precisam entender o cenário com clareza.

Conceitos gerais

Nesta seção, focamos em termos bastante utilizados que costumam aparecer em notícias, comunicados e manuais de implementação. São definições fundamentais para quem está começando a explorar o universo da cibersegurança.

Vulnerabilidade

É uma falha em um software que pode ser explorada por um cibercriminoso para comprometer um sistema. Pode ter origem em erros de desenvolvimento ou em configurações inadequadas. Embora não sejam ameaças em si, as vulnerabilidades criam um ambiente propício para que um software se torne a porta de entrada ideal para cibercriminosos.

Patch

É o mecanismo mais eficaz para corrigir uma vulnerabilidade, embora, muitas vezes, também seja o mais negligenciado. Trata-se de uma atualização ou "correção" desenvolvida pelo fabricante com o objetivo de resolver uma falha. Pode envolver desde a remoção de uma biblioteca vulnerável até a validação adequada de dados fornecidos pelo usuário.

Exploit

É o método utilizado para explorar uma vulnerabilidade, transformando um risco potencial em um ponto de entrada real para o cibercriminoso. Representa a primeira ameaça concretamente usada para comprometer o sistema. Pode assumir a forma de um script, arquivo ou sequência de comandos automatizados.

Payload

É o segundo código malicioso, executado após o exploit, responsável pelas consequências mais visíveis de um ataque. Ele entra em ação depois da exploração de uma vulnerabilidade para causar o prejuízo desejado pelo cibercriminoso. Pode assumir diversas formas, desde algo barulhento, como um ransomware, até algo silencioso, como um infostealer, capaz de permanecer oculto no sistema por dias ou até meses.

POC (Prova de Conceito)

As POCs são demonstrações práticas da exploração de uma vulnerabilidade, utilizadas para reportar a falha ou para que outros especialistas possam verificar se ela está presente em seus próprios sistemas. Não são necessariamente maliciosas: uma POC pode ser usada para validar a existência de uma falha sem causar prejuízos, sendo frequentemente desenvolvida com fins acadêmicos ou de pesquisa.

Zero-Day (Dia Zero)

Vulnerabilidade que ainda não possui um patch disponível e é desconhecida pelo fabricante do software afetado. Por esse motivo, os cibercriminosos podem explorá-la antes que existam correções ou defesas adequadas, o que a torna especialmente crítica e perigosa.

CVE (Common Vulnerabilities and Exposures)

Sistema padronizado de identificação de vulnerabilidades. Cada CVE possui um número único (como CVE-2013-1506), que facilita sua referência, análise e acompanhamento. Os quatro primeiros dígitos indicam o ano em que a vulnerabilidade foi publicada.

CWE (Common Weakness Enumeration)

Classificação dos tipos comuns de falhas que podem levar a uma vulnerabilidade. Enquanto o CVE identifica casos específicos, o CWE ajuda a entender as categorias e padrões subjacentes (como "overflow de buffer" ou "validação insuficiente de entrada").

CVSS (Common Vulnerability Scoring System)

Sistema de pontuação que auxilia na avaliação da gravidade de uma vulnerabilidade. A pontuação vai de 0 a 10, levando em consideração fatores como a facilidade de exploração, o impacto e o contexto. É amplamente utilizado para priorizar ações corretivas a partir de incidentes, além de resultados de testes de cibersegurança ofensiva.

Por exemplo, a CVE-2021-44228 (também conhecida como Log4Shell), que abalou o mundo há quatro anos, tem uma pontuação de 10 na versão 3 do CVSS e 9,3 na versão 2.

vulnerabilidades-catalogo-cvss
Gráfico 1. Distribuição de pontuação CVSS das vulnerabilidades descobertas nos últimos 10 anos. Fonte: CVEdetails.

Tipos de vulnerabilidades

Nesta segunda seção, reunimos alguns dos tipos mais comuns de vulnerabilidades. Estes são conceitos teóricos, que depois são adaptados a diferentes programas, como sistemas operacionais ou aplicativos. Além disso, revisaremos pequenos exemplos de explorações dessas vulnerabilidades.

Buffer Overflow (Transbordamento de buffer)

Ocorre quando um programa escreve mais dados do que pode armazenar em uma área de memória reservada. Isso pode permitir que um cibercriminoso sobrescreva outras partes da memória e execute código arbitrário.

Exemplo: imagine um aplicativo que reserva espaço para um nome de até 8 caracteres, mas não valida o tamanho da entrada. Se um usuário inserir uma string muito maior, ele pode sobrescrever outras áreas da memória do programa.

SQL Injection (Injeção de SQL)

Técnica em que um cibercriminoso insere comandos SQL maliciosos em formulários ou URLs para acessar ou manipular bancos de dados de maneira não autorizada.

Exemplo: Um formulário de login que não valida corretamente a entrada pode ser enganado se for inserido um fragmento de comando SQL que sempre retorna verdadeiro (como o clássico "OR 1==1"), permitindo o acesso sem precisar da senha.

XSS (Cross-Site Scripting)

Permite que um cibercriminoso injete scripts maliciosos em sites visitados por outros usuários.

Exemplo: Se uma página exibe comentários sem validar o conteúdo, um cibercriminoso pode incluir um código que será executado no navegador de quem visualizar esse comentário, como mostrar um alerta ou roubar dados de login.

CSRF (Cross-Site Request Forgery)

Consiste em fazer com que um usuário autenticado em um site execute uma ação indesejada. Vários ataques cibernéticos conhecidos como "de um clique" decorrem dessa vulnerabilidade.

Exemplo: Um cibercriminoso injeta código, fazendo com que uma pessoa clique em um link malicioso enquanto está conectada ao seu banco. Sem saber, essa ação envia uma solicitação que transfere dinheiro da conta da vítima.

Directory Traversal

Permite que um cibercriminoso acesse arquivos fora do diretório permitido pelo aplicativo.

Exemplo: Se um aplicativo permite visualizar imagens carregadas no site, mas não valida o nome do arquivo, um cibercriminoso pode modificar o caminho para tentar acessar arquivos sensíveis do sistema, como os de configuração do servidor.

Command Injection

Acontece quando um aplicativo executa comandos do sistema operacional a partir de entradas do usuário sem validá-las corretamente.

Exemplo: Uma ferramenta que permite realizar um ping em um endereço IP pode ser enganada para executar comandos não relacionados, como excluir arquivos ou abrir conexões externas, caso não valide adequadamente a entrada do usuário.

Insecure Deserialization

Ocorre quando um programa aceita dados estruturados, como objetos, sem validá-los adequadamente ao reconstruí-los. Isso pode permitir a execução de código arbitrário e potencialmente malicioso.

Exemplo: Um cibercriminoso modifica os dados salvos de uma sessão de login para incluir instruções que serão interpretadas como código quando o sistema processá-los.

Race Condition

Erro causado por um desenvolvimento incorreto, que faz com que o comportamento do sistema dependa da ordem em que certos processos são executados. Se um cibercriminosos conseguir alterar essa ordem ou forçar uma sequência específica, pode obter resultados inesperados.

Exemplo: Duas solicitações quase simultâneas tentando modificar o mesmo arquivo podem fazer com que um estado incorreto seja salvo, como realizar uma ação duas vezes ou contornar uma verificação.

Hardcoded credentials

Senhas, tokens ou chaves programadas diretamente no código-fonte, em vez de serem armazenadas de maneira segura.

Exemplo: Um aplicativo que utiliza uma API, onde o token está embutido no código publicado em um repositório acessível. Os cibercriminosos podem usar o token da API com fins maliciosos.

IDOR (Insecure Direct Object Reference)

Uma vulnerabilidade que ocorre quando um aplicativo permite o acesso a recursos ou informações apenas modificando um identificador, sem realizar a devida verificação das permissões do usuário.

Exemplo: Se um usuário alterar o número de ID na URL do seu perfil e acessar o perfil de outro usuário, ele estará explorando uma referência direta insegura a objetos, o que pode comprometer a privacidade e a segurança da informação.

vulnerabilidades-catalogo-cvss-tipo
Gráfico 2. Vulnerabilidades detectadas nos últimos 4 anos para alguns dos tipos mencionados. Fonte: CVEDetails.

Técnicas de Exploração

Nesta terceira seção, exploramos algumas das formas mais comuns pelas quais os atacantes exploram vulnerabilidades para comprometer sistemas. Essas técnicas não só aparecem em pesquisas e POCs, mas também são usadas ativamente em campanhas reais e pentest.

RCE (Remote Code Execution)

Permite executar código arbitrário em um sistema afetado, a partir de uma localização remota. É uma das consequências mais graves de uma vulnerabilidade, pois pode levar ao controle total do sistema comprometido. Normalmente, é o objetivo final de muitas cadeias de exploração.

A vulnerabilidade Log4Shell (CVE-2021-44228) permitiu a execução remota de código ao enviar cadeias especialmente projetadas para aplicativos que utilizavam o Apache Log4j.

LFI/RFI (Local/Remote File Inclusion)

Essas técnicas consistem em forçar um aplicativo vulnerável a carregar e executar arquivos controlados por cibercriminosos.

  • LFI (Local File Inclusion): O cibercriminoso acessa arquivos locais do servidor, o que pode permitir desde a leitura de configurações sensíveis até a execução de código se combinado com outras falhas.
  • RFI (Remote File Inclusion): O cibercriminoso inclui conteúdo remoto (por exemplo, um script hospedado por ele), o que permite diretamente a execução de código no servidor.

Ambas as técnicas estão geralmente relacionadas a erros no tratamento de rotas ou parâmetros de inclusão em linguagens como PHP.

A CVE-2025-46230 afetou uma aplicação PHP vulnerável ao LFI, permitindo a inclusão de arquivos de log e a execução de código injetado previamente.

Privilege Escalation

Essa técnica permite que um cibercriminoso aumente seus privilégios após obter acesso ao sistema. Pode ocorrer de forma vertical (passando de um usuário comum para administrador) ou horizontal (acessando recursos de outros usuários). Isso é possível explorando erros de configuração, serviços inseguros ou vulnerabilidades no sistema operacional.

A conhecida falha CVE-2021-4034, chamada de PwnKit, afetava o comando pkexec em sistemas Linux e permitia obter privilégios de root a partir de uma conta sem privilégios.

Heap Spraying

É uma técnica que tem como objetivo preparar a memória dinâmica do sistema (o heap) para facilitar a execução de um payload. O cibercriminoso preenche a memória com padrões repetidos que contêm instruções maliciosas, de forma que, quando o exploit redireciona a execução para "algum lugar do heap", aumentam as chances de que ela acabe justamente nesse código preparado.

Costuma ser combinada com outras técnicas para garantir uma execução controlada.
Essa técnica foi amplamente utilizada em ataques que exploravam o Internet Explorer nos anos 2000 e início dos anos 2010.

Return-Oriented Programming (ROP)

É uma técnica de exploração que contorna proteções modernas, como a prevenção de execução de dados (DEP/NX). Em vez de injetar código novo, o cibercriminoso reutiliza pequenos trechos de código já presentes no binário ou em bibliotecas carregadas, chamados de gadgets. Esses gadgets terminam com instruções de retorno (ret) e, ao encadeá-los, o cibercriminoso consegue montar uma lógica maliciosa sem precisar escrever código do zero.

É uma técnica avançada, mas bastante comum em exploits modernos direcionados a sistemas com mecanismos de mitigação ativados.

Conclusão

Compreender as vulnerabilidades é essencial para proteger sistemas e dados. Este guia oferece as ferramentas necessárias para identificar, classificar e mitigar riscos, fortalecendo a cibersegurança em um ambiente cada vez mais complexo.