Сгенерированная абстрактная иллюстрация на бледном серо-голубом фоне: через центр проходит длинная горизонтальная полоса трубопровода из тонких контуров тёмно-аспидного цвета, на которой расположен единственный скруглённый узел агента. От левого края немаркированный поток мелких нерегулярных фрагментов попадает в этот узел через разрыв в его контуре, а не через обозначенный вход над ним. Ниже по потоку за пунктирной пограничной линией находится гораздо более крупное скопление составленных друг на друга прямоугольных блоков. Голубой свет очерчивает законный путь над узлом; янтарный свет очерчивает фрагменты, входящие через разрыв. Позади расположена бледная сетка-чертёж. Текст, числа, люди, брендовые знаки или логотипы организаций отсутствуют. Логотип OrcaRouter наложен в правом нижнем углу.
AI Safety Incidents

Агент Duo Claude в GitLab мог выполнять произвольные команды в CI. Но никто не показал, что это действительно использовалось.

Автор

Elias Hawthorne

Дата публикации

Новые модели · 20Все модели →
Бенчмарки: Artificial Analysis · обновляется ежедневно
Назад ко всем статьям

GitLab выпустила исправленные версии 26 августа 2026 года для уязвимости высокой опасности в агенте Duo Claude AI — агенте на базе Claude, который в рекомендациях GitLab относится к контексту CI. Отслеживаемая как CVE-2026-18252, эта ошибка позволяла аутентифицированному пользователю с ролью Developer выполнять произвольные команды внутри задания CI, поскольку агент обрабатывал конфигурацию из контролируемого пользователем источника, не проверяя её происхождение. GitLab оценила её в 7,3 по шкале CVSS 3.1 и ограничила затронутый диапазон GitLab Enterprise Edition: версии с 18.9 до 19.1.7 (не включительно), с 19.2 до 19.2.5 и с 19.3 до 19.3.1. GitLab.com уже работал на исправленном коде, а клиентам GitLab Dedicated сообщили, что никаких действий не требуется. Ни один источник, изученный для этой статьи, не сообщает, что кто-либо эксплуатировал уязвимость, и в открытых источниках не опубликовано доказательство концепции. Собственная запись архива об этом инциденте с его оценками серьёзности и достоверности находится в Orca AI Incident Archive, рядом с соседними записями за ту же неделю.

Что говорит рекомендация и о чём она умалчивает

Основной документ короткий. Опубликованные в тот же день примечания GitLab к патч-релизам 19.3.1, 19.2.5 и 19.1.7 перечисляют семь исправлений безопасности. Первый, помеченный как High, озаглавлен «Проблема включения функциональности из недоверенной сферы управления в агенте Duo Claude AI затрагивает GitLab EE», а его текстовое описание состоит всего из одного предложения. GitLab сообщает, что «устранила проблему, из-за которой при определённых условиях аутентифицированный пользователь с правами роли разработчика мог выполнить произвольные команды в контексте CI, поскольку агент Claude обрабатывал конфигурацию из источника, контролируемого пользователем». Это всё техническое описание, опубликованное вендором.

Запись CVE, назначенная самой GitLab, добавляет скорее структуру, чем содержание. В ней слабость классифицируется как CWE-829, повторяются затронутые диапазоны и оценка CVSS 7.3, а также указано, что идентификатор был зарезервирован 29 июля 2026 года и опубликован 26 августа в 13:36 UTC. Отчёт HackerOne 3863650 о bug bounty, который GitLab указывает в качестве источника, вернул 403 на неаутентифицированный запрос 29 октября 2026 года, поэтому его технические подробности не опубликованы; кроме того, элемент трекера, на который запись CVE ссылается как на источник, — рабочий элемент gitlab-org/gitlab 607342 — при этой проверке не содержал читаемого содержимого задачи.

То, чего не сообщает уведомление, — это как раз то, что хотел бы знать защитник. В нём не указано, какая функция Duo задействована, какое поле конфигурации читает агент и какую форму принимает контролируемый пользователем источник — будь то файл репозитория, переменная конвейера, комментарий в issue или merge request либо параметр API. Ничего из этого нет ни в примечаниях GitLab, ни в записи CVE, ни в отраслевых публикациях, рассмотренных для этой статьи. Документация GitLab по продукту действительно описывает один путь Claude в CI: внешние агенты, которые, согласно документации, запускают конвейер CI/CD при упоминании в issue, эпике или merge request и для которых существует пример конфигурации Claude Code. Ничто из рассмотренного не связывает этот путь с CVE-2026-18252. Это контекст, объясняющий, почему агент Claude вообще обладает привилегиями CI, а не механизм ошибки.

Та же документация прямо говорит о классе риска. На странице GitLab о внешних агентах уязвимости типа «внедрение промптов» перечислены среди рисков, которые клиенты принимают, когда включают эту функцию, а стороннее сканирование промптов, реализованное в ней, описывается как мера снижения риска. На этой странице не упоминается CVE-2026-18252, и предупреждение не является его описанием. Она показывает, что недоверенные входные данные, достигающие агента с доступом к пайплайну, — это риск, который собственная документация GitLab уже предлагает клиентам принять.

A self-built HTML card titled 'The disclosure, in GitLab's terms', badged 'CVE-2026-18252 · published 26 August 2026'. Nine labelled rows read: weakness class, CWE-829 inclusion of functionality from an untrusted control sphere; CVSS per GitLab, 7.3 High on the vector network, low complexity, low privileges, user interaction required, high confidentiality and integrity impact, no availability impact; CVSS per NIST, 8.1 on the same vector with user interaction marked not required; affected, GitLab EE from 18.9 before 19.1.7, 19.2 before 19.2.5, and 19.3 before 19.3.1; fixed, the same dates in versions 19.1.7, 19.2.5 and 19.3.1; reporter, thwin_htet through GitLab's HackerOne programme, report 3863650; hosted instances, GitLab.com already patched, GitLab Dedicated no action required; workaround, none published; exploitation, none reported in any source reviewed. A footer reads 'Sources: GitLab patch release notes for 19.3.1, 19.2.5 and 19.1.7; the CVE-2026-18252 record as stored in NVD; OpenCVE; CERT Sante, 27 August 2026.' The OrcaRouter logo is composited in the bottom-right corner.

Контекст CI — это место, где находятся учётные данные.

Фраза, несущая оценку серьёзности, — «в контексте CI». Задание конвейера — не игрушечная песочница; оно выполняется с токеном раннера и теми секретами, которые проект ему предоставил. Cyber Security News, сообщая об исправлении 27 августа 2026 года, перечисляет, к чему обычно имеют доступ такие задания, — исходный код, артефакты сборки, учётные данные для развёртывания, облачные токены и учётные данные репозиториев пакетов — и отмечает, что выполнение команд в конвейере может раскрыть переменные CI, изменить артефакты сборки, вмешаться в процессы выпуска или получить дальнейший доступ к связанной инфраструктуре в зависимости от конфигурации раннера и области действия токена. В материале GBHackers, опубликованном в тот же день, используется та же формулировка. Ни одно из изданий не сообщает о случае, когда это произошло.

Это различие определяет, как следует трактовать этот недостаток. Это ошибка выполнения команд в агентном компоненте, а не демонстрация неправильного поведения модели: в записи описывается конфигурация, полученная из источника, контролируемого пользователем, и то, как агент действует на её основе. Ни один из рассмотренных источников не описывает эту эксплуатацию как успешную prompt-инъекцию, и в уведомлении GitLab результат никогда не приписывается решению модели. Зафиксированная слабость — это код, который доверяет источнику конфигурации, которому доверять не следует, — CWE-829, включение функциональности из недоверенной области контроля.

Две оценки CVSS и один шаг взаимодействия

7.3 от GitLab — не единственная оценка, привязанная к этому идентификатору. В той же записи NVD первичная оценка NIST составляет 8.1. Эти два вектора идентичны, кроме одного компонента: GitLab отмечает взаимодействие с пользователем как обязательное, а NIST — нет. Обе оценки находятся в диапазоне High, поэтому практическая разница заключается не столько в степени серьёзности, сколько в условиях, при которых срабатывает уязвимость. CERT Santé — команда реагирования на компьютерные инциденты Министерства здравоохранения Франции — опубликовала 27 августа 2026 года предупреждение, которое соответствует трактовке GitLab: 7.3, требуется взаимодействие с пользователем, а триггер описан как взаимодействие, запускающее обработку конфигурации.

Сигналы об эксплуатации не проявляются, и каждый из них представляет собой интерпретацию записей, а не телеметрию. Оценка SSVC, сохранённая в записи NVD 26 августа 2026 года координаторской ролью CISA, фиксирует эксплуатацию как «none» (отсутствует), автоматизируемость как «no» (нет), а техническое воздействие как «total» (полное). Модель EPSS организации FIRST оценила вероятность эксплуатации в 0,00519 — чуть больше половины процента — по состоянию на 28 октября 2026 года, что соответствует 44-му процентилю среди оценённых уязвимостей. В записи OpenCVE приводится тот же показатель EPSS, и CVE числится отсутствующей в каталоге CISA Known Exploited Vulnerabilities. В оповещении CERT Santé указано: «активно эксплуатируется: нет», и добавляется, что на ту дату в открытых источниках не существовало доказательства концепции (proof of concept). Ничто из этого не доказывает, что никто не пытался; это лишь отсутствие любых зафиксированных попыток.

По крайней мере один агрегатор, Mallory, распространяет оценку 8.7 для того же идентификатора. В записи NVD вообще нет метрики CVSS 4.0 — только 7.3 от GitLab и 8.1 от NIST — поэтому эта цифра не воспроизводится ни из одного проверенного первоисточника и здесь не используется.

Что установлено, а что — нет

Архив присваивает этой записи уровень достоверности A, не оспаривается, без зафиксированного реального вреда. Эта оценка действительно играет здесь важную роль: документы согласуются друг с другом, и ни один из них не описывает вред. Приведённая ниже разбивка — это та часть, которую не может передать резюме в одну строку.

• Установлено: уязвимость в агенте Duo Claude AI позволила аутентифицированной роли Developer получить возможность выполнения произвольных команд в контексте CI, поскольку агент обрабатывал конфигурацию из контролируемого пользователем источника. GitLab присвоил CWE-829 и CVSS 7.3.

• Установлено: затронутые диапазоны и исправление — 18.9 до 19.1.7, 19.2 до 19.2.5, 19.3 до 19.3.1; исправлено 26 августа 2026 г. в 19.1.7, 19.2.5 и 19.3.1. Уязвимость зарегистрирована для GitLab EE; в том же выпуске был также исправлен CE, но для другой уязвимости.

• Установлено: благодарность репортёру thwin_htet в рамках программы GitLab на HackerOne, а также оперативный статус, который GitLab сообщил клиентам — GitLab.com уже исправлен, GitLab Dedicated вне рамок необходимых действий, самостоятельно развёрнутым установкам рекомендовано немедленно обновиться.

• Установлено: сообщений об эксплуатации не поступало. Оценка SSVC от CISA указывает на отсутствие эксплуатации; EPSS оставался ниже одного процента до конца октября 2026 года; согласно OpenCVE, CVE отсутствует в каталоге KEV; CERT Santé не зафиксировал активной эксплуатации на следующий день после раскрытия информации.

• Приписывается, но не подтверждено вендором: описания последствий — секреты доступны для чтения, артефакты можно изменять, релизы можно подменять — представляют собой изложение в публикациях того, что обычно допускает область действия токена CI-задания, а не вывод о том, что что-либо из этого произошло в данном случае. Cyber Security News и GBHackers обе подают их со словами «могло» и «в зависимости от»; ни один из них не сообщает о конкретном случае.

• Не установлено:какая функция Duo и какое поле конфигурации были задействованы, а также что на самом деле представлял собой контролируемый пользователем источник. В заявлении поставщика они не указаны.

• Не установлено:сколько установок Enterprise с самостоятельным управлением находилось в затронутых диапазонах, сколько обновилось после 26 августа 2026 года или подвергалась ли атаке хоть одна из них. Ни один из рассмотренных источников не оценивает распространённость, а поставщик не опубликовал метод обнаружения для экземпляров, исправленных с опозданием.

• Пока не установлено: технический механизм. Согласно 90-дневному правилу GitLab, задача станет общедоступной примерно в конце ноября 2026 года; до этого связанный элемент трекера является указателем на объяснение, которого пока нет в открытом доступе.

A generated abstract illustration on a pale grey-blue field: a small outlined account node sits at the lower left, linked upward by a single thin line to a larger rounded agent node, which in turn connects to a rectangular job container outlined in dark slate. Inside the container, a stack of pale rectangular credential blocks is drawn behind a dotted boundary. The connecting line from the agent passes straight through that boundary rather than around it, and a short amber segment marks where it crosses. A faint second line, drawn in light cyan, runs outside the boundary and stops short. A faint blueprint grid sits behind. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

Исправление, простой и 90-дневное ожидание

GitLab выпустила 19.3.1, 19.2.5 и 19.1.7 как для Community, так и для Enterprise Edition 26 августа 2026 года и заявила, что настоятельно рекомендует немедленно обновить все самостоятельно размещённые установки до одной из этих версий. Часть выпуска, относящаяся к Community Edition, важна, поскольку другая уязвимость в том же пакете — CVE-2026-77801, проблема отказа в обслуживании в конвейерах импорта с оценкой 6.5 — затрагивает как CE, так и EE. Сам CVE-2026-18252 зарегистрирован только для Enterprise Edition.

Вендорского обходного решения не существует. В предупреждении CERT Santé указано, что обходного решения нет, а в примечаниях GitLab оно не предлагается; единственное указанное средство — обновление. Этот выпуск также не является простой заменой. Он включает обычные миграции базы данных во всех трёх версиях и миграции после развёртывания в 19.3.1 и 19.2.5, что, по словам GitLab, приведёт к простою на одноузловых установках, пока выполняются миграции. Для многоузловых развёртываний можно использовать процедуру обновления GitLab без простоя.

A self-built HTML card titled 'From reserved identifier to public detail', subtitled 'CVE-2026-18252, the dates that are on the record'. Five timeline rows read: 29 July 2026, GitLab reserves the CVE identifier; 26 August 2026 at 13:36 UTC, the CVE is published and 19.3.1, 19.2.5 and 19.1.7 ship with the fix; 27 August 2026, CERT Sante publishes an alert recording no active exploitation and no workaround; 28 October 2026, FIRST's EPSS puts exploitation probability at 0.00519, the 44th percentile; late November 2026, GitLab's 90-day rule expires and the issue detail becomes public. A footer reads 'Sources: CVE-2026-18252 record metadata; GitLab patch release notes, 26 August 2026; CERT Sante alert, 27 August 2026; FIRST EPSS API, read 29 October 2026; GitLab disclosure policy.' The OrcaRouter logo is composited in the bottom-right corner.

На остальные шесть исправлений стоит взглянуть, потому что одно из них близко к теме этой записи. CVE-2026-15387 с оценкой 4,3, исправленная в тех же трёх версиях, позволяла аутентифицированному пользователю с разрешениями роли разработчика влиять на среду выполнения заданий обеспечения соблюдения Pipeline Execution Policy из-за неправильной обработки зависимостей заданий. Два пути выполнения заданий для роли разработчика — один с рейтингом High, другой Medium — закрыты тем же патчем.

Политика раскрытия информации GitLab объясняет, почему этот механизм остается непрозрачным. В примечаниях к патчам указано, что задачи с описанием каждой уязвимости становятся публичными в трекере задач через 90 дней после выпуска, в котором они были исправлены. Если считать с 26 августа 2026 года, техническое описание CVE-2026-18252 приходится на последнюю неделю ноября 2026 года. До этого момента за ссылкой на трекер в записи CVE не будет публичного технического описания, которое могла бы прочитать эта статья.

Как это соотносится с другой уязвимостью агента GitLab

2 октября 2026 года GitLab раскрыла вторую, отдельную уязвимость, связанную с агентами: CVE-2026-90970 с оценкой 9.9 — в AI Gateway, а не в агенте Duo Claude AI, и достижимую через специально сформированный шаблон запроса потока (flow prompt template), а не через конфигурацию CI. Это две разные ошибки в разных компонентах с разными оценками, и в архиве они хранятся как отдельные записи. Общее у них — сама схема: компонент ИИ в цепочке доставки действует на основе конфигурации, на которую может повлиять пользователь с более низкими привилегиями; именно поэтому октябрьскую уязвимость стоит читать вместе с этой, а не вместо неё.

Для оператора выбор невелик. Проверьте версию: 19.1.7, 19.2.5 и 19.3.1 — это исправленные выпуски, а любая версия из трёх указанных диапазонов затронута. Тем временем применять нечего — обходного решения нет, а до конца ноября не опубликовано техническое описание, с которым можно было бы сверять поздно пропатченный экземпляр. Есть лишь запись, в которой никто не сообщал об эксплуатации уязвимости, — и это констатация отсутствия доказательств, а не заверение поставщика о том, что взлома не произошло.