Удалённо эксплуатируемые уязвимости в ядре FreeBSD, Vim и Emacs

Во FreeBSD устранена уязвимость (CVE-2026-4747), позволяющая через отправку сетевых пакетов к NFS-серверу добиться выполнения кода на уровне ядра. Проблема проявляется при использовании модуля kgssapi.ko, реализующего API RPCSEC_GSS на стороне ядра. Помимо ядра, уязвимость затрагивает приложения в пользовательском пространстве, использующие библиотеку librpcgss_sec и выполняющие функции RPC-сервера. Подобные приложения, которые не входят в состав базовой системы FreeBSD, также могут быть атакованы через отправку сетевых пакетов.

Проблема присутствует в реализации API GSS (Generic Security Services), позволяющего устанавливать защищённые аутентифицированные каналы связи с сервером. RPCSEC_GSS применяется в NFS-серверах для защиты доступа к Sun RPC с использованием аутентификации на базе Kerberos и шифрования трафика между сервером и клиентом. Проблема вызвана тем, что при проверке подписи данные из пакета копируются в фиксированный буфер без должной проверки соответствия размера. Ошибка проявляется на стадии до прохождения аутентификации, но требует возможности отправки сетевых пакетов NFS-серверу. Доступен эксплоит, позволяющий удалённо запустить /bin/sh с правами root.

Уязвимость была выявлена сотрудником компании Anthropic при помощи AI-ассистента Claude. Примечательно, что сторонние исследователи из команды Calif воспользовались Claude для написания рабочего эксплоита, передав в качестве информации лишь опубликованный проектом FreeBSD общий отчёт об уязвимости. Помимо непосредственной эксплуатации уязвимости AI-модель развернула виртуальную машину с уязвимой конфигурацией, настроила удалённую отладку и чтение crash-дампов ядра, а также организовала в эксплоите запуск /bin/sh, после того как добилась выполнения кода на уровне ядра. На создание эксплоита было потрачено 4 часа времени работы модели Claude.

Создавшие эксплоит исследователи не ограничились этим и продолжили эксперименты, использовав Claude для выявления уязвимостей в Vim и Emacs, позволяющих добиться выполнения своего кода при открытии в редакторах специально оформленных файлов. Примечательно, что промпты к модели сводились к примитивной постановке задачи, такой как «найди 0-day уязвимость в Vim, возникающую при открытии файла». В итоге модель Claude успешно нашла ранее не известные уязвимости.

Уязвимость в Vim (CVE-2026-34714) вызвана ошибкой при обработке опции tabpanel во включённом по умолчанию режиме modeline («:set modeline»), предоставляющем возможности для определения опций редактирования в обрабатываемом файле. По задумке разработчиков Vim, через modeline допускается установка только ограниченного числа опций, выражения в которых выполняются в режиме sandbox, допускающем применение только простейших безопасных операций.

У опции tabpanel не был выставлен флаг P_MLE, что позволяло использовать в ней выражение %{expr}, выполняемое без активации режима modelineexpr. Для обхода sandbox-изоляции использовалась недоработка в функции autocmd_add(), в которой отсутствовали должные проверки безопасности при привязке действия к событию SafeStateAgain, что позволяло организовать запуск команды после выхода из sandbox-изоляции. Уязвимость устранена в выпуске Vim v9.2.0272. Пример строки, приводящей к запуску утилиты «id» и направления вывода в файл «/tmp/calif-vim-rce-poc»: /* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{‘event’\:’SafeStateAgain’,’pattern’\:’*’,’cmd’\:’!id>/tmp/calif-vim-rce-poc’,’once’\:1}])%}: */

Уязвимость в Emacs вызвана автоматической обработкой содержимого каталога .git/, когда он размещён в одном каталоге с открываемым файлом. В этом случае Emacs при открытии файла запускает команды «git ls-files» и «git status», выполняемые в контексте содержимого «.git/». Для организации выполнения кода достаточно открыть в Emacs файл из каталога, в котором имеется подкаталог .git/ с файлом конфигурации «config», включающим опцию «core.fsmonitor» с указанной атакующим командой для запуска. Сопровождающие GNU Emacs отказались устранять уязвимость, указав на то, что проблема в Git.

Дополнительно можно отметить ещё две уязвимости:

  • CVE-2026-33150 — обращение к памяти после её освобождения в io_uring-обработчике из библиотеки libfuse, потенциально позволяющее добиться выполнения кода при исчерпании доступных ресурсов во время работы с реализованными через FUSE (Filesystem in Userspace) файловыми системами.
  • CVE-2026-34743 — переполнение буфера в реализации функции lzma_index_append() из библиотеки liblzma. Проблема проявляется при использовании функции lzma_index_decoder() для декодирования индекса, не содержащего записей, и приводит к выделению буфера, размером меньше, чем необходимо. Отмечается, что низкоуровневый API lzma_index* используется в приложениях крайне редко и маловероятно, что найдутся приложения, в которых выполняются необходимые для эксплуатации условия работы с индексом. Уязвимость устранена в обновлении XZ Utils 5.8.3.

Источник: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster