PHP-lek: het onderhoud is afgerond, al onze servers zijn bijgewerkt. Lees meer PHP-lek: onderhoud afgerond. Lees meer
Bestellen
Hosting
Domeinnaam
Ondersteuning
Ontdek
Terug naar begrippenlijst

Use-after-free

Use-after-free is een geheugenfout waarbij een programma geheugen blijft gebruiken nadat het dat al heeft vrijgegeven.

Actueel: PHP-lek PHP2Shell (session.upload_progress): status en wat je moet doen

Use-after-free

Use-after-free is een programmeerfout waarbij software een stuk werkgeheugen blijft gebruiken nadat het dat al heeft teruggegeven. Vergelijk het met een kluisje dat je hebt ingeleverd, terwijl je de sleutel nog hebt: inmiddels ligt er iets van iemand anders in, maar jij opent het alsof het nog van jou is.

Een programma vraagt geheugen aan, gebruikt het en geeft het weer vrij, zodat het opnieuw uitgedeeld kan worden. Bewaart een ander deel van het programma nog een verwijzing naar dat oude stuk, dan leest of schrijft het straks in gegevens die er niet meer bij horen. In het mildste geval crasht het programma. Kan een aanvaller zelf bepalen wat er in het vrijgekomen geheugen komt te staan, dan kan hij gegevens uitlezen of zelfs eigen code laten uitvoeren.

Het tweede PHP-lek van oktober 2026, CVE-2026-109619, hoort bij deze soort. Na afloop van een verzoek gaf PHP het geheugen van dat verzoek vrij, terwijl sommige interne verwijzingen er nog naar wezen. Een volgend verzoek aan hetzelfde PHP-proces kon die oude verwijzing dan gebruiken. Schrijf je zelf PHP, dan maak je deze fout niet, want PHP regelt het geheugen voor je. De fout zat in de motor eronder, die in C is geschreven.

Use-after-free komt vooral voor in software die in C of C++ is geschreven, zoals browsers en besturingssystemen. Bij Chrome is ongeveer 70 procent van de ernstige beveiligingsfouten een geheugenfout, en de helft daarvan is een use-after-free. MITRE raadt daarom talen aan die het geheugen automatisch beheren.

Geschiedenis

Use-after-free is zo oud als handmatig geheugenbeheer in talen als C. Als foutklasse kreeg het een eigen nummer in de Common Weakness Enumeration van MITRE: CWE-416.

Belangrijke mijlpalen:

  • 2006: CWE-416 (Use After Free) staat in de derde conceptversie van de CWE-lijst
  • 2014: Aanvallers misbruiken een use-after-free in Internet Explorer 6 tot en met 11 CVE-2014-1776 (Wikipedia)
  • Vanaf 2015: Het Chromium-team telt in 912 ernstige fouten sinds 2015 dat de helft van de geheugenfouten een use-after-free is (Chromium)
  • 2026: CVE-2026-109619 in PHP: een verwijzing naar vrijgegeven geheugen overleeft het verzoek

Bronnen