Уязвимость в слое совместимости Linux в FreeBSD позволяет утечку данных ядра

FreeBSD

FreeBSD выпустил обновление безопасности, закрывающее уязвимость CVE-2026-49424, которая затрагивает подсистему совместимости с приложениями Linux (Linuxulator).  Она получила оценку как угроза конфиденциальности данных.

Уязвимость CVE-2026-49424

Уязвимость присутствует в реализации системного вызова Linux waitid(). При преобразовании структуры siginfo_t из формата FreeBSD в формат Linux, используемый в стеке ядра, разработчики не предусмотрели обнуление этой стеки перед заполнением. В результате неподготовленная область памяти может содержать фрагменты данных, оставшихся от предыдущих операций ядра.

При успешной эксплуатации непривилегированный пользователь может прочитать до 104 байт неинициализированного содержимого стека. Эти данные могут включать чувствительную информацию, такую как ключи шифрования, пароли или фрагменты сессионных данных других процессов. Потенциальная атака может привести к раскрытию конфиденциальной информации, хранящейся в адресном пространстве ядра.

Проблема затрагивает три ветки FreeBSD: версии 14.3 (до 14.3-RELEASE-p16), 14.4 (до 14.4-RELEASE-p7) и 15.0 (до 15.0-RELEASE-p11). Уязвимыми считаются системы, на которых загружен модуль linuxelf, обеспечивающий запуск бинарных файлов Linux. По умолчанию этот модуль не включён в стандартное ядро GENERIC, но может быть загружен администратором или автоматически при запуске Linux-приложений.

Разработчики подчёркивают, что обходных путей защиты не существует. Единственным надёжным способом устранить проблему является установка исправлений, выпущенных в рамках бюллетеня FreeBSD-SA-26:47. Для систем, установленных из пакетов base, обновление выполняется командой "pkg upgrade -r FreeBSD-base" с последующей перезагрузкой. Для систем, развёрнутых из бинарных дистрибутивов, используется "freebsd-update fetch && freebsd-update install".

Важно отметить, что уязвимость затрагивает только те системы, где активно используется слой совместимости Linux. Если эта функция не нужна, её можно отключить, не загружая модуль linuxelf. Для проверки его активности достаточно выполнить "kldstat -m linuxelf". Если модуль не выводится, система не подвержена риску.

Данная уязвимость относится к классу проблем раскрытия неинициализированной памяти ядра. Подобные ошибки традиционно сложно обнаружить, поскольку они проявляются только при определённых условиях использования стека. Исследователи из Praetorian отметили, что уязвимость была найдена с помощью фаззинга (метода тестирования программного обеспечения случайными данными). В официальном бюллетене также указано, что исправляющие коммиты были внесены в стабильные ветки ещё в марте 2026 года, однако актуальные версии релизов получили патч только в конце июня.

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

Ссылки

Комментарии: 0