Double Free
Was ist Double Free?
Double FreeSpeicherfehler, bei dem derselbe Heap-Chunk zweimal freigegeben wird, was Allokator-Metadaten beschädigt und häufig beliebige Codeausführung ermöglicht.
Ein Double Free entsteht, wenn free()/delete mehr als einmal auf denselben Pointer angewendet wird. Freelists oder Bins des Allokators werden inkonsistent, sodass Angreifer eine spätere Allokation dazu bringen können, beeinflussten Speicher oder mit lebenden Objekten überlappenden Speicher zurückzugeben – ein Primitiv, das zu beliebigen Schreibvorgängen und Codeausführung führen kann. Klassifiziert als CWE-415, oft zusammen mit Use-After-Free- und Double-Fetch-Bugs. Abwehr: Single-Ownership-Muster (RAII, Smart Pointer), Pointer nach free auf NULL setzen, gehärtete Allokatoren mit Double-Free-Erkennung (glibc-tcache-Schutz, scudo), AddressSanitizer-Tests und speichersichere Sprachen.
● Beispiele
- 01
CVE-2015-1322: glibc-tcache-Double-Free führt zu Heap-Korruption.
- 02
CVE-2019-19377: Linux-btrfs-Double-Free durch missgebildete Images.
● Häufige Fragen
Was ist Double Free?
Speicherfehler, bei dem derselbe Heap-Chunk zweimal freigegeben wird, was Allokator-Metadaten beschädigt und häufig beliebige Codeausführung ermöglicht. Es gehört zur Kategorie Schwachstellen der Cybersicherheit.
Was bedeutet Double Free?
Speicherfehler, bei dem derselbe Heap-Chunk zweimal freigegeben wird, was Allokator-Metadaten beschädigt und häufig beliebige Codeausführung ermöglicht.
Wie schützt man sich gegen Double Free?
Schutzmaßnahmen gegen Double Free kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Double Free?
Übliche alternative Bezeichnungen: Double-Free-Schwachstelle.