En informática, un desbordamiento de montículo (heap overflow/overrun) es un problema aritmético que hace referencia al exceso de flujo de datos sobre un montículo, esto permite un acceso no autorizado a la memoria por parte de un comando o de un programa o script denominado shellcode.
Un ejemplo de heap overflow[1] podría ser el siguiente: Supongamos que un programa tiene una función que acepta una cadena de caracteres y la copia en un búfer de memoria en el heap.
Si el programador no verifica el tamaño de la cadena antes de copiarla en el búfer, un atacante podría enviar una cadena de caracteres que sea más grande que el tamaño del búfer, lo que provocaría que los caracteres adicionales se escriban en otras áreas de memoria adyacentes.
Si estas áreas de memoria contienen información importante, el atacante podría alterarla y hacer que el programa se comporte de manera inesperada.
El método de detección más común de desbordamientos del montón es el análisis dinámico en línea.