Исследователи показали локальный эксплойт для OpenBSD 7.9, который получает права root, соединяя два старых дефекта в ядре. Первый баг тянется почти 37 лет, второй — отдельная ошибка с освобождением памяти после использования. OpenBSD уже выпустила патчи, а уязвимости закрыли в сентябре.

Какую проблему решаем

Эта история важна не только для пользователей OpenBSD. Она показывает, как два на вид мелких дефекта в ядре складываются в полноценную атаку с повышением привилегий.

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

Что произошло в OpenBSD

Первая ошибка — переполнение целого числа в функции shmat(4). Вторую нашли в механизме учёта ссылок: ошибка use-after-free, то есть ситуация, когда ядро освобождает память, к которой ещё есть доступ.

Исследователи связали эти дефекты в одну цепочку. Сначала они перегрузили счётчик общего сегмента памяти, а затем добились гонки, которая привела к освобождению нужного участка памяти. После этого эксплойт смог повлиять на таблицы страниц и обойти защитные механизмы KARL, SMAP и SMEP.

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

Что подготовить

Если вы администрируете OpenBSD-серверы, держите под рукой:

  • доступ к syspatch;
  • список версий и архитектур, где крутятся ваши узлы;
  • окно на перезагрузку, если она нужна после обновления;
  • регламент проверки журналов после установки патчей.

Если речь о рабочей станции, базовый план тот же: обновить систему, убедиться, что патчи встали, и проверить, не ломают ли они прикладное ПО. О похожих цепочках атак мы уже писали в разборе про дыру в WinRAR — там тоже слабое место в привычном инструменте быстро превращалось в проблему для всей инфраструктуры.

Пошаговые действия

Если у вас OpenBSD

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

Дальше обновите систему до актуального состояния и убедитесь, что установлены errata 018 и errata 026. Первая закрывает переполнение в shmat(4), вторая — уязвимость с use-after-free.

Если вы отвечаете за парк машин

Сначала найдите все хосты на OpenBSD 7.9 и 7.8. Затем сверьте их с графиком обновлений и поставьте патчи в приоритет выше обычных исправлений приложений.

Если у вас есть внешние сервисы, завязанные на эти машины, проверьте, не работают ли они с повышенными правами без необходимости. Чем меньше лишних привилегий у процессов, тем сложнее использовать такой баг в реальной атаке.

Если вы просто пользователь

Проверьте, получает ли система обновления автоматически, и не откладывайте перезагрузку после патчей. Локальные уязвимости часто не бьют по дому напрямую, но становятся проблемой, если на машине уже есть чужой код или вредоносное ПО.

Для повседневной защиты помогает и дисциплина в сети. Если вы подключаетесь через чужую Wi‑Fi-сеть, подумайте о дополнительном слое защиты для банковских операций — например, о дополнительной защите трафика в чужой сети во время работы вне дома.

Как проверить себя

Сверьтесь с версией OpenBSD и историей патчей. Если у вас 7.9, проверьте наличие двух исправлений, о которых пишет источник. Если у вас 7.8, убедитесь, что туда тоже пришёл фикс переполнения.

После обновления посмотрите журналы syspatch и убедитесь, что система не сообщает об ошибках установки. Если сервер отвечает за критичные задачи, проведите короткий тест прикладных сервисов — базы, почты, сетевых сервисов и задач по расписанию.

Что делать, если не получилось

Если патчи не ставятся, не оставляйте узел без обновления надолго. Разберитесь, не мешают ли этому старые пакеты, нехватка места на диске или проблемы с зеркалом обновлений.

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

Чек-лист

  • Проверить версию OpenBSD на всех рабочих машинах и серверах.
  • Убедиться, что через syspatch стоят свежие исправления.
  • Найти и закрыть узлы с правами выше необходимого минимума.
  • Проверить журналы после установки патчей.
  • Запланировать перезагрузку, если она нужна для применения обновлений.
  • Для работы вне офиса держать под рукой дополнительный слой защиты трафика в чужой сети.
Поделиться: