débordement de tampon

Une définition du Jargon Français.

locution nominale, masculin.  [sécurité]  [programmation]. Débordement se produisant dans une zone en mémoire (un tampon), lorsque trop de données y sont placées.

C'est rendu possible parce que le programme qui range les données dans cette zone ne vérifie pas, au préalable, qu'elles peuvent y tenir.

Les éléments écrits après l'extrémité du tampon remplacent parfois indûment des données ou un morceau de programme.

Un pirate autorisé à placer des données dans un tampon, par exemple parce qu'un programme le laisse saisir des informations et range en mémoire ce qu'il fournit, peut ainsi tenter d'insérer ses propres instructions dans la copie placée en mémoire d'un programme en cours d'exécution, par exemple afin de s'arroger le contrôle de la machine.

Pour cela le pirate se débrouille pour placer dans le tampon plus de données qu'il n'en peut contenir de sorte que celles qui seront indûment tolérées après la fin du tampon en mémoire (c'est la faille du système attaqué, qui devrait interdire cela en tronquant les données ou en refusant de tenter de placer dans le tampon celles qui dépassent sa capacité d'accueil) mènent à l'exécution des instructions ainsi imposées par le pirate, effectuant ce qu'il a envie de faire. D'ordinaire ces données résiduelles remplacent dans la pile une adresse de retour correcte par celle d'un programme dangereux.

C'est une forme d'injection qui repose sur un dépassement de tampon.

Une parade consiste à programmer une vérification systématique interdisant ces dépassements.

Nombre d'anciens programmes en C présentent cette faille.

En anglais: « buffer overflow ».

Voir aussi débordement de pile.