뉴스 목록
BleepingComputer2026. 09. 26.

GitHub Actions, Mini Shai-Hulud 악성 페이로드가 그대로 남은 채 재활성화돼 일주일 이상 방치

한 줄 요약

GitHub에서 공급망 공격(소프트웨어 개발 도구를 통해 악성코드를 퍼뜨리는 공격)에 사용된 두 개의 GitHub Actions가 제거된 지 약 4개월 만에 악성 코드가 그대로 남은 채 다시 활성화됐습니다. 'actions-cool/issues-helper'와 'actions-cool/maintain-one-comment'라는 자동화 도구가 2026년 9월 16일부터 25일까지 약 9일 동안 개발자들의 개인 토큰, 인증 정보, CI/CD(자동화 배포 파이프라인) 비밀 키를 탈취하는 악성 코드를 실행할 수 있는 상태였습니다. 이 두 도구에 의존하는 저장소가 약 1만 5,000개에 달하는 것으로 파악됩니다. 현재는 다시 비활성화됐으나, 9월 16일 이후 해당 도구를 실행한 워크플로가 있다면 즉시 비밀 키를 교체해야 합니다.

사건

5월에 발생한 Mini Shai-Hulud 공급망 공격으로 감염된 두 GitHub Actions(actions-cool/issues-helper, actions-cool/maintain-one-comment)가 악성 코드를 제거하지 않은 채 9월 16일부터 25일까지 다시 활성화됐다. 해당 기간 동안 이 Actions를 참조한 모든 워크플로에서 개발자 토큰·인증정보·CI/CD 비밀 키를 탈취하는 난독화 페이로드가 실행됐다.

영향

약 1만 5,000개의 저장소가 issues-helper에 의존하는 것으로 파악되며, 9월 16일 이후 해당 Actions를 버전 태그로 참조해 실행한 워크플로는 악성 페이로드에 노출됐을 가능성이 있다. 5월 원래 공격에서는 npm 패키지 323개, 패키지 버전 639개가 감염된 바 있다.

원인

저장소 관리자가 악성 릴리스 태그를 정리하지 않은 채 저장소를 재활성화했고, 기존 태그가 5월 18일에 삽입된 악성 커밋을 그대로 가리키고 있었다.

대응

Socket의 보안 연구팀이 9월 25일 문제를 발견해 보고했으며, GitHub는 이후 두 Actions를 다시 비활성화했다. Socket은 두 Actions에 대한 참조를 찾아 제거하거나 검증된 클린 커밋으로 고정(pin)하고, 9월 16일 이후 실행 이력을 검토하며 노출된 비밀 키를 즉시 교체할 것을 권고했다.

실무 포인트

GitHub Actions를 버전 태그(v1, v2 등 가변 태그)로 참조하면 태그가 가리키는 커밋이 교체될 경우 악성 코드가 실행될 수 있다. 태그 대신 특정 커밋 해시(SHA)로 고정하는 것이 공급망 공격을 방지하는 핵심 실무 지침이다.

본문

5월 Mini Shai-Hulud 캠페인으로 침해된 서드파티 GitHub Actions 두 개가 관리자에 의해 재활성화됐으며, 여전히 악성 코드를 가리키고 있었음에도 일주일 이상 접근 가능한 상태로 방치됐다.

5월 18일 침해 이후 GitHub 보안팀은 actions-cool/issues-helper와 actions-cool/maintain-one-comment를 삭제해, 다운스트림 워크플로에서 악성코드를 내려받지 못하도록 조치했다.

애플리케이션 보안 기업 Socket의 연구팀에 따르면, 9월 16일부터 9월 25일까지 두 Actions가 기존과 동일한 릴리스 태그를 유지한 채 다시 활성화됐고, 이로 인해 해당 Actions를 참조하는 워크플로가 구 버전 페이로드를 내려받아 실행하게 됐다.

5월에 발생한 Mini Shai-Hulud 공급망 공격은 Node Package Manager(npm) 인덱스 상의 패키지 323개, 패키지 버전 639개에 영향을 미쳤으며, 개발자의 토큰·인증정보·CI/CD 비밀 키를 탈취하는 악성코드에 감염됐다.

Socket 연구팀은 지난 수요일 actions-cool/issues-helper와 actions-cool/maintain-one-comment의 릴리스 태그가 'index.js' 파일 내에 난독화된 페이로드를 포함한 커밋을 가리키고 있음을 확인했다.

Socket은 "2026년 9월 16일, 두 저장소가 다시 접근 가능해졌다. 릴리스 태그는 사전에 정리되지 않았다"고 설명했다.

"태그는 여전히 5월 18일에 삽입된 악성 콘텐츠를 가리키고 있어, 버전 태그로 두 Actions 중 하나를 참조하는 워크플로는 다음 실행 시 페이로드를 내려받아 실행하는 상태로 되돌아갔다."

적절한 정리 없이 저장소가 재활성화된 정확한 경위는 아직 불분명하다.

사고 타임라인

출처: Socket

Socket에 따르면 GitHub의 의존성 그래프상 'issues-helper'에 의존하는 저장소는 약 1만 5,000개에 달하지만, 이것이 모두 침해됐다는 의미는 아니다.

연구팀은 두 Actions를 가변 태그가 아닌 특정 커밋으로 고정(pin)하지 않고 참조한 의존 저장소가 정확히 몇 개인지는 아직 확인하지 못했다고 밝혔다.

다만 영향을 받는 Actions는 이슈 관리 목적으로 거의 매일 실행되는 경우라고 설명했다.

9월 25일, Socket은 두 Actions가 GitHub에서 다시 비활성화된 것을 확인했으며, 이후 해당 Actions를 참조하는 워크플로는 페이로드를 실행하는 대신 실패 처리된다.

Socket은 두 Actions에 대한 참조를 찾아 제거하거나 검증된 클린 커밋으로 고정할 것, 9월 16일 이후 실행 이력을 검토할 것, 영향받은 태그가 포함된 워크플로에서 접근 가능했던 비밀 키를 교체할 것을 권고했다.

잠재적으로 영향을 받은 개발자는 두 Actions에 대한 참조를 찾아 제거하거나 검증된 클린 커밋으로 고정해야 한다.

노출 시작 시각은 GMT+2 기준 9월 16일 11:09~18:16 사이다.

출처
BleepingComputer · bleepingcomputer.com
원문 보기

분야별 뉴스

관심 분야의 보안 이슈를 모아 보세요.

TORUN SECURITY

투런이 제공하는 보안 솔루션

공격 표면 관리부터 엔드포인트·내부정보 보호까지, 기업 환경에 맞는 보안 솔루션을 투런이 함께 설계합니다.