В изданието на Fedora Linux 45, планирано за есента на 2026 година, в системите x86_64 се предвижда по подразбиране да се включи използването на теневия стек (shadow stack) за блокиране на работата на експлойти, които презаписват адреса на връщане на функциите в случай на препълване на буфера в стека. Защитата се планира да бъде активирана за всички приложения и библиотеки, компилирани с помощта на компилаторите gcc (C, C++), clang (C, C++) и rustc (Rust). Плана все още не е одобрен от комитета FESCo (Fedora Engineering Steering Committee), отговорен за техническата част на разработката на Fedora Linux. Инициатор за включването на теневия стек в Fedora е Арджун Шанкар (Arjun Shankar) от компанията Red Hat, който отговаря за пакетите с glibc в Fedora и RHEL.
Защитата се реализира с използването на хардуерните възможности на процесорите и се свежда до това, че след предаване на контрола на функцията, адресите на връщане се запазват от процесора не само в обикновения стек, но и в отделен „теневи“ стек, който не може да бъде променян директно. Преди напускането на функцията, адресът на връщане се извлича от теневия стек и се сравнява с адреса на връщане от основния стек. Несъответствието на адресите води до генериране на изключение, блокиращо ситуации, при които експлоитът е успял да презапише адреса в основния стек. Механизмът на теневия стек се поддържа от 11-то поколение процесори на Intel („Tiger Lake“ и „Rocket Lake“) и микроархитектурата Zen3 в процесорите на AMD.
Източник: opennet.ru
