Nella versione di Fedora Linux 45, prevista per l'autunno del 2026, sui sistemi x86_64 si prevede di attivare di default l'uso dello stack shadow (shadow stack) per bloccare il funzionamento degli exploit che riscrivono l'indirizzo di ritorno delle funzioni in caso di overflow del buffer nello stack. La protezione sarà attivata per tutte le applicazioni e librerie compilate con i compilatori gcc (C, C++), clang (C, C++) e rustc (Rust). Il piano non è ancora stato approvato dal comitato FESCo (Fedora Engineering Steering Committee), responsabile della parte tecnica dello sviluppo di Fedora Linux. L'iniziativa di includere lo stack shadow in Fedora è di Arjun Shankar della Red Hat, che mantiene i pacchetti con glibc in Fedora e RHEL.
La protezione viene implementata utilizzando le capacità hardware dei processori e consiste nel fatto che, dopo la cessione del controllo alla funzione, gli indirizzi di ritorno vengono salvati dal processore non solo nello stack tradizionale, ma anche in uno stack "shadow" separato, che non può essere modificato direttamente. Prima di uscire dalla funzione, l'indirizzo di ritorno viene estratto dallo stack shadow e confrontato con l'indirizzo di ritorno dello stack principale. Una discrepanza negli indirizzi porta alla generazione di un'eccezione, bloccando situazioni in cui un exploit è riuscito a riscrivere l'indirizzo nello stack principale. Il meccanismo dello stack shadow è supportato a partire dall'11° generazione di processori Intel ("Tiger Lake" e "Rocket Lake") e dall'architettura Zen3 nei processori AMD.
Fonte: opennet.ru
