W wydaniu Fedora Linux 45, planowanym na jesień 2026 roku, na systemach x86_64 zamierzają domyślnie włączyć użycie stosu cieni (shadow stack) w celu zablokowania działania exploitów, które nadpisują adres powrotu funkcji w przypadku przepełnienia bufora na stosie. Ochrona ma być aktywowana dla wszystkich aplikacji i bibliotek skompilowanych za pomocą kompilatorów gcc (C, C++), clang (C, C++) oraz rustc (Rust). Plan nie został jeszcze zatwierdzony przez komitet FESCo (Fedora Engineering Steering Committee), odpowiedzialny za techniczną część rozwoju Fedora Linux. Inicjatorem włączenia stosu cieni w FedOre jest Arjun Shankar z firmy Red Hat, odpowiedzialny za pakiety z glibc w Fedora i RHEL.
Ochrona jest realizowana z wykorzystaniem możliwości sprzętowych procesorów i polega na tym, że po przekazaniu kontroli funkcji, adresy powrotu są przechowywane przez procesor nie tylko w zwykłym stosie, ale także w oddzielnym „cienkim” stosie, który nie może być zmieniony bezpośrednio. Przed wyjściem z funkcji adres powrotu jest pobierany ze stosu cieni i porównywany z adresem powrotu z głównego stosu. Niezgodność adresów prowadzi do wygenerowania wyjątku, który blokuje sytuacje, gdy exploit udało się nadpisać adres w głównym stosie. Mechanizm stosu cieni jest wspierany od 11 generacji procesorów Intel („Tiger Lake” i „Rocket Lake”) oraz mikroarchitektury Zen3 w procesorach AMD.
Źródło: opennet.ru
