Linux 6.13 затримується через проблеми, спричинені виправленням, надісланим Microsoft

Linux

Запуск нова версія ядра Linux 6.13 відкладено через проблеми зі стабільністю створений через зміни, внесені співробітником Microsoft. Зазначається, що ця зміна була прийнята головною філією в листопаді минулого року таким чином, який здивував багатьох, оскільки вона не відповідала звичайній практиці.

Патч відправлено нестандартним способом і схвалено без отримання підтвердження (ACK) партнером із супроводжувачів архітектури x86, що є порушенням прийнятих стандартів розробки ядра.

Введено відповідний патч підтримка для використання великих сторінок пам’яті в режимі ROX (тільки для читання та виконуваний) під час виділення пам’яті, призначеної для виконуваного коду, і метою надісланого патча було Зміцніть безпеку системи, ускладнивши використання вразливостей шляхом виконання шкідливого коду в пам’яті, позначеній лише для читання.

Використання великих сторінок для відображення текстових областей зменшує навантаження на iTLB і покращує продуктивність.

Розширте execmem_alloc() за допомогою можливості використовувати великі сторінки з дозволами ROX як кеш для менших виділень. Щоб заповнити кеш, велика сторінка, придатна для запису, виділяється з vmalloc за допомогою VM_ALLOW_HUGE_VMAP, заповнюється недійсними інструкціями, а потім повторно відображається як ROX.

Псевдонім прямої карти цієї великої сторінки виключається з прямої карти. Частини цієї великої сторінки надаються виконавцям execmem_alloc() без будь-яких змін у дозволах. Коли пам’ять звільняється за допомогою execmem_free(), вона знову стає недійсною, щоб не містити застарілих інструкцій. 

Зазначається, що затримка у версії ядра 6.13 це тому, що використання великого кеша сторінок виконуваної пам’яті в режимі ROX було ввімкнено за замовчуванням для модулів у системах x86_64. Зміна вирішила серйозну технічну проблему: розподіл сторінок у режимі ROX для виконуваного коду, який ще не був повністю підготовлений.

Це дозволило уникнути необхідності тимчасово перепризначати сторінки з режиму ROX у режим запису, поки модулі ядра не будуть готові до запуску. Однак, незважаючи на очікувані переваги, виявлені проблеми зі стабільністю ставлять під сумнів якість і безпеку виправлення, що призводить до необхідності продовження тестування перед остаточним випуском.

І, здається, розробники не помилилися, оскільки під час останнього етапу тестування ядра Linux 6.13 інженер Intel виявлено критичну проблему що вплинуло на роботу системи на деяких ноутбуках з процесорами на основі мікроархітектури Alderlake. Проблема проявилася при спробі вивести ядро ​​зі сплячого режиму, особливо актуальна помилка на мобільних пристроях.

x86: Вимкнути підтримку EXECMEM_ROX

Module_writable_address() спричинив гігантський безлад.
alternative.c, не кажучи вже про те, що він все ще містить помилки, деякі з яких помітні.
Варіанти CFI зазнають невдачі.

Майк працював над виправленнями, щоб знову все це виправити, але, враховуючи поточну ситуацію, це просто не готово.

Вимкніть наразі, спробуємо ще раз у наступному циклі.

Проблема виникла при компіляції ядра з компілятором Clang і включити режим захисту CFI (Цілісність потоку керування). Цей режим призначений для посилення безпеки шляхом блокування неналежних маніпуляцій потоком керування, таких як ті, що виникають під час атак, які змінюють покажчики функцій у пам’яті. Однак взаємодія між CFI та новою оптимізацією, введеною в ядро ​​для обробки сторінок пам’яті ROX (лише для читання та виконуваної), виявилася проблематичною.

Механізм EXECMEM_ROX, який дозволяє використовувати кеш сторінок виконуваної пам’яті, позначених як лише для читання, виявився основною причиною збоїв, які спостерігалися під час повторної активації системи. Як тимчасове рішення, супроводжувачі Intel і AMD, відповідальні за архітектуру x86, запропонували вимкнути EXECMEM_ROX у версії ядра 6.13. Це дозволить випустити ядро ​​під час роботи над остаточним виправленням, яке вирішить проблему без шкоди для стабільності чи безпеки.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.