Linus Torvalds prévoyait de publier la version du noyau Linux 6.13 ce dimanche, mais il est probable que les tests de la branche 6.13 soient prolongés d'une semaine en raison de problèmes de stabilité liés aux modifications préparées par un employé de Microsoft et acceptées dans la branche 6.13 en novembre. De plus, il est noté que le correctif à l'origine de la panne a été soumis de manière non standard — mais a été accepté, bien qu'il n'ait reçu aucune confirmation (ACK) de la part des mainteneurs de l'architecture x86, ce qui constitue une violation des pratiques habituelles.
Le correctif ajoutait la possibilité d'utiliser de grandes pages de mémoire en mode ROX (Read Only Execute) lors de l'allocation de mémoire destinée à accueillir du code exécutable. Le mode ROX permet d'utiliser la mémoire contenant du code exécutable en mode seulement lecture, rendant plus difficile l'exploitation de certaines vulnérabilités. Dans le noyau 6.13, l'utilisation du cache de grandes pages exécutables en mémoire pour le code exécutable des modules sur les systèmes x86_64 était activée par défaut et reflétait le mode ROX. Ce changement résolvait le problème de mappage en mode ROX des pages pour du code exécutable encore en cours de formation et permettait d'éviter le remappage temporaire des pages ROX en mode écriture jusqu'à ce que la préparation des modules du noyau soit terminée.
À l'étape finale des tests du noyau 6.13, un ingénieur de chez Intel a identifié un bug empêchant le noyau de sortir correctement du mode veille sur certains ordinateurs portables équipés de processeurs Intel (par exemple, avec un CPU basé sur l'architecture Alder Lake). Le bug se manifestait lors de la compilation du noyau avec le compilateur Clang, lorsque le mode de protection CFI (Control Flow Integrity) était activé, empêchant les violations de l'ordre normal d'exécution (control flow) dues à l'utilisation d'exploits modifiant les pointeurs de fonction stockés en mémoire. Comme solution temporaire, les mainteneurs des entreprises Intel et AMD, responsables de l'architecture x86, ont proposé de désactiver l'utilisation d'EXECMEM_ROX dans le noyau 6.13, jusqu'à ce qu'un correctif complet soit préparé et testé (la première option de correction n'a pas résolu le problème).
Source : opennet.ru
