Дата публикации:Wed, 01 Apr 2026 14:14:57 +0300
Во 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.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=65118