El llançament de la nova versió del nucli Linux 6.13 s'ha vist endarrerida per problemes d'estabilitat generats per un canvi introduït per un empleat de Microsoft. S'esmenta que aquest canvi va ser acceptat a la branca principal el passat mes de novembre d'una manera que n'ha sorprès molts, ja que no va seguir les prà ctiques habituals.
El pegat va ser enviat de manera no està ndard i aprovat sense rebre acusaments de rebut (ACK) per parell dels mantenidors de l'arquitectura x86, fet que constitueix una violació de les normes acceptades en el desenvolupament del nucli.
El pegat en qüestió va introduir suport per a l'ús de pà gines de memòria grans en mode ROX (només lectura i executable) en assignar memòria destinada a codi executable i la finalitat del pegat enviat era reforçar la seguretat del sistema en dificultar l'explotació de vulnerabilitats mitjançant l'execució de codi maliciós en memòria marcada com a només lectura.
L'ús de pà gines grans per mapejar à rees de text redueix la pressió iTLB i millora el rendiment.
Amplieu execmem_alloc() amb la capacitat d'usar pà gines grans amb permisos ROX com a memòria cau per a assignacions més petites. Per omplir la memòria cau, s'assigna una pà gina gran escrivible des de vmalloc amb VM_ALLOW_HUGE_VMAP, s'omple amb instruccions no và lides i després es torna a mapejar com a ROX.
L'à lies de mapa directe d'aquesta pà gina gran s'exclou del mapa directe S'entreguen parts d'aquesta pà gina gran als que anomenen execmem_alloc() sense cap canvi en els permisos. perquè no contingui instruccions obsoletes.
S'esmenta que el retard en el llançament del nucli 6.13 és perquè l'ús d'un memòria cau de pà gines de memòria executables grans en mode ROX va ser habilitat per defecte per als mòduls en sistemes x86_64 . El canvi va abordar un problema tècnic important: l'assignació de pà gines en mode ROX per a codi executable que encara no estava completament preparat.
Això va permetre evitar la necessitat de reassignar temporalment les pà gines de manera ROX com a escriptura fins que els mòduls del kernel estiguessin llestos per a la seva execució. Tot i els beneficis previstos, però, els problemes d'estabilitat identificats posen en dubte la qualitat i la seguretat del pegat, cosa que porto a la necessitat d'estendre les proves abans del llançament definitiu.
I sembla que els desenvolupadors no es van equivocar, ja que durant la fase final de proves del nucli Linux 6.13, un enginyer d'Intel va detectar un problema crÃtic que afectava el funcionament del sistema en algunes portà tils amb processadors basats en la microarquitectura Alderlake. El problema es manifestava en intentar reactivar el nucli des del mode de suspensió, un error particularment rellevant en dispositius mòbils.
x86: Deshabilitar la compatibilitat amb EXECMEM_ROX
El module_writable_address() va causar un desastre gegant.
alternative.c, sense esmentar que encara conté errors, alguns dels quals són notables.
Les variants del CFI fracassen i fracassen.Mike ha estat treballant en pegats per netejar tot això novament, però atesa la situació actual, això simplement no està llest.
Desactivar ara com ara, intentem novament en el proper cicle.
L'inconvenient va sorgir en compilar el nucli amb el compilador Clang i habilitar el mode de protecció CFI (Control Flow Integrity). Aquest mode està dissenyat per reforçar la seguretat en bloquejar manipulacions indegudes del flux de control, com les que ocorren en atacs que alteren punters de funció a la memòria. No obstant això, la interacció entre CFI i les noves optimitzacions introduïdes al nucli per al maneig de pà gines de memòria ROX (només lectura i executables) va resultar problemà tica.
El mecanisme EXECMEM_ROX, que permet utilitzar una memòria cau de pà gines de memòria executables marcades com a només lectura, semblava ser la causa arrel de les fallades observades en la reactivació del sistema. Com a solució temporal, els mantenidors d'Intel i AMD responsables de l'arquitectura x86 van proposar deshabilitar EXECMEM_ROX a la versió 6.13 del nucli. Això permetrà llançar el nucli mentre es treballa en un pegat definitiu que resolgui el problema sense comprometre l'estabilitat ni la seguretat.