Programas com Falhas são aqueles com projeto de segurança e configurações apropriadas,
mas que possuem falhas de implementação ou codificação que podem ser explorados
remotamente. Nestes casos, "hackers" enviam dados maliciosamente preparados para
explorar estes erros de implementação.
Uma falha de implementação muito comum são os estouros de "buffer". Um "buffer",
que
possui tamanho fixo para armazenar dados de entrada, é criado, mas não foi implementada a
checagem da quantidade de dados de entrada, que avalia se esta quantidade pode ser
devidamente armazenada ou se ocorrerá o estouro do "buffer". O "hacker" pode enviar
dados
em excesso, de forma que o "buffer" estourará, sobrescrevendo o que segue ao fim do "buffer".
Erros de estouro de "buffer" são, há tempos, conhecidos, e facilmente evitáveis,
mas ainda
são, freqüentemente, os mais descobertos e explorados.