O que é buffer overflow?
Buffer overflow é um erro em que um programa grava mais dados do que cabe no espaço de memória reservado para eles, e esses dados extras transbordam para áreas vizinhas. Isso pode travar o sistema ou abrir brechas que criminosos tentam usar.
Na prática, a linguagem de programação ou o próprio programa reserva um pedaço fixo de memória, chamado buffer, para guardar uma informação, como um nome digitado ou um pacote recebido pela rede. Se a entrada for maior do que esse espaço e o programa não verificar o tamanho antes de gravar, o excesso ocupa posições de memória que não deveriam ser alteradas. O resultado pode ser uma falha imediata ou um comportamento imprevisível.
Uma analogia simples é pensar em uma caixa de correspondência com espaço para dez cartas. Se alguém enfiar vinte cartas à força, as extras caem no chão e atrapalham o que estava ao lado, em vez de simplesmente ficarem de fora.
Esse problema importa porque é uma das falhas mais antigas e recorrentes em software, e sua exploração pode dar a um invasor controle indevido sobre um sistema. A proteção começa com o desenvolvimento cuidadoso, validando o tamanho das entradas, e continua com a aplicação rápida de atualizações de segurança, os patches, que os fabricantes e mantenedores liberam quando essas falhas são descobertas.