Уязвимости в Paperclip позволяют выполнить код через импорт агентов и DNS-ребиндинг

Paperclip

В открытой платформе оркестрации AI-агентов Paperclip обнаружены три уязвимости, две из которых имеют критическую степень опасности. Они позволяют злоумышленнику выполнять команды на сервере или на локальной машине разработчика, а также получать доступ к данным других пользователей. Проблемы связаны с нарушением границ авторизации при импорте компаний и агентов, а также с доверием к локальному сетевому трафику.

Детали уязвимости

Paperclip - это open-source система для координации автономных агентов, которые работают в рамках виртуальных "компаний". Платформа подключает агентов к средам выполнения через специальные адаптеры. Встроенный адаптер процессов может запускать заданные команды от имени серверного процесса Paperclip. Поэтому доступ к настройке агента фактически означает доступ к исполнению кода на хост-системе.

Наиболее серьёзная уязвимость отслеживается как CVE-2026-41679 и получила максимальную оценку 10.0 по шкале CVSS. Она затрагивает сетевые развёртывания Paperclip, работающие в аутентифицированном режиме с настройками регистрации по умолчанию. Версии старше 2026.416.0 подвержены проблеме. Суть в том, что атакующий без каких-либо учётных данных может зарегистрировать аккаунт без проверки электронной почты, создать запрос на авторизацию командной строки и сам же его одобрить после входа в систему. Это даёт ему постоянный API-ключ уровня компании. После этого злоумышленник может импортировать новую компанию с агентом, которому назначена произвольная команда. При вызове внутреннего механизма активации процесс-адаптер выполняет эту команду с правами учётной записи, под которой работает сервер Paperclip.

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

Вторая уязвимость, обозначенная как GHSA-xfqj-r5qw-8g4j, имеет уровень опасности высокий и оценку 8.3 по CVSS. Она затрагивает аутентифицированный режим. Некоторые API-маршруты не проверяли подлинность пользователя и принадлежность к компании. Из-за этого неаутентифицированный запрос мог получить данные о запусках проверок, документацию по навыкам агентов и сведения о состоянии системы: режим развёртывания, версию, готовность к аутентификации, флаги функций. Сами по себе эти данные не позволяли выполнить код, но существенно облегчали разведку и могли раскрыть информацию между разными компаниями. В ответ разработчики добавили проверку доступа к данным о запусках, обязательную аутентификацию для общих конечных точек, сократили объём данных в ответе о состоянии для неавторизованных пользователей и расширили регрессионное тестирование.

Третья уязвимость - GHSA-x8hx-rhr2-9rf7 - также критическая, с оценкой 9.6. Она связана с DNS-ребиндингом - методом атаки, когда злоумышленник управляет DNS-именем, которое сначала указывает на его сервер, а затем на локальный адрес 127.0.0.1. Проблема затрагивает режим local_trusted, используемый по умолчанию для локальной разработки до версии 0.3.1. В этом режиме Paperclip считает любой запрос к локальному сервису действием администратора. Злоумышленник мог подготовить веб-страницу, которая после переключения DNS отправляет запросы к локальному экземпляру Paperclip через браузер. Поскольку сервер принимал произвольные заголовки Host, страница могла импортировать и активировать агента с выбранной командой, что приводило к выполнению кода с правами пользователя-разработчика.

Исправление этой уязвимости заключается в проверке имени хоста в режиме local_trusted: запросы с подменённым заголовком отклоняются до передачи в API. Дополнительно были усилены ограничения на типы адаптеров в импортируемых конфигурациях, нормализация данных и перевод новых агентов в процесс согласования.

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

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

Ссылки

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