KASAN im Linux-Kernel: Wie Poison, Redzones und Schatten den Speicher überwachen

Poison, redzones and shadows: inside KASAN

KASAN im Linux-Kernel: Wie Poison, Redzones und Schatten den Speicher überwachen

KASAN (Kernel Address Sanitizer) ist ein Laufzeitprüfer im Linux-Kernel, der Out-of-Bounds-Zugriffe und Use-after-Free-Fehler erkennt. Dieser Artikel von Bootlin erklärt die Interna: die Compiler-Instrumentierung durch GCC/LLVM, die Schatten-Speicher-Verwaltung (1 Byte pro 8 Byte Kernel-Speicher) und die Bedeutung von Poisoning und Redzones. Anhand eines Beispiel-Reports wird gezeigt, wie KASAN fehlerhafte Zugriffe aufdeckt und wie die Schatten-Speicher-Werte die Zugriffsgrenzen kodieren. Der Beitrag richtet sich an Kernel-Entwickler, die die Funktionsweise und den Overhead von KASAN verstehen möchten.

Wenn KASAN aktiviert ist, nutzt der Kernel nicht den gesamten verfügbaren Speicher, sondern reserviert einen Teil davon, um den Zustand des restlichen virtuellen Adressraums zu verfolgen: Dieser reservierte Bereich ist der Schatten-Speicher.

Mehr von diesem Tag

2026-07-08