2026년 5월 20일, GitHub는 직원의 워크스테이션에 설치된 악성 VS Code 확장 프로그램을 통해 약 3,800개의 내부 소스 코드 저장소가 유출되었음을 확인했습니다. 지난 14일 이내에 VS Code에서 GitHub PAT 또는 npm 토큰을 사용했다면, 다음 60분이 중요합니다. 실제로 무슨 일이 일어났는지, 당신이 영향을 받았는지 여부, 그리고 무엇부터 회전시켜야 하는지를 다루는 플레이북입니다.

핵심 요약

  • 무슨 일이 일어났는가: GitHub.com 프로덕션은 해킹당하지 않았습니다. 한 직원의 VS Code에 설치된 악성 확장 프로그램(매우 가능성이 높은 Nx Console v18.95.0)이 PAT를 유출하고 약 3,800개의 내부 저장소를 덤프했습니다.
  • 고객 데이터: 영향을 받지 않았습니다. 손상된 데이터는 GitHub의 내부 소스 코드이며, 고객 코드나 계정이 아닙니다.
  • 누가 위험한가: 2026년 5월 18일 12:36(UTC)부터 12:47(UTC)까지의 11분 사이에 VS Code 확장 프로그램을 설치했거나, VS Code 내에서 오래 유지되는 GitHub PAT를 사용하는 모든 개발자입니다.
  • 지금 할 일: GitHub PAT를 먼저 회전시키고, npm 토큰을 두 번째로, AWS/클라우드 키를 세 번째로 회전시킵니다. 아래 "개발자가 해야 할 일" 섹션에 완전한 플레이북이 있습니다.

TL;DR: 다음 1시간 동안 해야 할 6가지

github hacked vscode extension 사건의 영향 범위를 가장 빠르게 제한하려면, 악성 확장 프로그램이 접근할 수 있는 자격 증명을 회전시키고, 노트북에 설치된 것을 감사하며, 2026년 5월 18-20일(UTC) 기간의 GitHub 조직 로그를 확인해야 합니다. 영향도 순으로 6가지 작업입니다.

  • 지난 30일 이내에 VS Code에서 생성되거나 사용된 모든 GitHub Personal Access Token을 해지합니다.
  • npm token revoke를 통해 npm 토큰을 회전시키고 2FA + 신뢰된 게시로 재발급합니다.
  • GHSA-c9j4-9m59-847w의 IoC를 노트북에서 스캔합니다(파일 경로, 프로세스, 아래 명령 참조).
  • code --list-extensions --show-versions를 실행해 감사하고 정당성을 찾을 수 없는 모든 항목을 제거합니다.
  • devcontainer.json에서 확장 프로그램 버전을 고정하고 조직 수준의 허용 목록을 적용합니다.
  • GitHub 조직 감사 로그에서 2026년 5월 18-20일(UTC) 사이의 낯선 저장소 푸시를 확인합니다.

시간이 두 가지만 될 경우, #1과 #3을 실행하십시오. 나머지는 1시간 기다릴 수 있습니다.

GitHub가 실제로 해킹당했나? 헤드라인을 명확히 하자

아니요, GitHub.com의 프로덕션 인프라는 2026년 5월 20일에 해킹당하지 않았습니다. GitHub의 한 직원의 워크스테이션이 악성 VS Code 확장 프로그램을 설치한 후 손상되었습니다(매우 가능성이 높은 Nx Console v18.95.0). UNC6780으로 추적되는 TeamPCP라 칭하는 공격자는 약 3,800개의 GitHub 내부 소스 코드 저장소를 유출했습니다. 고객 코드, 고객 계정, GitHub의 프로덕션 서비스는 영향을 받지 않습니다.

실제로 일어난 것과 일어나지 않은 것을 더 명확히 정리했습니다.

이 관점이 중요한 이유는 무엇일까요? 결론이 "github hacked"가 아니기 때문입니다. 중요한 것은 개발자 엔드포인트가 이제 모든 엔지니어링 조직의 약점이라는 사실입니다. 팀이 소유한 모든 비밀(GitHub PAT, npm 토큰, AWS 키, vault 세션, AI 제공자 키)은 EDR 커버리지가 거의 없는 노트북에 있습니다. IDE에서 실행되는 단 하나의 악성 확장 프로그램만으로도 이 모든 것에 접근할 수 있습니다.

GitHub의 대변인은 Bleeping Computer에서 인용한 대로 직원-엔드포인트 프레임과 "고객 데이터 없음"을 확인했습니다. Help Net Security가 TeamPCP 귀속을 추가했습니다. 확장 프로그램의 기술적 chain-of-custody는 GHSA-c9j4-9m59-847w 보안 권고에 담겨 있습니다.

GitHub.com은 해킹당하지 않았습니다. GitHub의 직원이 해킹당했습니다. 이 관점을 명심하고 나머지를 읽으십시오.

실제로 무슨 일이 일어났나: 2026년 5월 유출 사건의 타임라인

github breach 2026 사건은 약 48시간에 걸쳐 4단계로 전개되었습니다. 악성 확장 프로그램이 5월 18일 12:36(UTC)에 게시되었고, 11분 후 제거되었으며, 다음 날 GitHub에서 감지되었고, 5월 20일에 공개 공시되었습니다. 출처를 포함한 타임라인입니다.

그 11분의 기간은 가장 흥미로운 세부사항입니다. 이는 공격자가 마켓플레이스 탐지를 회피하기 위해 확장 프로그램을 빠르게 교체했음을 시사하는데, 이는 Koi Security가 2025년 10월의 GlassWorm OpenVSX 웜에서 문서화한 것과 동일한 패턴입니다. TeamPCP / UNC6780은 이전에 Trivy, KICS, LiteLLM, TanStack, MistralAI에 대한 2026년 compromises를 주장해왔습니다. 같은 그룹, 같은 플레이북, 다른 표적입니다.

지난 달에는 Vercel의 환경 변수였습니다. 오늘은 GitHub의 저장소입니다. 우리가 9개월 동안 지켜본 이 패턴은 계속해서 영향 범위를 확대하고 있습니다. Vercel breach 대응에 대한 우리의 분석을 참조하세요.

가능성 높은 확장 프로그램: Nx Console v18.95.0 (그리고 GitHub이 확인하지 않는 이유)

GitHub은 직원-엔드포인트 compromise에 관련된 확장 프로그램을 공식적으로 명명하지 않았습니다. 포렌식 증거는 Nx Console v18.95.0과 강하게 일치하지만, 이는 매우 가능성이 높으나 확인되지 않은 것입니다. GitHub이 다른 확장 프로그램을 공개적으로 명명하면 이 글을 업데이트할 것입니다. 이 섹션의 나머지는 최선의 귀속으로 취급하되, 확정된 사실로 보지 마십시오.

4가지 정황적 증거가 Nx Console을 GitHub의 공시와 일치시킵니다.

  • 시간의 일치: GHSA-c9j4-9m59-847w 권고 기간(5월 18일 12:36-12:47 UTC)이 GitHub의 자체 공시에서 언급한 직원 엔드포인트 compromise 기간과 겹칩니다.
  • 포렌식 IoC의 중복: StepSecurity의 공개된 Nx Console 페이로드 분석(파일 경로, __DAEMONIZED 같은 프로세스, 네트워크 엔드포인트)이 Wiz의 분석에 따른 손상된 엔드포인트에서 발견된 아티팩트와 일치합니다.
  • TeamPCP 귀속 패턴: TeamPCP / UNC6780은 VS Code 공급망 공간에서 활동해왔습니다(2026년 Trivy, KICS, LiteLLM, TanStack, MistralAI). 일관된 페이로드 구조를 사용합니다.
  • 11분 제거 기간: 공격자가 게시 시점을 제어하지만 마켓플레이스가 빠르게 감지하는 공급망 공격의 전형적인 특징입니다.

Nx Console을 설치하지 않았다면, 여전히 안전하지 않습니다. 더 넓은 공격 패턴(__DAEMONIZED 프로세스, IMDS 남용, ~/.claude/settings.json 유출)은 어떤 악성 확장 프로그램에도 적용됩니다. 다음 섹션의 triage는 당신이 의심하는 확장 프로그램이 무엇이든 관계없이 사용해야 합니다.

당신이 영향을 받았는가? 5분 분류

3가지 빠른 테스트가 있습니다. (1) 2026년 5월 18일 12:36부터 12:47(UTC)까지 VS Code 확장 프로그램을 설치했거나 자동 업데이트했습니까? (2) GHSA-c9j4-9m59-847w의 IoC 파일 중 현재 노트북에 있는 것이 있습니까? (3) 지난 14일 동안 VS Code 내에서 GitHub PAT를 사용했습니까? 5분 이내에 모두 실행하십시오.

테스트 1 — 확장 프로그램 감사

5월 17일부터 5월 18일 사이에 자동 업데이트된 모든 것은 자세히 확인해야 합니다. Nx Console이 정확히 18.95.0이면, 당신이 일치하는 대상일 가능성이 높습니다. 패치된 버전은 18.100.0입니다. 제거하거나 아래 플레이북으로 직접 이동하십시오.

테스트 2 — IoC 스캔

깨끗한 컴퓨터는 __DAEMONIZED grep에 대해 아무것도 반환하지 않아야 하고, .daemonized 파일도 없어야 하며, 쉘 히스토리에서 IMDS 히트도 없어야 합니다. 이 중 하나라도 나타나면, 노트북이 손상되었다고 가정하고 지난 30일 동안 접촉한 모든 자격 증명을 손상된 것으로 취급하십시오.

테스트 3 — PAT 노출

지난 14일 동안 VS Code 터미널, 통합 git, 또는 GitHub API를 호출하는 모든 확장 프로그램 내에서 GitHub PAT(클래식 또는 fine-grained)를 사용했다면, 이것이 손상되었다고 가정하고 아래의 회전 플레이북을 진행하십시오. 이는 보수적인 접근입니다 — "토큰이 확장 프로그램이 활성화된 동안 메모리에 있었는가?"를 감사할 수는 없기 때문입니다. 회전시키십시오.

Claude Code를 사용하는 경우, IoC 목록에는 특별히 ~/.claude/settings.json이 포함됩니다. 해당 파일에 저장된 내용과 어떤 키를 먼저 회전시켜야 하는지에 대해 Claude Code 훅 가이드를 확인하십시오.

판단. 이 3가지 중 하나라도 양성이 나오면, 서사 부분을 읽기를 멈추십시오. 다음 섹션의 플레이북으로 곧바로 이동하십시오. 다음 55분이 사후 분석보다 훨씬 중요합니다.

개발자가 해야 할 일: 60분 긴급 플레이북

...

출처 바로가기