В релизе Fedora Linux 45, релиз которого запланирован на осень 2026 года, разработчики намерены внедрить важную функцию безопасности для систем на архитектуре x86_64. Речь идет об активации по умолчанию так называемого «теневого стека» (shadow stack). Этот механизм предназначен для защиты от атак, использующих перезапись адреса возврата функций, что часто происходит при попытках эксплуатации уязвимостей типа «переполнение буфера».
Согласно предложению, новая защита будет распространяться на все программные компоненты и библиотеки, скомпилированные с использованием современных версий компиляторов: gcc (для C и C++), clang (для C и C++) и rustc (для Rust). На данный момент инициатива находится на рассмотрении технического комитета FESCo (Fedora Engineering Steering Committee), который курирует основные изменения в дистрибутиве. Инициатором внедрения выступил Арджун Шанкар (Arjun Shankar) из компании Red Hat, отвечающий за поддержку пакетов glibc в Fedora и RHEL.
Принцип работы теневого стека
Механизм защиты полагается на аппаратную поддержку со стороны центрального процессора. Суть работы «теневого стека» заключается в следующем: при вызове любой функции адрес возврата сохраняется не только в обычном, доступном для записи стеке, но и в изолированной области памяти — «теневом стеке», который защищен от прямого изменения из пользовательских приложений.
В момент завершения работы функции система сравнивает адрес возврата из основного стека с тем, что был сохранен в «теневом». Если в результате действий злоумышленника адрес в основном стеке был подменен (перезаписан), возникнет несоответствие, и система незамедлительно вызовет исключение, тем самым предотвращая выполнение вредоносного кода.
Важно отметить, что данная технология требует современного «железа». Поддержка аппаратного теневого стека реализована в процессорах Intel, начиная с 11-го поколения (архитектуры Tiger Lake и Rocket Lake), а также в процессорах AMD с микроархитектурой Zen 3 и новее.





