Um estouro de buffer pode ter várias conseqüências.
Um dos menores problemas é o travamento do aplicativo. Este é um bom resultado porque você descobre logo o problema e normalmente não existe brecha de segurança porque o programa morreu.
Podemos também ter mal funcionamento intermitente: às vezes um recurso funciona, às vezes não.
Podemos também ter perda dos dados em memória e disco.
Mas o principal problema de segurança é quando o hacker consegue através de um estouro de buffer executar código privilegiado.
Pode parecer estranho que um problema de dados permita executar código, mas isto se deve ao fato das CPUs modernas – menos o Itanium – armazenarem os endereços de retorno na mesma área de memória - pilha - que as variáveis locais.
Em alguns casos é possível causar um estouro de buffer tal que o endereço de retorno tenha algum valor de interesse do hacker. Quando a função termina, ela “volta” para aquele endereço que pode fazer algo inusitado, como aumentar os privilégios do usuário ou permitir enviar novos comandos.