Buffer é um local na memória física que tem como finalidade guardar dados antes de processá-los. Quando cito “memória física” refiro-me a uma peça(hardware) e não um programa. Como exemplo de buffer podemos citar vídeos; enquanto estamos no minuto 1 de um vídeo o computador já guardou/carregou em memória os próximos minutos e assim você desfruta de um vídeo sem travamentos.
Clique aqui para saber mais sobre buffer.
Sabemos o que é buffer, mas e quanto a Buffer Overflow?
Conhecido também como buffer overrun ou, em português, transbordamento de dados, ocorre quado há mais dados do que um buffer consegue gerenciar. Isso pode causar o travamento do sistema ou criar uma fragilidade que pode ser explorada por um hacker.
Quando um buffer possui mais dados o que pode gerenciar, essa sobra ou excedente de dados pode vazar para um espaço próximo de memória e sobrescrever dados que estava naquele espaço e pode também travar o sistema ou criar vulnerabilidades que podem ser exploradas por criminosos virtuais.
Geralmente o buffer overflow trata-se de uma falha de programação. Algumas linguagens estão mais suscetíveis. Exemplo, Perl e javacript não é propensa à essa falha. Por outro lado, C++, C, Fortran ou Assembly são propensas a ocasionar buffer overflow.