← Glossar
Entwicklung

Was ist Use-After-Free?

UAF

Dies ist eine Sicherheitslücke, die dadurch entsteht, dass ein Programm versucht, auf einen Speicherbereich zuzugreifen, nachdem dieser freigegeben wurde.

Definition

Use-After-Free entsteht, wenn während der Speicherverwaltung eine Datenstruktur gelöscht oder freigegeben wird, der Zeiger aber weiterhin auf diese Adresse zeigt. Das Lesen oder Schreiben des Programms in diese ungültige Adresse führt zu unerwarteten Abstürzen oder zur Ausführung von Schadcode. Insbesondere Sprachen wie Rust, die die Speichersicherheit zur Compile-Zeit überprüfen, sind darauf ausgelegt, solche Fehler zu verhindern.

Analogie: Das ist vergleichbar damit, nach der Abgabe des Zimmerschlüssels eines Hotelzimmers wieder hineinzugehen und zu versuchen, die Habseligkeiten des neuen Gastes zu verändern, der dort geblieben ist.

So funktioniert es

Der Programmierer oder Speicherverwalter gibt einen Speicherblock frei, setzt jedoch die Variable, die auf diesen Block zeigt, nicht zurück. Wenn das Programm in späteren Schritten versucht, diesen veralteten Zeiger für Operationen zu verwenden, tritt ein Speicherfehler auf.

Wo es eingesetzt wird

Es tritt häufig in Systemprogrammiersprachen auf, die eine manuelle Speicherverwaltung erfordern, wie etwa C und C++, sowie bei untersuchten Sicherheitslücken und Schwachstellenanalysen.

Häufig verwechselt mit

Während eine Memory-Leak-Schwachstelle dadurch gekennzeichnet ist, dass ungenutzter Speicher nicht freigegeben wird, handelt es sich bei Use-After-Free um die fehlerhafte Wiederverwendung von bereits freigegebenem Speicher.

Fragen und Antworten

Wie wird diese Sicherheitslücke verhindert?

Sie wird verhindert, indem Zeiger unmittelbar nach der Speicherfreigabe zurückgesetzt werden oder indem Sprachen bevorzugt werden, die Speichersicherheit gewährleisten.

Ermöglicht diese Schwachstelle die Remotecodeausführung?

Ja, Angreifer können den Kontrollfluss übernehmen, indem sie ihre eigenen Daten in den freigegebenen Speicherbereich schreiben.

Verwandte Begriffe

Diese Erklärung wurde für TreScout mit KI in einfacher Sprache verfasst und maschinell übersetzt aus dem türkischen Original · maßgeblich ist die türkische Fassung. Wenn etwas falsch oder unvollständig wirkt, schreiben Sie an hello@trescout.com. Auf Türkisch lesen →