ИИ-агент, который ищет уязвимости, самостоятельно обнаружил ошибку в публичном репозитории Snowflake и через неё добрался до внутренней системы Jira компании. Уязвимость появилась всего за пять дней до этого, а когда код проверял GitHub Copilot , он не заметил опасный участок.
Специалисты Wiz обнаружили проблему с помощью автономного инструмента Red Agent, который проверял репозитории Snowflake на GitHub. Ошибка находилась в сценарии GitHub Actions проекта snowflakedb/snowflake-connector-net. Любой пользователь GitHub мог запустить уязвимый процесс, просто создав новую заявку с подготовленным заголовком.
Проблемный код появился 18 июня 2026 года после того, как приняли запрос на изменение №1218. Раньше заголовок заявки сначала помещался в переменную окружения, а затем безопасно передавался программе jq, чтобы сформировать данные. Новая версия напрямую подставляла содержимое заголовка в команду оболочки. Достаточно было добавить одинарную кавычку, чтобы выйти за пределы ожидаемой строки и заставить сервер выполнить постороннюю команду.
Особое внимание Wiz обратила на роль GitHub Copilot. Итоговая запись об изменении указывает «Copilot Autofix powered by AI» как соавтора, а когда Copilot проверял изменения, он счёл их безопасными и не обнаружил критическую ошибку. При этом Wiz уточняет, что нельзя достоверно утверждать, будто сам уязвимый фрагмент написал искусственный интеллект.
Дополнительная защита, которая должна была не позволять сценарию запускаться без ограничений, тоже не сработала. Когда пользователь создавал обычную заявку, одно из проверяемых полей всегда оставалось пустым, поэтому условие автоматически выполнялось для любого пользователя GitHub. В результате защитный барьер фактически никого не останавливал.
Red Agent не остановился на том, что нашёл ошибку. Агент самостоятельно подготовил проверочный запрос и попытался получить учётные данные Jira из среды GitHub Actions. Сначала он получил синтаксическую ошибку. Система проанализировала ответ, изменила команду и проверила снова. Через несколько секунд Wiz получила данные, которые позволяли войти во внутреннюю Jira Snowflake под учётной записью qa@snowflake.net.
Полученный ключ давал права на чтение проектов Snowflake, связанных с тем, как компания разрабатывает продукты, соблюдает требования безопасности и вознаграждает за найденные уязвимости. Таким образом, ошибка в публичном репозитории открывала путь к внутренней информации компании.
Wiz сообщила Snowflake о проблеме 23 июня. Компания исправила сценарий в тот же день, вернув прежний безопасный способ обрабатывать данные, а 24 июня заменила ключ Jira. Когда специалисты проверили журналы, выяснилось, что за пять дней, пока уязвимость существовала, посторонние не воспользовались ею. Snowflake заявила, что следы несанкционированного доступа отсутствуют.
Wiz рекомендует проверять изменения, созданные или одобренные такими системами, так же тщательно, как код, написанный человеком.