Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 149

Buffer overflow

Revisado porCybersecurity entrepreneur & security researcher

O que é Buffer overflow?

Buffer overflowFalha de segurança de memória em que um programa escreve para além do fim de um buffer alocado, corrompendo memória adjacente e permitindo frequentemente execução de código.


Os buffer overflows ocorrem quando os comprimentos de entrada não são devidamente limitados em relação ao tamanho do buffer de destino, em linguagens como C e C++. Os bytes excedentes sobrescrevem stack frames adjacentes, chunks de heap, ponteiros de função ou endereços de retorno, permitindo que atacantes desviem o fluxo de controlo ou vazem dados. Um stack smash clássico sobrescreve o endereço de retorno guardado, de modo que a função "retorna" para shellcode fornecido pelo atacante; os heap overflows, em vez disso, corrompem metadados do alocador ou objetos adjacentes para obter uma primitiva de escrita.

Este padrão moldou a história da internet. O Morris Worm de 1988 propagou-se através de um stack overflow no fingerd do BSD; o Code Red (2001) abusou de um buffer não verificado no filtro ISAPI .ida do IIS (CVE-2001-0500); e o SQL Slammer (2003) explorou o overflow do SQL Server Resolution Service (MS02-039 / CVE-2002-0649), infetando cerca de 75.000 hosts em dez minutos através de um único pacote UDP de 404 bytes para a porta 1434 — seis meses após o lançamento do patch.

A escrita fora dos limites (out-of-bounds write, CWE-787) ficou em #2 no CWE Top 25 de 2024, atrás apenas do XSS. As mitigações modernas combinam canários de pilha, ASLR, DEP/NX, Control-Flow Integrity (Intel CET, ARM PAC/BTI), funções libc mais seguras, hardening de compilador (_FORTIFY_SOURCE), testes de fuzzing e — cada vez mais — a migração de código crítico para linguagens com segurança de memória como Rust.

flowchart TD
  A[Atacante envia entrada sobredimensionada] --> B{Comprimento verificado<br/>contra o tamanho do buffer?}
  B -->|Sim, limitado| C[Entrada truncada / rejeitada]
  B -->|Sem verificação de limites| D[Escrita para além do fim do buffer]
  D --> E[Sobrescreve o endereço de retorno<br/>ou ponteiro de função]
  E --> F[Fluxo de controlo redirecionado]
  F --> G[Shellcode do atacante / cadeia ROP executa]
  C --> H[Programa continua em segurança]

Exemplos

  1. 01

    CVE-2014-0160 (Heartbleed): overflow de leitura de memória no OpenSSL.

  2. 02

    Worm Morris (1988): explorou um overflow de pilha no fingerd.

Perguntas frequentes

O que é Buffer overflow?

Falha de segurança de memória em que um programa escreve para além do fim de um buffer alocado, corrompendo memória adjacente e permitindo frequentemente execução de código. Pertence à categoria Vulnerabilidades da cibersegurança.

O que significa Buffer overflow?

Falha de segurança de memória em que um programa escreve para além do fim de um buffer alocado, corrompendo memória adjacente e permitindo frequentemente execução de código.

Como se defender contra Buffer overflow?

As defesas contra Buffer overflow costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para Buffer overflow?

Nomes alternativos comuns: Sobreposição de buffer.

Termos relacionados

Ver também