Wiz의 자율 AI 도구가 Snowflake 공개 저장소의 jira_issue.yml 워크플로에서 스크립트 인젝션을 발견함 — github.event.issue.title을 run: 블록에 그대로 삽입해, 누구나 특수 제목의 이슈를 열면 러너에서 임의 명령이 실행되고 토큰이 유출돼 Jira까지 접근 가능했음. PR #1218 병합으로 6월 18일 취약점이 활성화됐고 GitHub Advanced Security 스캔과 Copilot의 코드 검토가 모두 이를 '이상 없음'으로 통과시켰으며, 6월 23일 제보 당일 패치·크리덴셜 교체가 이뤄짐.
취약점은 snowflakedb/snowflake-connector-net의 jira_issue.yml에 있었다. 워크플로가 issues: opened에서 트리거되어 누구나 이슈를 열면 실행됐고, 공격자가 제어하는 이슈 제목(github.event.issue.title)을 run: 블록의 셸 스크립트에 직접 보간했다. 특수 제작한 제목이면 인증 없는 사용자가 GitHub Actions 러너에서 임의 명령을 실행할 수 있었고, 이를 통해 토큰을 탈취해 Snowflake의 Jira 포털에 접근하는 것까지 시연됐다.
주목할 점은 방어선이 겹겹이 있었는데도 뚫렸다는 것이다. 취약점은 PR #1218이 병합된 6월 18일 활성화됐고, GitHub Advanced Security 스캔이 최종 revision을 분석했지만 인젝션을 플래그하지 않았으며, Copilot은 공동 작성자로 병합된 PR을 검토하고도 '이상 없음'으로 판정했다. 6월 23일 Wiz의 책임 있는 제보 당일 Snowflake는 패치하고 크리덴셜을 교체했으며 감사 로그로 Wiz가 유일한 행위자였음을 확인했다.
수정은 이슈 제목을 env로 받아 셸 보간을 피하는 방식이었다. 이 사례의 교훈은 명확하다 — untrusted 입력을 run: 블록에 넣지 말고 환경변수로 넘긴 뒤 인용해 사용하고, AI 어시스트나 자동 스캔의 '통과'를 최종 안전 신호로 삼지 말아야 한다.