클라우드 보안 전문 기업 위즈(Wiz)의 자율 보안 도구 레드 에이전트(Red Agent)가 데이터 클라우드 기업 스노우플레이크(Snowflake)의 공개 GitHub 저장소에서 심각한 보안 취약점을 발견했습니다. 이 취약점은 GitHub Actions 워크플로의 스크립트 주입(script injection) 문제와 잘못된 보안 조건 처리로 인해 발생했으며, 공격자가 GitHub 이슈 제목만으로 임의 명령을 실행하고 스노우플레이크의 지라(Jira) 자격 증명을 탈취할 수 있었습니다. 특히, 이 취약점이 도입된 코드 변경에 GitHub 코파일럿(Copilot)이 공동 작성자로 기록되어 AI 코딩 도구의 보안 검토 중요성이 다시 한번 강조되고 있습니다.
취약점은 2026년 6월 18일 병합된 PR #1218에서 시작되었습니다. 기존에는 이슈 제목을 `env:` 변수로 전달하고 `jq --arg`를 사용해 안전하게 JSON을 구성했지만, 변경된 코드에서는 `{{ github.event.issue.title }}`을 셸 문자열에 직접 삽입하는 방식으로 바뀌었습니다. 이로 인해 이슈 제목에 작은따옴표를 넣어 셸 문자열을 탈출하고 임의 명령을 실행할 수 있게 된 것입니다. 또한, `if:` 조건문이 `github.event.pull_request` 값을 검사했지만, 이슈 이벤트에서는 이 값이 항상 `null`이므로 조건이 항상 참으로 평가되어 모든 GitHub 사용자가 취약점을 작동시킬 수 있었습니다. 레드 에이전트는 첫 공격 시도에서 발생한 Bash 구문 오류를 자율적으로 분석하고 수정하여, 수 초 만에 스노우플레이크의 엔지니어링, 보안 규정 준수, 버그 바운티 프로젝트에 대한 읽기 권한을 가진 지라 토큰을 성공적으로 탈취했습니다. 스노우플레이크는 6월 23일 신고 당일 취약점을 패치하고 자격 증명을 교체했으며, 감사 로그 분석 결과 위즈 외 제3자 접근은 없었음을 확인했습니다.
이번 사례는 AI 기반 코딩 도구의 활용이 늘어남에 따라 발생할 수 있는 새로운 보안 과제를 보여줍니다. 코파일럿과 같은 AI 도구는 확률적 패턴으로 코드를 예측하기 때문에 과거에 보안 문제로 폐기되었던 안전하지 않은 셸 패턴을 다시 도입할 위험이 있습니다. 이는 AI가 코드 변경의 '역사적 맥락'이나 특정 패턴이 선택된 '보안상의 이유'를 알지 못하기 때문입니다. 따라서 AI가 관여한 PR(Pull Request)이라 할지라도 사람이 작성한 코드와 동일하게 엄격한 정적 분석과 보안 검토가 필수적입니다. 또한, 자동화된 보안 에이전트가 취약점을 수 시간 내에 발견하고 검증할 수 있는 환경에서는 기업들이 더 빠른 패치 주기와 수명이 짧은 자격 증명(short-lived credentials)을 도입하여 공격 노출 시간을 최소화해야 할 필요성이 커지고 있습니다. 보안팀은 AI 에이전트가 안전한 구조화된 데이터 파서를 직접 문자열 보간으로 바꾸지 못하도록 강력한 가드레일(guardrails)을 적용해야 할 것입니다.