Исследователи Oasis Security обнаружили цепочку атаки на открытый стек NVIDIA NemoClaw, позволяющую вредоносному сайту добраться до локального сервера Ollama и незаметно изменить поведение ИИ-агента. Страница под контролем злоумышленника обращается к не требующему аутентификации API, получает возможность управлять экземпляром Ollama и через /api/create заменяет шаблон чата. Добавленные инструкции выполняются при всех последующих запросах к заражённой модели, сохраняются между разговорами и переживают системные промпты самого агента. Обычный клиент API их не видит. «Клиент не может обнаружить или предотвратить это: шаблон является свойством модели, невидимым потребителям API», — сообщили в Oasis Security.
NemoClaw представляет собой эталонный стек NVIDIA с открытым исходным кодом для запуска ИИ-агентов, включая OpenClaw, внутри песочниц OpenShell. Локальные вычисления может обслуживать Ollama, чей API по умолчанию работает на порту 11434 без пароля или токена. Защита от запросов из браузера возложена на проверку HTTP-заголовка Host и правила CORS, сопоставляющие Origin с Host. Этой схемы недостаточно, если сервер запущен с переменной OLLAMA_HOST=0.0.0.0:11434: адрес 0.0.0.0 заставляет службу принимать соединения на всех сетевых интерфейсах. При слабых настройках межсетевого экрана Ollama может оказаться доступной и за пределами компьютера. Что любопытно, страница интеграции NemoClaw на сайте Ollama сама советует такую привязку при работе в WSL2 или контейнере.
На обычных системах вне WSL архитектура устроена осторожнее. Ollama остаётся на замкнутом адресе 127.0.0.1:11434, а перед ней запускается защищённый токеном обратный прокси NemoClaw, слушающий 0.0.0.0:11435. Если во время первоначальной настройки уже работающий демон привязан к другому адресу, NemoClaw перезапускает его и возвращает на loopback-интерфейс. Прямой доступ к неаутентифицированному API при этом перекрыт. В варианте с Docker Desktop на WSL прокси пропускается: контейнер может связаться с loopback-интерфейсом хоста через host.docker.internal. Для Ollama, запущенной непосредственно на Windows, NemoClaw задаёт OLLAMA_HOST=0.0.0.0:11434, чтобы её видел контейнер Docker Desktop, но защитный прокси на этом WSL-маршруте не стартует.
У Ollama есть две проверки браузерных запросов, и обе обходятся из-за сочетания сетевой привязки с DNS rebinding. Проверка Host полностью отключается, когда сервер слушает нелокальный адрес; 0.0.0.0 как раз относится к таким адресам. CORS сверяет Origin и Host, но злоумышленник размещает страницу на собственном домене сразу на порту 11434. При первой загрузке оба заголовка содержат один и тот же домен, поэтому запрос выглядит однодоменным. Сервер не видит в нём нарушения политики происхождения.
Далее DNS-запись домена меняется: вместо сервера злоумышленника она начинает указывать на 127.0.0.1. Для браузера источник остаётся прежним, поскольку имя хоста и порт не изменились, однако новые запросы попадают уже в Ollama на компьютере жертвы. Host не проверяется из-за нелокальной привязки демона, а CORS по-прежнему видит совпадающие Origin и Host. В итоге удалённая веб-страница отправляет команды локальному API без аутентификации. Elad Luz, руководитель исследований Oasis Security, подтвердил испытание полной цепочки на macOS в браузере Firefox против уязвимой версии NemoClaw. Серверная проверка разрешённых значений сразу в двух заголовках, Host и Origin, считается стандартной защитой от такого трюка.
Атаки DNS rebinding на Ollama документировались и раньше. После раскрытия проблемы в 2024 году разработчики добавили проверку Host; связанная с исправлением версия в имеющихся данных обозначена неполно как Ollama «v0.1.». Ранняя рекомендация предписывала принимать лишь заранее разрешённый набор значений Host. Но оставшаяся лазейка перечёркивает защиту при сетевой привязке, нужной NemoClaw. «Ollama пропускает эту проверку всякий раз, когда привязана к нелокальному адресу, а 0.0.0.0 — именно тот адрес, который задаёт NemoClaw», — пояснил Elad Luz.
Получив доступ к API, вредоносная страница отправляет через /api/create изменённый шаблон модели. Ollama принимает диалог как структурированный массив сообщений, а шаблон на языке Go превращает этот массив в обычный текст, поступающий модели. В заражённом варианте к каждому системному сообщению во время инференса дописывается скрытая команда злоумышленника. Это не разовая prompt injection внутри одного чата: правка хранится на уровне модели, действует после закрытия исходной страницы и распространяется на новые сеансы. Агент может передавать собственный системный промпт, но вредоносная вставка всё равно будет добавлена. Если агенту разрешён доступ к файлам, данным или инструментам, отравленный шаблон помогает распоряжаться этими полномочиями через его же ответы. Формулировка Oasis Security тут довольно точна: «Песочница защищает конечное устройство, но захват агента означает захват его доступа и инструментов».
По словам Elad Luz, NemoClaw v0.0.35 устранила описанную проблему на macOS и Linux. Для Windows, WSL и WSL2 равнозначного технического исправления не появилось. Версия NemoClaw v0.0.34 добавила путь установки на Windows, снабдив его предупреждением, а не полной защитой. NVIDIA рекомендует не открывать порт 11434 в локальную сеть, LAN, и публичный интернет. Такая мера мешает прямым внешним подключениям, но DNS rebinding работает иначе: запрос инициирует браузер, уже запущенный на машине жертвы, а после смены DNS он обращается к 127.0.0.1. Публичная доступность порта для этой атаки не требуется.
В NemoClaw v0.0.106 появилась дополнительная проверка, включённая по умолчанию 10 августа 2026 года. При изучении репозитория The Hacker News 25 августа 2026 года она присутствовала в коммите 17f0ca3b. Локальный прокси отказывается запускаться, если обнаруживает Ollama на нелокальном интерфейсе: иначе прямые запросы обошли бы токен. Сообщение гласит: «Отказ в запуске: демон Ollama, доступный через нелокальный интерфейс, полностью обходит проверку токена прокси. Установите OLLAMA_HOST=127.0.0.1:${port} для службы Ollama systemd либо задайте NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 для обхода проверки (не рекомендуется)». Прокси завершается со специальным кодом состояния. Переменная NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 отключает запрет, хотя NemoClaw прямо называет этот вариант нежелательным; на системах, где проверку привязки выполнить нельзя, механизм также не закрывает доступ по принципу fail closed.
Защита из v0.0.106 срабатывает только там, где NemoClaw действительно запускает прокси. На платформенных путях WSL он отсутствует, включая конфигурацию Windows-host Ollama с OLLAMA_HOST=0.0.0.0:11434. Получается довольно неприятная техническая щель: новый контроль прикрывает применимые конфигурации вне WSL, но проходит мимо той архитектуры Windows и WSL, где неаутентифицированный порт оказывается пригоден для браузерной цепочки. Доступ контейнера через host.docker.internal решает задачу связи Docker Desktop с хостом, однако выбранная ради неё привязка сервера ослабляет проверки Ollama.
Проверка коммита 17f0ca3b не выявила в репозитории NemoClaw контроля целостности шаблона чата. К конечной точке /api/show система обращается лишь за двумя сведениями: исходным размером контекстного окна модели и заявленной поддержкой вызова инструментов. Полученный шаблон не сравнивается с доверенной версией, его хеш не проверяется, а факт изменения через /api/create не блокируется. Поэтому API-клиент продолжает пользоваться моделью, не зная, что подготовка каждого системного сообщения уже происходит по чужим правилам.
Техника известна как poisoned chat templates, или «отравленные шаблоны чата». Ранее в августе 2026 года Oasis Security описала её применение против Paperclip, а в феврале 2026 года использовала сходный маршрут из браузера к localhost для перехвата локальных агентов OpenClaw. Материалы по NemoClaw были заранее переданы NVIDIA Product Security Incident Response Team, PSIRT, а The Hacker News получила исследование до публикации. Идентификатор CVE не присваивался; по состоянию на 25 августа 2026 года сведений об эксплуатации не было. Риск всё же не ограничивается открытым портом в LAN: локальный API без аутентификации, пропуск Host-проверки на 0.0.0.0, доверие CORS к неизменному доменному имени и отсутствие контроля шаблона складываются в цепочку, где одного посещения страницы достаточно для длительного изменения инструкций модели.
NemoClaw представляет собой эталонный стек NVIDIA с открытым исходным кодом для запуска ИИ-агентов, включая OpenClaw, внутри песочниц OpenShell. Локальные вычисления может обслуживать Ollama, чей API по умолчанию работает на порту 11434 без пароля или токена. Защита от запросов из браузера возложена на проверку HTTP-заголовка Host и правила CORS, сопоставляющие Origin с Host. Этой схемы недостаточно, если сервер запущен с переменной OLLAMA_HOST=0.0.0.0:11434: адрес 0.0.0.0 заставляет службу принимать соединения на всех сетевых интерфейсах. При слабых настройках межсетевого экрана Ollama может оказаться доступной и за пределами компьютера. Что любопытно, страница интеграции NemoClaw на сайте Ollama сама советует такую привязку при работе в WSL2 или контейнере.
На обычных системах вне WSL архитектура устроена осторожнее. Ollama остаётся на замкнутом адресе 127.0.0.1:11434, а перед ней запускается защищённый токеном обратный прокси NemoClaw, слушающий 0.0.0.0:11435. Если во время первоначальной настройки уже работающий демон привязан к другому адресу, NemoClaw перезапускает его и возвращает на loopback-интерфейс. Прямой доступ к неаутентифицированному API при этом перекрыт. В варианте с Docker Desktop на WSL прокси пропускается: контейнер может связаться с loopback-интерфейсом хоста через host.docker.internal. Для Ollama, запущенной непосредственно на Windows, NemoClaw задаёт OLLAMA_HOST=0.0.0.0:11434, чтобы её видел контейнер Docker Desktop, но защитный прокси на этом WSL-маршруте не стартует.
У Ollama есть две проверки браузерных запросов, и обе обходятся из-за сочетания сетевой привязки с DNS rebinding. Проверка Host полностью отключается, когда сервер слушает нелокальный адрес; 0.0.0.0 как раз относится к таким адресам. CORS сверяет Origin и Host, но злоумышленник размещает страницу на собственном домене сразу на порту 11434. При первой загрузке оба заголовка содержат один и тот же домен, поэтому запрос выглядит однодоменным. Сервер не видит в нём нарушения политики происхождения.
Далее DNS-запись домена меняется: вместо сервера злоумышленника она начинает указывать на 127.0.0.1. Для браузера источник остаётся прежним, поскольку имя хоста и порт не изменились, однако новые запросы попадают уже в Ollama на компьютере жертвы. Host не проверяется из-за нелокальной привязки демона, а CORS по-прежнему видит совпадающие Origin и Host. В итоге удалённая веб-страница отправляет команды локальному API без аутентификации. Elad Luz, руководитель исследований Oasis Security, подтвердил испытание полной цепочки на macOS в браузере Firefox против уязвимой версии NemoClaw. Серверная проверка разрешённых значений сразу в двух заголовках, Host и Origin, считается стандартной защитой от такого трюка.
Атаки DNS rebinding на Ollama документировались и раньше. После раскрытия проблемы в 2024 году разработчики добавили проверку Host; связанная с исправлением версия в имеющихся данных обозначена неполно как Ollama «v0.1.». Ранняя рекомендация предписывала принимать лишь заранее разрешённый набор значений Host. Но оставшаяся лазейка перечёркивает защиту при сетевой привязке, нужной NemoClaw. «Ollama пропускает эту проверку всякий раз, когда привязана к нелокальному адресу, а 0.0.0.0 — именно тот адрес, который задаёт NemoClaw», — пояснил Elad Luz.
Получив доступ к API, вредоносная страница отправляет через /api/create изменённый шаблон модели. Ollama принимает диалог как структурированный массив сообщений, а шаблон на языке Go превращает этот массив в обычный текст, поступающий модели. В заражённом варианте к каждому системному сообщению во время инференса дописывается скрытая команда злоумышленника. Это не разовая prompt injection внутри одного чата: правка хранится на уровне модели, действует после закрытия исходной страницы и распространяется на новые сеансы. Агент может передавать собственный системный промпт, но вредоносная вставка всё равно будет добавлена. Если агенту разрешён доступ к файлам, данным или инструментам, отравленный шаблон помогает распоряжаться этими полномочиями через его же ответы. Формулировка Oasis Security тут довольно точна: «Песочница защищает конечное устройство, но захват агента означает захват его доступа и инструментов».
По словам Elad Luz, NemoClaw v0.0.35 устранила описанную проблему на macOS и Linux. Для Windows, WSL и WSL2 равнозначного технического исправления не появилось. Версия NemoClaw v0.0.34 добавила путь установки на Windows, снабдив его предупреждением, а не полной защитой. NVIDIA рекомендует не открывать порт 11434 в локальную сеть, LAN, и публичный интернет. Такая мера мешает прямым внешним подключениям, но DNS rebinding работает иначе: запрос инициирует браузер, уже запущенный на машине жертвы, а после смены DNS он обращается к 127.0.0.1. Публичная доступность порта для этой атаки не требуется.
В NemoClaw v0.0.106 появилась дополнительная проверка, включённая по умолчанию 10 августа 2026 года. При изучении репозитория The Hacker News 25 августа 2026 года она присутствовала в коммите 17f0ca3b. Локальный прокси отказывается запускаться, если обнаруживает Ollama на нелокальном интерфейсе: иначе прямые запросы обошли бы токен. Сообщение гласит: «Отказ в запуске: демон Ollama, доступный через нелокальный интерфейс, полностью обходит проверку токена прокси. Установите OLLAMA_HOST=127.0.0.1:${port} для службы Ollama systemd либо задайте NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 для обхода проверки (не рекомендуется)». Прокси завершается со специальным кодом состояния. Переменная NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 отключает запрет, хотя NemoClaw прямо называет этот вариант нежелательным; на системах, где проверку привязки выполнить нельзя, механизм также не закрывает доступ по принципу fail closed.
Защита из v0.0.106 срабатывает только там, где NemoClaw действительно запускает прокси. На платформенных путях WSL он отсутствует, включая конфигурацию Windows-host Ollama с OLLAMA_HOST=0.0.0.0:11434. Получается довольно неприятная техническая щель: новый контроль прикрывает применимые конфигурации вне WSL, но проходит мимо той архитектуры Windows и WSL, где неаутентифицированный порт оказывается пригоден для браузерной цепочки. Доступ контейнера через host.docker.internal решает задачу связи Docker Desktop с хостом, однако выбранная ради неё привязка сервера ослабляет проверки Ollama.
Проверка коммита 17f0ca3b не выявила в репозитории NemoClaw контроля целостности шаблона чата. К конечной точке /api/show система обращается лишь за двумя сведениями: исходным размером контекстного окна модели и заявленной поддержкой вызова инструментов. Полученный шаблон не сравнивается с доверенной версией, его хеш не проверяется, а факт изменения через /api/create не блокируется. Поэтому API-клиент продолжает пользоваться моделью, не зная, что подготовка каждого системного сообщения уже происходит по чужим правилам.
Техника известна как poisoned chat templates, или «отравленные шаблоны чата». Ранее в августе 2026 года Oasis Security описала её применение против Paperclip, а в феврале 2026 года использовала сходный маршрут из браузера к localhost для перехвата локальных агентов OpenClaw. Материалы по NemoClaw были заранее переданы NVIDIA Product Security Incident Response Team, PSIRT, а The Hacker News получила исследование до публикации. Идентификатор CVE не присваивался; по состоянию на 25 августа 2026 года сведений об эксплуатации не было. Риск всё же не ограничивается открытым портом в LAN: локальный API без аутентификации, пропуск Host-проверки на 0.0.0.0, доверие CORS к неизменному доменному имени и отсутствие контроля шаблона складываются в цепочку, где одного посещения страницы достаточно для длительного изменения инструкций модели.