Red Agent знайшов вразливість Snowflake у GitHub Actions через п’ять днів після її появи
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду. 23 червня Red Agent використав спеціально сформований заголовок issue в межах авторизованої програми HackerOne і передав облікові дані Jira на контрольований out of...
ОпублікувавВідредаговано за допомогою GPT-5.6 LunaЗображення створено за допомогою GPT Image 1.5
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду.
23 червня Red Agent використав спеціально сформований заголовок issue в межах авторизованої програми HackerOne і передав облікові дані Jira на контрольований out of band callback.
Вразливість стосувалася GitHub Actions, а не випущеної версії Snowflake Connector for .NET; повідомлень про несанкціонований доступ сторонніх осіб або постраждалий реліз не було.
Snowflake того ж дня виправила workflow, наступного дня замінила скомпрометований токен, а аудит визначив Wiz єдиним учасником у період експозиції.
How did GitHub’s Copilot Autofix AI introduce a shell-injection vulnerability into Snowflake’s public .NET connector repository, how did WizAI-generated editorial illustration of automated code review and security testing.
AI Prompt
Create a landscape editorial hero image for this Studio Global article: How did GitHub’s Copilot Autofix AI introduce a shell-injection vulnerability into Snowflake’s public .NET connector repository, how did Wiz. Article summary: The incident was a GitHub Actions workflow injection in Snowflake’s public `snowflake-connector-net` repository, not a flaw in the .NET connector’s shipped runtime code. A June 18, 2026 change in PR #1218 made an issue t. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fa
openai.com
Що сталося у репозиторії Snowflake
Інцидент стосувався вразливості ін’єкції команд у workflow GitHub Actions у відкритому репозиторії snowflakedb/snowflake-connector-net. Це не була уразливість у програмному коді випущеного .NET-конектора.
Проблема з’явилася після злиття PR №1218 «SNOW-2069227: Update Jira workflows» 18 червня 2026 року. У файлі .github/workflows/jira_issue.yml workflow запускався щоразу, коли в репозиторії відкривали issue. Нова версія напряму вставляла ${{ github.event.issue.title }} у shell-блок run:.
Раніше заголовок передавали через змінну середовища, а JSON формували за допомогою jq — це був безпечніший підхід. Після зміни значення опинилося безпосередньо всередині shell-команди. GitHub спочатку розгортає вираз, а вже потім передає результат оболонці. Тому заголовок із одинарною лапкою міг закрити початковий рядок і додати довільні команди. Спроба очистити значення через sed відбувалася надто пізно й не могла скасувати попередню інтерпретацію shell.
Studio Global AI
Continue your research
This page includes a source-backed answer you can continue inside Studio Global.
What is the short answer to "Red Agent знайшов вразливість Snowflake у GitHub Actions через п’ять днів після її появи"?
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду.
What are the key points to validate first?
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду. 23 червня Red Agent використав спеціально сформований заголовок issue в межах авторизованої програми HackerOne і передав облікові дані Jira на контрольований out of band callback.
What should I do next in practice?
Вразливість стосувалася GitHub Actions, а не випущеної версії Snowflake Connector for .NET; повідомлень про несанкціонований доступ сторонніх осіб або постраждалий реліз не було.
Red Agent знайшов вразливість Snowflake у GitHub Actions через п’ять днів після її появи
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду. 23 червня Red Agent використав спеціально сформований заголовок issue в межах авторизованої програми HackerOne і передав облікові дані Jira на контрольований out of...
ОпублікувавВідредаговано за допомогою GPT-5.6 LunaЗображення створено за допомогою GPT Image 1.5
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду.
23 червня Red Agent використав спеціально сформований заголовок issue в межах авторизованої програми HackerOne і передав облікові дані Jira на контрольований out of band callback.
Вразливість стосувалася GitHub Actions, а не випущеної версії Snowflake Connector for .NET; повідомлень про несанкціонований доступ сторонніх осіб або постраждалий реліз не було.
Snowflake того ж дня виправила workflow, наступного дня замінила скомпрометований токен, а аудит визначив Wiz єдиним учасником у період експозиції.
How did GitHub’s Copilot Autofix AI introduce a shell-injection vulnerability into Snowflake’s public .NET connector repository, how did WizAI-generated editorial illustration of automated code review and security testing.
AI Prompt
Create a landscape editorial hero image for this Studio Global article: How did GitHub’s Copilot Autofix AI introduce a shell-injection vulnerability into Snowflake’s public .NET connector repository, how did Wiz. Article summary: The incident was a GitHub Actions workflow injection in Snowflake’s public `snowflake-connector-net` repository, not a flaw in the .NET connector’s shipped runtime code. A June 18, 2026 change in PR #1218 made an issue t. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fa
openai.com
Що сталося у репозиторії Snowflake
Інцидент стосувався вразливості ін’єкції команд у workflow GitHub Actions у відкритому репозиторії snowflakedb/snowflake-connector-net. Це не була уразливість у програмному коді випущеного .NET-конектора.
Проблема з’явилася після злиття PR №1218 «SNOW-2069227: Update Jira workflows» 18 червня 2026 року. У файлі .github/workflows/jira_issue.yml workflow запускався щоразу, коли в репозиторії відкривали issue. Нова версія напряму вставляла ${{ github.event.issue.title }} у shell-блок run:.
Раніше заголовок передавали через змінну середовища, а JSON формували за допомогою jq — це був безпечніший підхід. Після зміни значення опинилося безпосередньо всередині shell-команди. GitHub спочатку розгортає вираз, а вже потім передає результат оболонці. Тому заголовок із одинарною лапкою міг закрити початковий рядок і додати довільні команди. Спроба очистити значення через sed відбувалася надто пізно й не могла скасувати попередню інтерпретацію shell.
Studio Global AI
Continue your research
This page includes a source-backed answer you can continue inside Studio Global.
What is the short answer to "Red Agent знайшов вразливість Snowflake у GitHub Actions через п’ять днів після її появи"?
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду.
What are the key points to validate first?
18 червня 2026 року зміна в публічному репозиторії snowflakedb/snowflake connector net почала напряму вставляти заголовок GitHub issue у shell команду. 23 червня Red Agent використав спеціально сформований заголовок issue в межах авторизованої програми HackerOne і передав облікові дані Jira на контрольований out of band callback.
What should I do next in practice?
Вразливість стосувалася GitHub Actions, а не випущеної версії Snowflake Connector for .NET; повідомлень про несанкціонований доступ сторонніх осіб або постраждалий реліз не було.
Тригер issues: opened також не робив заголовок надійним. Будь-який користувач, який міг відкрити issue у публічному репозиторії, контролював його текст. Перевірка типу події обмежувала умови запуску workflow, але не перетворювала дані користувача на довірені й не блокувала їхню інтерполяцію в shell.
Яку роль відіграв Copilot Autofix
У squash-коміті Copilot Autofix powered by AI був зазначений як співавтор, а автоматизована перевірка не виявила небезпечної конструкції. Водночас наявні матеріали не встановлюють, чи Copilot згенерував цю зміну, чи лише був залучений до її перегляду або співавторства.
Тому точніше сказати, що Copilot був пов’язаний із комітом і не виявив ін’єкцію, а не стверджувати, ніби модель беззаперечно написала вразливий код.
Як Red Agent знайшов і використав недолік
Автономний інструмент Wiz Red Agent просканував публічну GitHub-організацію Snowflake на наявність небезпечних CI/CD-патернів. Він визначив, що jira_issue.yml використовує ненадійні дані issue всередині shell-блоку run:, і дійшов висновку, що спеціально сформований заголовок публічного issue може призвести до виконання довільних команд на runner GitHub Actions.
23 червня — лише через п’ять днів після злиття небезпечної зміни — агент відкрив підготовлений issue у межах програми Snowflake з розкриття вразливостей через HackerOne. Заголовок вийшов за межі передбаченого shell-рядка, після чого workflow передав облікові дані Jira на out-of-band callback, контрольований для авторизованої перевірки концепції.
Це був санкціонований тест безпеки, а не неконтрольоване проникнення. Але технічний висновок від цього не стає менш важливим: звичайне відкриття публічного issue давало змогу дістатися до кроку workflow, який працював із внутрішніми секретами, і перетворити користувацький текст на виконувані команди.
До чого отримали доступ
Уразливий workflow мав доступ до налаштувань внутрішньої Jira Snowflake — зокрема до URL Jira, електронної адреси користувача та API-токена. Отриманий токен був пов’язаний із qa@snowflake.net. Wiz використала його для автентифікації у внутрішньому порталі Jira та оцінки потенційного масштабу доступу.
За повідомленнями, токен дозволяв читати проєкти Jira, пов’язані з інженерною роботою, безпекою та відповідністю вимогам, а також активностями bug bounty. Водночас надані матеріали не містять повного переліку дозволів токена й не дають остаточного списку всіх записів, до яких можна було дістатися. Найобережніший підтверджений висновок полягає в тому, що токен відкривав доступ до чутливого внутрішнього вмісту Jira, але не свідчить про необмежений доступ до систем Snowflake.
Постраждалим активом була CI/CD-автоматизація репозиторію. Повідомлень про вразливу випущену версію Snowflake Connector for .NET не було, оскільки проблема містилася у workflow GitHub Actions, а не в коді, який виконується в самому конекторі.
Реакція Snowflake
Wiz повідомила про проблему 23 червня. Snowflake того ж дня виправила workflow, а наступного дня замінила відкритий Jira-токен.
Після цього компанія перевірила журнали аудиту й дійшла висновку, що протягом періоду експозиції єдиною активною стороною була Wiz. Wiz також заявила, що безпечно видалила дані, отримані під час proof-of-concept.
Про несанкціонований доступ третіх осіб, присвоєння CVE або постраждалий реліз конектора не повідомлялося. Ці обставини окреслюють підтверджений масштаб наслідків, але не виправдовують початковий дизайн workflow: заголовок публічного issue не мав ставати частиною shell-команди у процесі, який працював із внутрішніми обліковими даними.
Головний урок для CI/CD
Інцидент виходить за межі історії про Snowflake чи Copilot. Заголовки issue і pull request, назви гілок, коментарі та інші GitHub-вирази слід вважати потенційно шкідливими даними щоразу, коли вони потрапляють у shell-команду.
Безпечніший підхід передбачає:
передавання ненадійних значень через змінні середовища, а не їхню пряму вставку в скрипти run:;
використання структурованих інструментів на кшталт jq для створення JSON замість складання shell-рядків;
коректне екранування та перевірку даних на межі взаємодії із shell;
вилучення секретів із кроків, які обробляють дані, контрольовані користувачем;
незалежну перевірку змін, створених ШІ, так само ретельно, як і коду, написаного людиною.
Цей випадок наочно показує нову проблему кібербезпеки: одна AI-система для допомоги в програмуванні може пропустити небезпечну зміну CI/CD, а автономний наступальний агент — знайти й підтвердити її наслідки за кілька днів. Автоматизація пришвидшує і виправлення, і експлуатацію вразливостей, але не замінює незалежного контролю.
aigovernance.com
AI Coding Assistant Introduced a Flaw That an AI Attack Agent ...
Тригер issues: opened також не робив заголовок надійним. Будь-який користувач, який міг відкрити issue у публічному репозиторії, контролював його текст. Перевірка типу події обмежувала умови запуску workflow, але не перетворювала дані користувача на довірені й не блокувала їхню інтерполяцію в shell.
Яку роль відіграв Copilot Autofix
У squash-коміті Copilot Autofix powered by AI був зазначений як співавтор, а автоматизована перевірка не виявила небезпечної конструкції. Водночас наявні матеріали не встановлюють, чи Copilot згенерував цю зміну, чи лише був залучений до її перегляду або співавторства.
Тому точніше сказати, що Copilot був пов’язаний із комітом і не виявив ін’єкцію, а не стверджувати, ніби модель беззаперечно написала вразливий код.
Як Red Agent знайшов і використав недолік
Автономний інструмент Wiz Red Agent просканував публічну GitHub-організацію Snowflake на наявність небезпечних CI/CD-патернів. Він визначив, що jira_issue.yml використовує ненадійні дані issue всередині shell-блоку run:, і дійшов висновку, що спеціально сформований заголовок публічного issue може призвести до виконання довільних команд на runner GitHub Actions.
23 червня — лише через п’ять днів після злиття небезпечної зміни — агент відкрив підготовлений issue у межах програми Snowflake з розкриття вразливостей через HackerOne. Заголовок вийшов за межі передбаченого shell-рядка, після чого workflow передав облікові дані Jira на out-of-band callback, контрольований для авторизованої перевірки концепції.
Це був санкціонований тест безпеки, а не неконтрольоване проникнення. Але технічний висновок від цього не стає менш важливим: звичайне відкриття публічного issue давало змогу дістатися до кроку workflow, який працював із внутрішніми секретами, і перетворити користувацький текст на виконувані команди.
До чого отримали доступ
Уразливий workflow мав доступ до налаштувань внутрішньої Jira Snowflake — зокрема до URL Jira, електронної адреси користувача та API-токена. Отриманий токен був пов’язаний із qa@snowflake.net. Wiz використала його для автентифікації у внутрішньому порталі Jira та оцінки потенційного масштабу доступу.
За повідомленнями, токен дозволяв читати проєкти Jira, пов’язані з інженерною роботою, безпекою та відповідністю вимогам, а також активностями bug bounty. Водночас надані матеріали не містять повного переліку дозволів токена й не дають остаточного списку всіх записів, до яких можна було дістатися. Найобережніший підтверджений висновок полягає в тому, що токен відкривав доступ до чутливого внутрішнього вмісту Jira, але не свідчить про необмежений доступ до систем Snowflake.
Постраждалим активом була CI/CD-автоматизація репозиторію. Повідомлень про вразливу випущену версію Snowflake Connector for .NET не було, оскільки проблема містилася у workflow GitHub Actions, а не в коді, який виконується в самому конекторі.
Реакція Snowflake
Wiz повідомила про проблему 23 червня. Snowflake того ж дня виправила workflow, а наступного дня замінила відкритий Jira-токен.
Після цього компанія перевірила журнали аудиту й дійшла висновку, що протягом періоду експозиції єдиною активною стороною була Wiz. Wiz також заявила, що безпечно видалила дані, отримані під час proof-of-concept.
Про несанкціонований доступ третіх осіб, присвоєння CVE або постраждалий реліз конектора не повідомлялося. Ці обставини окреслюють підтверджений масштаб наслідків, але не виправдовують початковий дизайн workflow: заголовок публічного issue не мав ставати частиною shell-команди у процесі, який працював із внутрішніми обліковими даними.
Головний урок для CI/CD
Інцидент виходить за межі історії про Snowflake чи Copilot. Заголовки issue і pull request, назви гілок, коментарі та інші GitHub-вирази слід вважати потенційно шкідливими даними щоразу, коли вони потрапляють у shell-команду.
Безпечніший підхід передбачає:
передавання ненадійних значень через змінні середовища, а не їхню пряму вставку в скрипти run:;
використання структурованих інструментів на кшталт jq для створення JSON замість складання shell-рядків;
коректне екранування та перевірку даних на межі взаємодії із shell;
вилучення секретів із кроків, які обробляють дані, контрольовані користувачем;
незалежну перевірку змін, створених ШІ, так само ретельно, як і коду, написаного людиною.
Цей випадок наочно показує нову проблему кібербезпеки: одна AI-система для допомоги в програмуванні може пропустити небезпечну зміну CI/CD, а автономний наступальний агент — знайти й підтвердити її наслідки за кілька днів. Автоматизація пришвидшує і виправлення, і експлуатацію вразливостей, але не замінює незалежного контролю.
aigovernance.com
AI Coding Assistant Introduced a Flaw That an AI Attack Agent ...