`tj-actions/changed-files` GitHub Action 해킹됨 - 23000개 Repo가 사용중

18 hours ago 4

  • 각 브랜치의 변경사항을 추적하는데 사용하는 인기 GitHub Action으로, 해킹된 커밋을 통해 CI/CD 시크릿 유출 시도가 발생
  • 23,000개의 Repo가 영향받았고, GitHub는 이 액션을 삭제했으며 더 이상 사용 불가능함
  • 대체 액션으로 교체 및 공개 워크플로 로그에서 시크릿이 노출되었을 가능성 존재하므로 확인 후 키 로테이션 필수
  • StepSecurity의 Harden-Runner가 발견했고, 보안이 강화된 대체 액션 step-security/changed-files를 무료로 배포중

사건 요약

  • tj-actions/changed-files는 23,000개 이상의 저장소에서 사용되고 있으며 해킹 발생
    • 공격자는 액션 코드 수정 및 버전 태그를 악성 커밋으로 재지정함
    • 이로 인해 GitHub Actions 빌드 로그에 CI/CD 시크릿이 출력
  • 공개된 워크플로 로그에서 시크릿이 노출되었을 가능성 존재
  • Harden-Runner가 예상치 못한 엔드포인트 탐지 후 문제 발견
  • 악성 Python 스크립트가 Runner Worker 프로세스에서 시크릿을 덤프하도록 함
  • 모든 태그가 동일한 악성 커밋 해시 (0e58ed8671d6b60d0890c21b07f8835ace038e67)로 지정됨

GitHub의 대응 조치

  • GitHub는 tj-actions/changed-files 액션을 삭제하고 사용을 중단시킴
  • 공식 CVE는 CVE-2025-30066

복구 조치 방법

  • 1. StepSecurity에서 제공하는 보안 대체 액션 사용

    • tj-actions/changed-files 액션을 step-security/changed-files@v45 로 교체
  • 2. 모든 tj-actions/changed-files 참조 제거

    • 코드베이스에서 tj-actions/changed-files 참조 검색 후 제거: git grep -l "tj-actions/changed-files"
  • 3. GitHub Actions 워크플로 실행 로그 감사

    • 최근 실행 로그에서 시크릿이 유출되었는지 확인 필요
    • 유출된 시크릿이 발견되면 즉시 로테이션(재설정) 필요
  • 4. GitHub Actions 허용 목록 설정

  • 신뢰할 수 있는 GitHub Actions만 실행하도록 허용 목록 구성:
    • GitHub 설정에서 허용 설정 가능:
      • Settings → Actions → Allow select actions
  • 5. StepSecurity Harden-Runner 설정

    • Harden-Runner에서 네트워크 트래픽 및 워크플로 실행 모니터링 설정 가능

다음 단계

  • GitHub에 문제 보고 완료 → GitHub 이슈: #2463
  • tj-actions/changed-files 리포지토리 삭제됨
  • CVE-2025-30066으로 공식 등재됨
  • StepSecurity Harden-Runner를 통해 유사한 보안 문제 감지 및 방지 가능
  • 보안 상태를 강화하고 실시간 모니터링을 수행하기 위해 Harden-Runner 설정 권장

Read Entire Article