Линус Торвалдс планираше да публикува версията на ядрото Linux 6.13 в това неделя, но е много вероятно тестовете на версията 6.13 да бъдат удължени с една седмица заради проблеми със стабилността при промените, подготвени от служителя на Microsoft и приети в версията 6.13 през ноември. Освен това, бе отбелязано, че пачът, който е предизвикал срив, е бил подаден нестандартно — но е бил приет, въпреки че не е получил нито едно потвърждение (ACK) от мейнтейнерите на архитектурата x86, което е нарушение на общоприетите практики.
Пачът добавяше възможността за използване на големи страници памет в режим ROX (Read Only Execute) при заделяне на памет, предназначена за изпълнение на код. ROX позволява използването на памет с изпълняем код в режим само за четене, което усложнява експлоатацията на някои уязвимости. В ядрото 6.13 за изпълняемия код на модули в системи x86_64 по подразбиране беше включено използването на кеша за големи изпълняеми страници памет, отразени като ROX. Промяната решаваше проблема с мапинга в режим ROX на страници за още напълно неформатиран изпълняем код и позволяваше да се избегне временното репаминг на ROX-страниците в режим запис, докато завършва подготовката на модулите на ядрото за работа.
На финалния етап на тестването на ядрото 6.13, инженер от Intel откри срив, който не позволява на ядрото да излезе правилно от спящ режим на определени лаптопи с процесори Intel (например, с CPU на база микроархитектура Alderlake). Сривът се проявяваше при компилирането на ядрото с компилатора Clang с включен режим за защита CFI (Control Flow Integrity), който блокира нарушения на нормалния ред на изпълнение (control flow) в резултат на експлоити, които променят съ храняваните в паметта указатели към функции. Като временно решение, мейнтейнерите от Intel и AMD, отговорни за архитектурата x86, предложиха да се изключи използването на EXECMEM_ROX в ядрото 6.13, преди да бъде подготвен и тестван цялостен пач, който да реши проблема (първоначалният вариант на корекцията не реши проблема).
Източник: opennet.ru
