In der Fedora Linux Version 45, die für den Herbst 2026 geplant ist, soll auf x86_64-Systemen standardmäßig die Verwendung eines shadow stacks aktiviert werden, um Exploits zu blockieren, die die Rückgabewerte von Funktionen bei einem Buffer Overflow im Stack überschreiben. Der Schutz soll für alle Anwendungen und Bibliotheken aktiviert werden, die mit den Compilern gcc (C, C++), clang (C, C++) und rustc (Rust) erstellt wurden. Der Plan ist noch nicht vom FESCo (Fedora Engineering Steering Committee) genehmigt worden, der für den technischen Teil der Entwicklung von Fedora Linux verantwortlich ist. Initiator der Einführung des shadow stacks in Fedora ist Arjun Shankar von Red Hat, der die Pakete mit glibc in Fedora und RHEL betreut.
Der Schutz wird unter Verwendung der Hardware-Funktionalitäten der Prozessoren implementiert und besteht darin, dass nach der Übergabe der Kontrolle an eine Funktion die Rückgabewerte nicht nur im normalen Stack, sondern auch in einem separaten „shadow“ Stack vom Prozessor gespeichert werden, der nicht direkt verändert werden kann. Vor dem Verlassen der Funktion wird der Rückgabewert aus dem shadow Stack extrahiert und mit dem Rückgabewert aus dem Haupt-Stack abgeglichen. Eine Abweichung der Adressen führt zur Auslösung einer Ausnahme, die Situationen blockiert, in denen es einem Exploit gelungen ist, die Adresse im Haupt-Stack zu überschreiben. Der Mechanismus des shadow Stacks wird ab der 11. Generation der Intel-Prozessoren („Tiger Lake“ und „Rocket Lake“) und der Zen3-Mikroarchitektur in AMD-Prozessoren unterstützt.
Quelle: opennet.ru
