Hvad er en bufferoverløb?
En bufferoverløb forekommer, når et program forsøger at skrive til en buffer og træder uden for dets grænser, hvilket resulterer i programmets skrivningsinformation til hukommelse, der potentielt hører til et andet program. Dette krænker integriteten af hukommelse i operativsystemet, hvilket resulterer i en alvorlig fejl og potentielt nedbrud for eksekveringsprogrammet. Den største fare for en bufferoverløb kommer fra to hovedelementer. For det første er de oplysninger, der er skrevet uden for bufferen, tilsyneladende "tabt", da computerens hukommelseskort - dets liste over hukommelsesplaceringer - ikke kan redegøre for det. For det andet kan en bufferoverløb ved et uheld overskrive information, der er gemt i hukommelsen til et andet program, og effektivt interferere med udførelsen af et andet program også.
En "buffer" er et hukommelsesområde, der bruges som en midlertidig lagerplads, mens computeren overfører information fra et punkt til et andet. Den mest almindelige brug af en buffer er typisk i video- eller lydafspilning, hvor computeren cuer yderligere X sekunders optagelser eller lyd i hukommelsen, hvilket sikrer, at afspilningen ikke afbrydes, hvis noget midlertidigt går galt i systemet. En buffer findes kun inden for en bestemt, forudbestemt placering i computerens hukommelse, ligesom et land kun findes inden for de grænselinjer, der er tegnet på et kort. Træning uden for disse virtuelle "linjer" resulterer i problemer ikke kun for det program, der kører, men for andre programmer på systemet.
I det væsentlige er programmet trådt uden for dens tildelte jurisdiktion og har invaderet pladsen i et andet arbejdsprogram. Når dette sker, falder de oplysninger, der er skrevet uden for bufferen, effektivt fra computerens kort; med andre ord, systemet har ikke længere nogen måde at hente det på. Da computeren kun "kender" til at søge efter bufrede oplysninger inden for den specifikke bufferplads, der er tildelt i hukommelsen, er det ingen måde at finde ud af, hvor den overløbne information er gået.
Derudover har en bufferoverløb potentialet til at forstyrre andre programmer, der kører på computeren. Forestil dig, at hukommelseslagringspladsen på hver side af bufferen allerede er tildelt til andre kørende programmer. Når informationen i bufferen bløder forbi det designede område, vil den overskrive og ødelægge alle oplysninger, der allerede er gemt i disse hukommelsesdele. Derfor er en bufferoverløb et problem, der kan undergrave effektiviteten af et tilstødende program såvel som at ødelægge dets egen operation.