Definição – o que significa estouro de buffer?
Um estouro de buffer ocorre quando mais dados são gravados em um buffer do que ele pode conter. Os dados em excesso são gravados na memória adjacente, sobrescrevendo o conteúdo daquele local e causando resultados imprevisíveis em um programa. Estouros de buffer acontecem quando há validação imprópria (sem limites antes dos dados serem gravados. É considerado um bug ou uma fraqueza do software
Definirtec explica o estouro de buffer
Os invasores podem explorar um bug de estouro de buffer, injetando código que é especificamente adaptado para causar estouro de buffer com a parte inicial de um conjunto de dados e, em seguida, gravando o restante dos dados no endereço de memória adjacente ao buffer de estouro. Os dados de estouro podem conter código executável que permite que os invasores executem programas maiores e mais sofisticados ou concedam a si próprios acesso ao sistema.
Estouros de buffer são um dos piores bugs que podem ser explorados por um invasor, principalmente porque são muito difíceis de encontrar e corrigir, especialmente se o software consistir em milhões de linhas de código. Mesmo as correções para esses bugs são bastante complicadas e sujeitas a erros. É por isso que é quase impossível remover totalmente esse tipo de bug.
Embora todos os programadores saibam da ameaça potencial de estouro de buffer em seus programas, ainda existem muitas ameaças relacionadas ao estouro de buffer em softwares novos e antigos, independentemente do número de correções que já foram realizadas.