Définition
Une erreur où un programme écrit plus de données dans un tampon mémoire contigu et de taille fixe qu'il ne peut en contenir, écrasant ainsi la mémoire adjacente et pouvant provoquer des plantages, des comportements incorrects ou des failles de sécurité.

Principe

Principe
Les régions mémoire allouées comme tampons contigus ont des limites fixes ; écrire au‑delà de ces limites corrompt la mémoire voisine parce que le matériel et de nombreux environnements d'exécution n'empêchent ni ne corrigent automatiquement les écritures hors bornes.

Démonstration

Démonstration
Une fonction en C copie une chaîne d'entrée non validée dans un tableau char local avec strcpy. Si la longueur de l'entrée dépasse celle du tableau, des octets débordent dans les données de la pile voisine, pouvant modifier des adresses de retour ou des variables et provoquer un plantage ou l'exécution arbitraire de code.

Mauvaise application

Mauvaise application
Interpréter tout échec après une saisie inhabituelle comme un dépassement de tampon sans vérifier l'organisation mémoire, ou supposer que les langages gérés sont entièrement immunisés ; supposer aussi que tous les dépassements sont exploitables alors que beaucoup causent seulement des plantages.

Conséquence

Conséquence
Lorsqu'il est présent et exploitable, le dépassement de tampon peut entraîner des plantages d'application, une corruption de données, une élévation de privilèges ou l'exécution de code à distance ; correctement atténué, le code évite la corruption mémoire aléatoire et réduit la surface d'attaque.

Inversion

Inversion
Des contrôles explicites des bornes, l'utilisation d'APIs limitant la longueur, de conteneurs à vérification automatique des limites ou de tampons dynamiques inversent le comportement d'écriture incontrôlée en garantissant que les écritures restent dans la mémoire allouée.

Limite

Limite
Couvre les écritures hors bornes dans des tampons contigus (pile, tas, statique). N'inclut pas les erreurs logiques sur des structures de données qui n'écrivent pas au‑delà de l'allocation, les dépassements entiers qui modifient seulement des valeurs numériques (même s'ils peuvent permettre des dépassements de tampon) ni les use‑after‑free qui constituent une faute de mémoire différente.

Tension sémantique

Tension sémantique
Se recoupe avec « accès hors bornes », « dépassement du tas » et « corruption mémoire » ; la tension provient du fait que « dépassement de tampon » met l'accent sur les écritures dans des tampons contigus tandis que les termes voisins insistent sur le temps (race), la durée de vie (use‑after‑free) ou les causes numériques (débordement entier).

Synthèse

Synthèse
Le dépassement de tampon est le mode de défaillance où des écritures non contrôlées dépassent les limites d'un tampon alloué, fondé sur le principe que la mémoire est partitionnée en régions bornées ; visible dans les opérations de copie non sécurisées, souvent mal identifié sans inspection mémoire, entraînant des conséquences de plantage à exploit, et résolu par contrôles de bornes ou abstractions plus sûres.