발표에서 확인된 핵심 사실
안전하게 입력값을 거르던 기존 방식이 사라지고 셸 스크립트 내에 문자열을 그대로 집어넣는 방식으로 코드가 바뀌면서 보안 구멍이 뚫렸다. AI 코딩 어시스턴트인 GitHub Copilot Autofix가 Snowflake의 GitHub Actions(소프트웨어 개발 과정을 자동화하는 도구) 워크플로우를 수정하며 발생한 일이다. 2026년 6월 18일 커밋(PR #1218)을 통해 도입된 이 변경 사항은 기존의 안전한 입력 패턴을 제거하고 직접적인 문자열 확장을 사용하도록 코드를 수정했다. 외부에서 들어온 값을 검사 없이 명령어로 바로 실행하게 만들어 공격자가 원하는 코드를 심을 수 있는 경로를 열어준 결과가 됐다.
2026년 6월 23일 보안 기업 Wiz의 보고를 받은 Snowflake는 당일 즉시 패치를 완료했다. PR #1402를 통해 안전한 env: 변수와 jq 파싱(JSON 형식의 데이터를 추출하고 가공하는 도구) 패턴을 다시 복구했다. 입력값을 환경 변수라는 별도 공간에 담아 처리하고 전용 도구로 내용을 분석해 안전하게 꺼내 쓰는 방식을 되살린 것이다. 동시에 유출된 Jira 토큰을 회수하고 새것으로 교체했다. 상세 감사 로그를 통해 Wiz 외에 다른 제3자가 접근한 흔적은 없음을 확인했다.
기술이 실제로 작동하는 방식
특수하게 제작한 제목으로 GitHub 이슈를 생성하는 것만으로 서버에서 임의의 명령어를 실행할 수 있는 구멍이 발견됐다. 인증되지 않은 외부 사용자라도 이슈 제목만 잘 적으면 내부 시스템을 조작할 수 있는 상태였다.
문제는 `snowflakedb/snowflake-connector-net` 저장소의 `jira_issue.yml` 워크플로우에서 발생했다. 워크플로우는 소프트웨어 빌드나 테스트를 자동으로 처리하는 GitHub Actions(깃허브 액션즈)의 설정 파일이다. 공격자가 제목에 특정 문자를 넣으면 시스템이 이를 명령어로 오인해 쉘 블록(명령어를 입력하는 창)을 탈출하고 임의의 코드를 실행하는 구조였다.
Wiz Research의 자율형 AI 보안 도구인 Red Agent(레드 에이전트)가 이 취약점을 자동으로 찾아내 검증했다. Red Agent는 Snowflake의 GitHub 조직을 스캔해 보안 약점을 식별하는 AI 연구 도구다. 쉘 구문 오류가 나자 스스로 페이로드(공격 대상에 전달하는 실제 데이터)를 수정해 Jira 자격 증명을 탈취하며 공격 가능성을 증명했다.
탈취된 Jira 토큰을 통해 Snowflake의 엔지니어링
Red Agent(취약점을 자동으로 찾는 AI 에이전트)가 탈취한 [email protected] 계정의 토큰은 Snowflake의 내부 정보 창고인 snowflakecomputing.atlassian.net으로 들어가는 열쇠가 됐다. 이 권한으로 엔지니어링과 보안 컴플라이언스, 버그 바운티(보안 취약점을 찾아 신고하면 포상금을 주는 제도) 추적 프로젝트의 데이터를 모두 읽어낼 수 있었다. 내부 설계도와 보안 취약점 기록이 외부로 노출된 결과다.
AI 도구는 정해진 정답이 아니라 확률적인 패턴으로 코드를 짜기 때문에 보안상 취약한 옛날 방식을 다시 가져올 위험이 있다. AI가 제안한 PR(풀 리퀘스트, 변경한 코드를 반영해달라는 요청) 역시 사람이 짠 코드와 똑같이 정적 분석(코드를 실행하지 않고 오류를 찾는 검사)과 보안 검토를 거쳐야 한다. AI 생성 코드가 보안의 새로운 구멍이 될 수 있다.
자동화된 에이전트가 취약점을 찾는 시간이 몇 시간 단위로 짧아지면서 패치 주기를 앞당기고 유효 기간이 짧은 자격 증명을 도입하는 대응이 필요해졌다. AI가 수정한 코드 중 jq(텍스트 데이터를 필터링하고 가공하는 도구)를 이용한 구조화된 데이터 파싱 패턴이 `${{ github.event... }}` 같은 단순 문자열 삽입 방식으로 바뀌지 않았는지 확인하는 보안 검토 기준을 갖춰야 한다.


