Linus Torvalds intendeva pubblicare il rilascio del kernel Linux 6.13 per questa domenica, ma probabilmente il test della branch 6.13 sarà esteso di una settimana a causa di problemi di stabilità nei cambiamenti preparati da un dipendente di Microsoft e accettati nella branch 6.13 a novembre. Inoltre, si segnala che il patch che ha causato il crash è stato inviato in modo non standard — ma è stato accettato, sebbene non abbia ricevuto alcuna conferma (ACK) dai maintainers dell'architettura x86, il che rappresenta una violazione delle pratiche comunemente accettate.
La patch ha aggiunto la possibilità di utilizzare grandi pagine di memoria in modalità ROX (Read Only Execute) durante l'allocazione della memoria destinata all'esecuzione del codice. ROX consente di utilizzare la memoria con codice eseguibile in modalità di sola lettura, rendendo più difficile lo sfruttamento di alcune vulnerabilità. Nel kernel 6.13, per il codice eseguibile dei moduli sui sistemi x86_64, è stata abilitata per impostazione predefinita l'uso della cache delle grandi pagine di memoria eseguibile, riflesse come ROX. La modifica ha risolto il problema del mapping in modalità ROX delle pagine per il codice eseguibile non ancora completamente formattato e ha permesso di evitare la ribattitura temporanea delle pagine ROX in modalità di scrittura fino al completamento della preparazione dei moduli del kernel per il funzionamento.
Durante la fase finale di testing del kernel 6.13, un ingegnere di Intel ha identificato un malfunzionamento che impedisce al kernel di uscire correttamente dalla modalità sospensione su alcuni laptop con processori Intel (ad esempio, quelli basati sull'architettura Alder Lake). Il problema si manifestava durante la compilazione del kernel con il compilatore Clang con la modalità di protezione CFI (Control Flow Integrity) attivata, che blocca le violazioni dell'ordine normale di esecuzione a causa di exploit che alterano i puntatori delle funzioni memorizzati in memoria. Come soluzione temporanea, i maintainer di Intel e AMD, responsabili dell'architettura x86, hanno suggerito di disabilitare l'uso di EXECMEM_ROX nel kernel 6.13, fino a quando non sarà preparata e testata una patch completa per risolvere il problema (il primo tentativo di correzione non ha risolto il problema).
Fonte: opennet.ru
