Dans la version de Fedora Linux 45, prévue pour l'automne 2026, l'utilisation de la stack d'ombre (shadow stack) sera par défaut activée sur les systèmes x86_64 pour bloquer l'exécution des exploits qui réécrivent l'adresse de retour des fonctions en cas de dépassement de tampon dans la pile. La protection sera activée pour toutes les applications et bibliothèques compilées avec les compilateurs gcc (C, C++), clang (C, C++) et rustc (Rust). Ce plan n'a pas encore été approuvé par le comité FESCo (Fedora Engineering Steering Committee), responsable de la partie technique du développement de Fedora Linux. L'initiative d'inclure la stack d'ombre dans Fedora vient d'Arjun Shankar de Red Hat, qui maintient les paquets avec glibc dans Fedora et RHEL.
La protection est mise en œuvre en utilisant les capacités matérielles des processeurs et consiste à ce qu'après la transmission du contrôle à une fonction, les adresses de retour soient sauvegardées par le processeur non seulement dans la pile normale, mais aussi dans une 'stack d'ombre' séparée, qui ne peut pas être modifiée directement. Avant de sortir de la fonction, l'adresse de retour est extraite de la stack d'ombre et comparée avec l'adresse de retour de la pile principale. Un désaccord des adresses entraîne la génération d'une exception, bloquant les situations où un exploit a réussi à réécrire l'adresse dans la pile principale. Le mécanisme de la stack d'ombre est pris en charge à partir de la 11ème génération de processeurs Intel ('Tiger Lake' et 'Rocket Lake') et de l'architecture Zen3 des processeurs AMD.
Source : opennet.ru
