GitHub Copilot · 2026년 8월 18일 ★★★★★

스노우플레이크 지라가 깃허브 이슈 제목 한 줄에 뚫렸어요 — 범인으로 지목된 코파일럿 커밋은 오히려 같은 결함을 막은 쪽이었어요

보안업체 위즈가 스노우플레이크 공개 저장소의 워크플로에 이슈 제목으로 명령을 끼워 넣어 지라 토큰을 빼냈고, 그 토큰으로 엔지니어링·보안 규정 준수·버그 바운티 지라 프로젝트를 읽었어요. 그런데 커밋 이력을 열어 보면 코파일럿 자동 수정(Copilot Autofix)이 공동저자로 붙은 커밋은 다른 파일에서 ${{ }} 를 env 로 빼낸, 보안 검사가 지적한 대로 고친 쪽이에요 — 취약한 줄은 18일 뒤에 사람이 AI 표기 없이 넣었어요. 두 변경이 스쿼시 병합으로 한 커밋에 합쳐지면서 공동저자 표기만 남아, 이력상 코파일럿이 그 줄을 쓴 것처럼 보였어요.

용어 풀이
env
깃허브 액션 워크플로에서 셸에 넘길 환경변수를 따로 선언하는 자리
zizmor
깃허브 액션 워크플로 전용 정적 검사 도구. 명령 끼워 넣기 위험을 잡아낸다
actionlint
깃허브 액션 워크플로의 문법·보안 문제를 검사하는 도구
스쿼시 병합
브랜치의 커밋 여러 개를 한 커밋으로 합쳐 본줄기에 넣는 방식. 공동저자 표기도 함께 합쳐진다
운영자 인사이트

내 저장소에서 run: 안에 ${{ }} 가 그대로 박힌 워크플로부터 훑어보세요 — 값은 env 로 넘기고 셸에선 따옴표 씌운 변수로 읽는 게 정석이고, zizmor·actionlint 를 자동 검사에 걸면 이번 줄은 그대로 잡혀요. 그리고 스쿼시 병합은 공동저자 표기를 뭉뚱그리니, 누가 썼는지는 병합 커밋 말고 원래 커밋에서 확인해야 해요.

여러 관점으로 보기
  • 취약한 줄을 넣은 커밋 문제의 echo '${{ github.event.issue.title }}' 줄은 2025년 8월 25일 사람이 넣었고 AI 공동저자 표기가 없어요 GitHub
  • 코파일럿이 실제로 한 일 코파일럿 자동 수정이 붙은 커밋은 다른 파일에서 ${{ }} 를 env 로 옮긴, 권장 방식대로 고친 쪽이에요 GitHub
  • 매체 정정 더 레지스터도 하루 만에 '사람이 넣었을 수 있고 자동 수정이 그저 못 잡은 것'이라고 고쳐 붙였어요 The Register
  • 해커뉴스 반응 댓글에선 진짜 원인은 액션의 ${{ }} 문자열 끼워 넣기라며 zizmor·actionlint 를 걸라는 조언이 모였어요 Hacker News

원본 보기 (hn:top-stories)