Een buffer overflow (bufferoverloop) is een kwetsbaarheid in software waarbij een programma meer data ontvangt dan het aankan. Die extra data past niet in de gereserveerde buffer (een tijdelijk opslaggebied in het geheugen). Daardoor kan het programma geheugen overschrijven dat daar niet voor bedoeld is. Dit kan leiden tot een crash, maar in sommige gevallen kan een aanvaller er ook misbruik van maken om kwaadaardige code uit te voeren of toegang te krijgen tot het systeem.
Een buffer overflow ontstaat meestal door een programmeerfout, bijvoorbeeld wanneer een applicatie invoer niet goed controleert. Als een programma niet controleert hoe lang een tekst, bestand of request is, kan er meer data binnenkomen dan er ruimte voor is. Een aanvaller kan dit bewust uitlokken door speciaal gemaakte invoer te sturen, zodat het geheugen “overloopt”.
Afhankelijk van de situatie kan een buffer overflow zorgen voor:
Omdat dit direct in het geheugen van een programma gebeurt, kan de impact groot zijn.
Om ze te voorkomen, moeten programmeurs hun code zorgvuldig schrijven en controleren op fouten. Daarnaast zijn er technieken zoals stack canaries en Address Space Layout Randomization (ASLR) die kunnen helpen om buffer overflowaanvallen te voorkomen of te beperken. Verder is het belangrijk om software en besturingssystemen up-to-date te houden met de laatste beveiligingspatches en updates, om bekende kwetsbaarheden te verminderen en zo aanvallen te voorkomen. Dit kan je doen door het uitvoeren van een pentest of een vulnerability scan.