CyberGlossary

Vulnérabilités

Débordement de tampon

Aussi appelé: Dépassement de mémoire tampon

Définition

Faille de sûreté mémoire où un programme écrit au-delà de la fin d'un tampon alloué, corrompant la mémoire adjacente et permettant souvent l'exécution de code.

Les débordements de tampon surviennent lorsque, dans des langages comme C ou C++, les longueurs d'entrée ne sont pas bornées par rapport à la taille du tampon destination. Les octets excédentaires écrasent les cadres de pile, les chunks de tas, les pointeurs de fonction ou les adresses de retour voisins, permettant aux attaquants de détourner le flux d'exécution ou de fuiter des données. Les débordements de pile classiques sont à l'origine de nombreux exploits historiques et les débordements de tas restent très fréquents aujourd'hui. Les mitigations modernes incluent les canaries, l'ASLR, DEP/NX, Control-Flow Integrity, des fonctions libc plus sûres, le fuzzing et, de plus en plus, l'usage de langages memory-safe comme Rust. Référencés sous CWE-119, ils figurent dans les listes OWASP et SANS.

Exemples

  • CVE-2014-0160 (Heartbleed) : débordement de lecture mémoire dans OpenSSL.
  • Ver Morris (1988) : exploitation d'un débordement de pile dans fingerd.

Termes liés