Критическую уязвимость в ядре Linux x86 не замечали с 2020 года

Критическую уязвимость в ядре Linux x86 не замечали с 2020 года

Критическую уязвимость в ядре Linux x86 не замечали с 2020 года

В ядре Linux обнаружили уязвимость, которая тихо жила в системе несколько лет — и притом в одном из самых чувствительных мест. Речь идёт о механизме обработки page fault на архитектуре x86, то есть о коде, который срабатывает каждый раз, когда процессор фиксирует некорректный доступ к памяти.

Проблема тянулась как минимум с 2020 года и была связана с тем, что в ряде сценариев аппаратные прерывания оказывались включёнными в момент, когда ядро ожидало их отключения.

На практике это означало потенциальную нестабильность в крайне редких, но критически важных ситуациях — там, где от предсказуемости поведения ядра зависит вообще всё.

На уязвимость обратил внимание инженер Intel Седрик Син (Cedric Xing), внимательно изучавший код обработки исключений. Как выяснилось, логика в функции do_page_fault() опиралась на устаревшее и, по сути, ошибочное допущение.

В комментариях прямо говорилось, что отследить состояние прерываний на всех возможных ветках выполнения почти невозможно — и разработчики много лет балансировали между «комбинаторным кошмаром» из патчей и попытками аккуратно чинить отдельные случаи.

Но проблема оказалась глубже. Код смешивал два разных понятия — адрес (пользовательский или ядерный) и контекст выполнения. Обычно они совпадают, но не всегда.

Существуют ситуации, когда обращение идёт к памяти ядра, но в пользовательском контексте. В таких случаях некоторые ветки обработчика могли повторно включить прерывания — и вернуть управление туда, где ядро было уверено, что они всё ещё выключены.

Особенно показательной оказалась ветка __bad_area_nosemaphore(), где предпринимается попытка «восстановить правильное состояние», но на деле это происходило не всегда и не одинаково. В результате возникала асимметрия: в зависимости от пути выполнения система могла оказаться в неожиданном состоянии.

В итоге разработчики пришли к простому, но радикальному выводу: латать отдельные ветки бессмысленно. Вместо этого было принято решение гарантированно и безусловно отключать прерывания в одном конкретном месте — прямо перед возвратом управления в низкоуровневый обработчик page fault. Без условий, без проверок, без попыток «угадать» контекст.

Патчи уже вошли в ветку Linux 6.19, а также планируются к бэкпорту в поддерживаемые стабильные версии. Фактически оно устраняет дефект, появившийся ещё во времена Linux 5.8.

Apple объяснила удаление МАКС из App Store санкциями

История с исчезновением российского мессенджера МАКС из App Store наконец получила первое официальное объяснение. Правда, ясности от этого больше не стало. Как сообщает BBC, Apple заявила, что удалила приложение в соответствии с правилами соблюдения санкций.

В корпорации подчеркнули, что обязаны соблюдать законодательство тех юрисдикций, в которых работают.

Какие именно санкции стали причиной блокировки МАКС, в Apple уточнять не стали.

Напомним, вечером 3 июня приложение неожиданно пропало из App Store. Тогда представители мессенджера подтвердили удаление и сообщили, что направили запрос в Apple с просьбой разъяснить ситуацию.

Пока шли поиски ответа, владельцы iPhone столкнулись с ещё одной неприятностью. После удаления из App Store приложение перестало присылать пуш-уведомления о новых сообщениях и звонках.

В пресс-службе МАКС тогда рекомендовали пользователям самостоятельно открывать приложение время от времени, чтобы не пропустить важные сообщения. Звучит как цифровое путешествие во времени лет на пятнадцать назад, когда мессенджеры ещё не умели напоминать о себе автоматически.

При этом полностью сервис не отключён. Пользователи, которые успели установить МАКС на iPhone и iPad до удаления из магазина, по-прежнему могут пользоваться приложением. Сообщения доставляются, чаты работают, а проблема касается в первую очередь уведомлений и новых установок.

Главный вопрос пока остаётся без ответа. Apple сослалась на санкционные требования, но не раскрыла, какие именно ограничения привели к удалению приложения и сможет ли оно вернуться в App Store в будущем.

RSS: Новости на портале Anti-Malware.ru