Исправления OpenBSD 7.9 закрыли ошибки ядра, которые Calif объединила в локальный root-эксплойт
По словам компании Calif, специализирующейся на безопасности, уязвимость разделяемой памяти, восходящая примерно на 37 лет назад к исходному коду BSD, была одной из двух частей цепочки локального получения root. Calif сообщает, что OpenBSD выпустила исправления errata 018 и 026.

Ключевые факты
- 1Calif опубликовала исследование о локальном root-эксплойте для OpenBSD, объединяющем две ошибки ядра; исправления представлены в errata OpenBSD 7.9.
- 2По данным Calif, одна из уязвимостей связана со знаковым 16-bit счётчиком подключений разделяемой памяти, восходящим примерно на 37 лет назад к исходному коду BSD.
- 3Errata 018 для OpenBSD от 14 сентября 2026 года помечено как исправление надёжности для целочисленного переполнения в shmat.
- 4Errata 026 от 30 сентября 2026 года помечено как исправление безопасности для ошибки подсчёта ссылок в ядре, которая могла вызвать use-after-free.
- 5Эксплойт требует локального доступа; Calif также предложила более широкое усиление защиты ядра, например безопасное удаление из списков, рандомизацию распределителей памяти и защиту на уровне компилятора.
Полный текст
Компания Calif, специализирующаяся на безопасности, опубликовала исследование, в котором описывает, как получила права root в OpenBSD, объединив две уязвимости ядра, которые проект с тех пор исправил. В материале Andrew Griffiths от 16 октября компания заявила, что одна из ошибок восходит примерно на 37 лет назад к исходному коду BSD. По словам Calif, она сообщила об уязвимостях в OpenBSD ранее в этом году, зачастую вместе с предложенными патчами.
По данным Calif, более старая уязвимость связана со счётчиком, отслеживающим подключения разделяемой памяти: он был определён как знаковое 16-bit значение и может переполняться. Как заявила компания, это переполнение через состояние гонки могло привести к use-after-free и вместе с отдельной ошибкой записи за пределы буфера в ядре позволяло локальному пользователю повысить привилегии до root. По словам Calif, атака срабатывала при включённой перекомпоновке ядра KARL в OpenBSD и процессорных защитах SMAP и SMEP и не требовала ошибки раскрытия информации. В материале также приведены ссылки на код и proof of concept.
Calif сообщила, что проблемы устранены в errata 018 и 026 для OpenBSD. На странице errata OpenBSD 7.9 исправление 018 датировано 14 сентября 2026 года и указано как исправление надёжности, предотвращающее целочисленное переполнение в shmat. Errata 026 от 30 сентября 2026 года указано как исправление безопасности для ошибки подсчёта ссылок, которая могла привести к use-after-free в ядре. Обе записи относятся ко всем архитектурам. Calif называет оба errata исправлениями проблем из своей цепочки, так что одно из двух исправлений помечено как исправление надёжности, а не безопасности.
На странице errata указано, что патчи распространяются в виде подписанных унифицированных diff-файлов, а утилита syspatch может устанавливать бинарные обновления на amd64, i386 и arm64. Исправления для поддерживаемых выпусков также включаются в ветку -stable, которую проект сопровождает в течение одного года после выпуска. Calif характеризует эксплойт как локальное повышение привилегий: это означает, что злоумышленнику сначала нужен доступ к системе.
Помимо errata, Calif изложила ряд идей по усилению защиты, призванных затруднить подобные пути атаки. Среди них — проверки целостности перед удалением элементов из двусвязных списков, которые, как отметила компания, уже реализованы во FreeBSD и NetBSD, а также большая рандомизация памяти ядра, поскольку, по словам Calif, распределители памяти ядра OpenBSD остаются детерминированными, хотя KARL рандомизирует расположение бинарного файла ядра. Компания также указала на возможности компиляторов, такие как санитайзер границ массивов и готовящиеся Alloc Tokens. Calif сообщила, что предлагала этот санитайзер FreeBSD и в частном порядке сообщила там о 21 проблеме, которые он бы обнаружил, утверждая, что устранение целых классов ошибок становится всё важнее по мере того, как ИИ помогает в поиске уязвимостей.
Почему это важно
Администраторы, устанавливающие только errata с пометкой безопасности, могли пропустить 018, которое OpenBSD указывает как исправление надёжности, однако Calif называет его одним из двух исправлений ошибок в своей цепочке получения root. Поскольку на код эксплойта есть публичные ссылки, рекомендуется убедиться, что установлены и 018, и 026, особенно в системах, где недоверенные пользователи могут входить локально.
Хронология
· Опубликовано
Темы#OpenBSD#ядро#повышение привилегий#управление патчами#Calif
Источники
Эта новость основана на следующих источниках. Прочитайте их, чтобы увидеть полный контекст.



