CyberGlossary

Schwachstellen

Double Free

Auch bekannt als: Double-Free-Schwachstelle

Definition

Speicherfehler, 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

  • CVE-2015-1322: glibc-tcache-Double-Free führt zu Heap-Korruption.
  • CVE-2019-19377: Linux-btrfs-Double-Free durch missgebildete Images.

Verwandte Begriffe