tj-actions changed-files GitHub Action 공급망 침해 및 악성 코드 삽입 취약점 (CVE-2025-30066)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTGitHub Actions 워크플로우에서 tj-actions/changed-files 액션 v1부터 v45.0.7 버전을 사용하는 환경
위협 행위자가 태그를 변조하여 악성 코드(updateFeatures)를 실행하고, 액션 로그를 통해 GitHub Secrets 및 민감한 자격 증명을 탈취할 수 있습니다
영향받는 태그 사용을 즉시 중단하고, 안전한 최신 버전(v46 이상)으로 업데이트하거나 커밋 SHA 해시를 기반으로 액션을 고정하십시오
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
영향을 받는 구버전 태그 사용을 즉시 중단하고, 보안 패치가 적용된 v46 이상 버전으로 워크플로우 파일을 업데이트하십시오. 보안 강화를 위해 가급적 변경 불가능한 커밋 SHA-256 해시를 사용하여 액션을 고정하는 것을 권장합니다.
# 변경 전 (취약한 설정 예시)
- name: Get changed files
uses: tj-actions/changed-files@v45
# 변경 후 (보안 패치 버전 적용)
- name: Get changed files
uses: tj-actions/changed-files@v46
# 최선책 (Immutable Commit SHA 사용 권장)
- name: Get changed files
uses: tj-actions/changed-files@d6e91a273b02df20f4c61d5b852f3024c2322744 # v46.0.0 기준 예시 SHA2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 코드 수정이 어려운 경우, GitHub Action 실행 환경의 권한을 최소화하여 비밀 정보 노출 피해를 방지하십시오. 워크플로우 파일에 permissions 블록을 명시하여 토큰 권한을 제한합니다.
# .github/workflows/ 파일 내 권한 최소화 설정
permissions:
contents: read
id-token: write3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
리포지토리 내의 워크플로우 파일들을 스캔하여 취약한 버전의 tj-actions/changed-files가 사용되고 있는지 확인하는 Bash 스크립트입니다.
# 리포지토리 내 취약한 tj-actions/changed-files 버전 검색 스크립트
echo '[*] Scanning GitHub Workflow files for vulnerable tj-actions/changed-files...'
grep -rn 'tj-actions/changed-files@v' .github/workflows/ | while read -r line; do
version=$(echo "$line" | grep -oE 'v[0-9]+(\.[0-9]+)*')
major_version=$(echo "$version" | cut -d. -f1 | tr -d 'v')
if [ "$major_version" -lt 46 ]; then
echo "[!] VULNERABLE ACTION FOUND: $line"
fi
done내 GitHub/GitLab 레포지토리에 이 취약한 패키지가 숨어 있는지 30초 만에 스캔하세요
간접 의존성(Transitive Dependency)에 포함된 취약점은 수동 확인이 불가능합니다. Git 연동 한 번으로 취약 버전 탐지부터 호환성을 유지하는 최소 버전 업그레이드 PR까지 자동 생성하세요.
취약점 발생 원리 및 공격 메커니즘
1. 취약점 개요 및 발생 원인 (Root Cause)
본 취약점(CVE-2025-30066)은 널리 사용되는 GitHub Action인 'tj-actions/changed-files'의 배포 태그가 위협 행위자에 의해 변조되면서 발생한 공급망 공격(Supply Chain Attack)입니다. 위협 행위자는 v1부터 v45.0.7 사이의 기존 릴리즈 태그들이 악성 코드('updateFeatures')가 포함된 특정 커밋(0e58ed8)을 가리키도록 임의 변경하였습니다. 이로 인해 해당 태그를 참조하여 실행되는 모든 CI/CD 파이프라인에서 악성 코드가 자동으로 다운로드되어 실행되는 결과를 초래했습니다.
2. 공격 메커니즘 및 익스플로잇 시나리오
공격자는 GitHub Action의 태그(Tag)가 가리키는 커밋을 변경할 수 있는 권한을 악용하거나 배포 프로세스를 탈취하여, 정상적인 코드 대신 악성 페이로드가 포함된 커밋(0e58ed8)으로 태그를 강제 업데이트(Force Push)했습니다. 사용자의 GitHub Actions 워크플로우가 실행될 때, 변조된 태그를 기반으로 액션을 가져오게 되며, 이 과정에서 내장된 악성 스크립트가 구동됩니다. 이 악성 코드는 실행 환경의 환경 변수나 메모리에 적재된 GitHub Secrets, API 토큰 등의 민감한 자격 증명을 탈취한 뒤, 이를 액션 실행 로그(Actions Logs)에 노출시키거나 외부로 유출하도록 설계되었습니다.
3. 비즈니스 및 인프라 파급 영향
이 취약점은 CVSS 8.6(High) 및 높은 EPSS 점수(0.7209)를 기록하고 있으며, CISA KEV(알려진 악용된 취약점 목록)에 등재될 만큼 실질적인 위협입니다. 공격자가 GitHub Secrets를 탈취할 경우, 클라우드 인프라(AWS, Azure, GCP) 자격 증명, NPM/PyPI 배포 토큰, 소스 코드 저장소 접근 권한 등이 통째로 노출될 수 있습니다. 이는 2차 공급망 공격이나 기업 내부망 침투로 이어져 심각한 비즈니스 중단 및 데이터 유출 사고를 유발할 수 있습니다.
공식 보안 권고문 및 참조 링크
tj-actions changed-files before 46 allows remote attackers to discover secrets by reading actions logs. (The tags v1 through v45.0.7 were affected on 2025-03-14 and 2025-03-15 because they were modified by a threat actor to point at commit 0e58ed8, which contained malicious updateFeatures code.)
자주 묻는 실무 질문 (FAQ — CVE-2025-30066)
FAQQ1. CVE-2025-30066 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?
CVE-2025-30066의 기본 점수는 CVSS 8.6 (HIGH)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 72.1%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.
Q2. CVE-2025-30066에 영향을 받는 벤더와 제품은 무엇입니까?
주요 영향 벤더는 tj-actions이며, 대상 컴포넌트는 changed-files입니다. 상세 영향 범위: tj-actions/changed-files GitHub Action v1 ~ v45.0.7 버전 (2025년 3월 14일 및 15일 변조 확인)
Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?
[권장 조치] 영향받는 태그 사용을 즉시 중단하고, 안전한 최신 버전(v46 이상)으로 업데이트하거나 커밋 SHA 해시를 기반으로 액션을 고정하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.
CVE-2025-30066 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성
클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.
🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (tj-actions)
동일 카테고리 전체 보기 →Nx Console VS Code 확장 프로그램 공급망 침해 사고 및 악성 코드 삽입 취약점 (CVE-2026-48027)
[영향 대상] VS Code 마켓플레이스 및 OpenVSX를 통해 배포된 Nx Console 확장 프로그램 버전 18.95.0
TanStack npm 패키지 공급망 침해 사고 및 악성 코드 주입 취약점 (CVE-2026-45321)
[영향 대상] 2026년 5월 11일 19:20 ~ 19:26 UTC 사이에 배포된 총 42개 @tanstack/* 범위 내 84개 악성 패키지 버전
GitLab CE/EE 미인증 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-97229)
[영향 대상] GitLab CE/EE 19.2(19.2.8 미만), 19.3(19.3.5 미만), 19.4(19.4.2 미만) 버전
GitLab CE/EE 미인증 임의 파일 읽기 취약점 보안 권고 (CVE-2026-85706)
[영향 대상] GitLab CE/EE 18.7 버전부터 19.3.1 버전 사이의 특정 릴리즈 사용자
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.