Третья дыра в vLLM: CVE-2026-27893 бьет по мультимодальным гигантам
И снова. Вчера, 28 марта 2026 года, группа исследователей опубликовала детали CVE-2026-27893. Это критическая уязвимость удаленного выполнения кода (RCE) в популярном inference-движке vLLM. Уязвимы версии с vLLM 0.4.3 до vLLM 0.5.2. Самое опасное - атака работает даже если вы, казалось бы, обезопасили систему, отключив флаг --trust-remote-code. Звучит парадоксально? Так и есть.
Ловушка захлопнулась для тех, кто развертывает модели Nemotron-VL-34B-Super или свежий Kimi-K25-72B. Эти архитектуры требуют загрузки пользовательского кода для работы. Без флага trust-remote-code система, по идее, должна отказаться их грузить. Но баг в механизме сериализации конфигурации модели позволяет обойти это ограничение. Результат - произвольный код выполняется на ваших GPU-серверах в момент инициализации модели. Классический сценарий "майнера для хакеров", только теперь его не остановить стандартными мерами.
Статус на 29.03.2026: Исправление уже выпущено в vLLM версии 0.5.3. Если вы используете vLLM с Nemotron-VL или Kimi-K25 - немедленно обновитесь. Задержка чревата полным компромиссом кластера.
Почему именно Nemotron-VL и Kimi-K25? Ирония "безопасной" конфигурации
Вот где проявляется черный юмор инженеров безопасности. Обе модели - лидеры в своих нишах на начало 2026 года. Nemotron-VL от NVIDIA - мощный мультимодальный движок, который доминирует в задачах анализа видео. Kimi-K25 от Moonshot AI - текущий чемпион по длинному контексту (до 1 млн токенов). Их архитектуры сложны. Слишком сложны для стандартного загрузчика vLLM.
Для корректной работы им нужны кастомные слои, специфичные функции активации и нестандартные распараллеливания. Этот код живет в Hugging Face Hub вместе с весами модели. Когда vLLM загружает модель, он смотрит на конфиг config.json. Там указано, какие файлы с кодом скачать и как их исполнить. Флаг --trust-remote-code - это ваше разрешение на эту операцию. Нет флага - нет загрузки кода, логично?
Логично, но не работает. Уязвимость CVE-2026-27893 позволяет злоумышленнику подменить конфигурацию модели так, что vLLM, даже с выключенным trust-remote-code, загрузит и выполнит модифицированный Python-код из-под учетной записи процесса. Это не prompt injection. Это фундаментальный провал в системе доверия на уровне загрузчика моделей. Похожий по духу на недавнюю дыру в llama.cpp, но с более изощренным вектором.
Как это работает? Тихое падение механизмов безопасности
Представьте сценарий. Вы админ в компании, которая Fine-Tune'ит Nemotron-VL для внутреннего видеонадзора. Безопасность - приоритет. Вы читали прошлые статьи про уязвимости vLLM и сознательно НЕ используете --trust-remote-code. Вы качаете модель из якобы доверенного источника - своего внутреннего S3-бакета. Все проверено.
Но в конфигурационном файле модели, который выглядит как невинный JSON, спрятана ловушка. Из-за ошибки в коде vLLM (точнее, в библиотеке safetensors, которую он использует), поле с путем к файлу кода подменяется. Вместо легитимного modeling_nemotron.py загружается и выполняется скрипт злоумышленника. Он может сделать что угодно: установить бэкдор, запустить криптомайнер на ваших дорогих H100, или тихо экспортировать данные в сторонний сервер.
Что делать? Инструкция по выживанию на 29.03.2026
- Немедленное обновление. Если вы используете vLLM, обновитесь до версии 0.5.3. Это единственный надежный способ закрыть дыру. Команда:
pip install -U vllm==0.5.3. - Аудит моделей. Проверьте, не используете ли вы Nemotron-VL-34B-Super (любой ревизии) или Kimi-K25-72B. Если да, убедитесь, что скачали их с официальных репозиториев Hugging Face (NVIDIA и Moonshot AI) после 28.03.2026 - они уже обновили конфиги.
- Не расслабляйтесь с флагом. Да, уязвимость обходит его отключение. Но это не значит, что его нужно включать всегда. Принцип наименьших привилегий остается в силе. Для других моделей он все еще важен. Помните историю с компрометацией через цепочку поставок.
- Сканируйте окружение. Используйте инструменты вроде VulnBERT (о которой мы уже писали) для поиска аномалий в конфигурационных файлах и зависимостях. Автоматизация - ваш друг.
| Модель | Версия, уязвимая к CVE-2026-27893 | Безопасная версия (на 29.03.2026) |
|---|---|---|
| Nemotron-VL-34B-Super | Все релизы до 28.03.2026 | Ревизия от 28.03.2026 в HF Hub |
| Kimi-K25-72B | Kimi-K25-72B (оригинальный релиз) | Kimi-K25-72B-v2 |
| vLLM | 0.4.3 <= версия <= 0.5.2 | vLLM 0.5.3 |
Куда движется безопасность инференса? Прогноз от разбитого корыта
Патч выпущен. Все успокоились? Вряд ли. Проблема глубже. Такие модели как Nemotron-VL или гибридные SSM-архитектуры (вспомните исследование Nemotron 120B Super) становятся все сложнее. Их кодовая база - это черный ящик даже для многих инженеров. Механизм trust-remote-code - это костыль, который ломается под весом этой сложности.
Будущее, вероятно, за цифровыми подписями моделей. Каждый файл кода, каждый конфиг должен быть подписан издателем (NVIDIA, Moonshot AI) и проверяться движком перед выполнением. Это добавит бюрократии, но убивает целый класс атак. Пока же - защищайтесь старыми методами: сетевой сегментация, sandbox-окружение для инференса, агрессивный мониторинг вызовов процессов. И да, читайте наши анонсы. Потому что следующая CVE уже на подходе. И она, возможно, будет связана не с кодом моделей, а с их весами - но это уже другая, еще более страшная история.
Материал подготовлен на основе открытого отчета об уязвимости и информации от разработчиков vLLM. Все упомянутые версии программного обеспечения актуальны на 29 марта 2026 года.