Claude Code 확장 백도어: Cursor 사용자 감염 확인과 조치 방법

2026년 10월 29일, Cursor의 확장 마켓플레이스에 Anthropic의 Claude Code 확장 변조본이 올라왔습니다. 개발자 PC에 지속형 SSH 백도어를 설치하려는 코드가 들어 있었습니다. Cursor에 따르면 변조본은 약 11시간 동안 배포됐고 최대 5,000명이 받았을 수 있습니다. macOS나 Windows에서 Cursor를 쓰면서 그날 Claude Code 확장을 설치하거나 업데이트했다면 svc-telemetry라는 SSH 키가 있는지 확인해야 합니다. 확장을 지워도 백도어는 남습니다.
핵심 요약
- Cursor 자체 마켓플레이스에
Anthropic.claude-code2.1.312·2.1.313의 macOS·Windows 변조 빌드가 올라왔습니다. Anthropic이 만든 빌드가 아닙니다(Cursor 보안 공지). - 배포 시간은 미국 태평양시간(PT) 10월 29일 오전 2시 27분부터 오후 1시 35분까지, 한국 시간으로는 같은 날 오후 6시 27분부터 30일 오전 5시 35분까지입니다.
- 이 시간에 macOS나 Windows용 Cursor에서 확장을 설치·업데이트한 사용자가 대상입니다. Cursor는 노출 규모를 최대 5,000명으로 봅니다(BleepingComputer).
- 지금까지 확인된 바로는 Visual Studio Marketplace, Open VSX, npm에는 변조본이 없었습니다(Socket, StepSecurity).
- 대응은 Cursor가 배포한 점검·정리 스크립트 실행, 지속성 파일 삭제 확인, 해당 PC에서 접근 가능한 자격 증명 교체, 2.1.314 이상 설치 순서로 진행합니다.
무슨 일이 있었나
변조된 Claude Code 확장은 비슷한 이름을 쓴 가짜가 아니었습니다. 실제 게시자 ID인 Anthropic.claude-code 그대로 Cursor 마켓플레이스에 올라왔습니다. Cursor는 공지에서 "Anthropic Claude Code 확장의 악의적으로 수정된 버전이 제공됐다"며 "이 확장은 지속형 SSH 백도어 설치를 시도하는 악성 코드를 실행한다"고 밝혔습니다(Cursor).
첫 상세 분석은 10월 30일 macOS 보안 업체 Phorion이 냈습니다(Phorion 권고문). 같은 날 Hacker News 1위에도 올랐습니다. 초기 보도는 Open VSX(VS Code 호환 에디터 다수가 쓰는 개방형 확장 저장소), npm, Microsoft 마켓플레이스를 유포 경로로 지목했지만 이후 검증에서 유포 경로는 Cursor 마켓플레이스 하나로 좁혀졌습니다. Socket은 Open VSX 변경 피드를 확인했는데 2.1.312와 2.1.314는 있었고 2.1.313 이벤트는 하나도 없었습니다(Socket).
Cursor는 처음에 2.1.313만 공지했다가 10월 30일 오전 11시 30분(PT)에 내용을 고쳐 Windows·macOS용 2.1.312와 2.1.313을 영향 버전으로 명시했습니다. 변조 패키지별 해시도 따로 공개했습니다. Open VSX와 npm에 있는 2.1.312는 정상 공식 빌드이고, 변조된 것은 Cursor 마켓플레이스에 있던 사본뿐입니다.
공격자가 Cursor 마켓플레이스 게시 권한을 어떻게 얻었는지는 아직 공개되지 않았습니다. Anthropic의 Felix Rieseberg는 "Anthropic의 시스템이나 직원 노트북이 침해된 사건이 아니다"라고 밝혔습니다(StepSecurity 인용). Anthropic은 혼선을 피하려고 공식 릴리스에서 2.1.313을 건너뛰고 2.1.314를 냈습니다.
타임라인
| 시각(2026년) | 내용 | 출처 |
|---|---|---|
| 10월 27일 20:26 UTC | 정상 2.1.312, Open VSX 게시 | StepSecurity |
| 10월 29일 오전 2:27경 PT | Cursor 마켓플레이스에 변조본 배포 시작 | Cursor |
| 10월 29일 오후 1:35경 PT | Cursor가 변조본 삭제, 마켓플레이스 전체 중단 | Cursor |
| 10월 30일 00:12 UTC | 정상 2.1.314, npm 게시 | Socket |
| 10월 30일 | Phorion 권고문 공개. Cursor는 키 교체, 마켓플레이스 재구축, 공격자 서버 차단 | Phorion, Cursor |
| 10월 30일 오전 11:30 PT | Cursor가 영향 버전에 2.1.312 추가, IOC 갱신 | Cursor |
Claude Code 확장 백도어 작동 방식
공격자는 압축된 extension.js 맨 앞에 작은 로더를 끼워 넣었습니다. 나머지 코드는 그대로여서 Claude Code는 평소처럼 작동했습니다. StepSecurity가 측정한 파일 크기는 3,692,922바이트로, 정상 2.1.312보다 약 7KB 컸습니다(StepSecurity).
로더는 에디터가 확장을 불러오는 순간, 원래 activate 함수보다 먼저 실행됩니다. Claude Code 창을 열거나 프롬프트를 입력하지 않아도 됩니다. Phorion CEO Calum Hall은 Help Net Security에 "사용자가 확장과 상호작용하지 않아도 페이로드가 실행된다"고 말했습니다(Help Net Security).

Phorion 분석에 따르면 페이로드는 4단계로 움직였습니다.
- 키 심기: 공격자 소유 Ed25519 공개 키를
svc-telemetry라는 주석과 함께~/.ssh/authorized_keys에 추가하고 로컬 SSH 서버를 켜려고 시도합니다. - 역방향 터널:
134.209.82.225의 22번 포트에tunnel사용자로 접속해ssh -N -R '*:0:localhost:22'를 실행합니다. 이렇게 하면 내 PC의 SSH 포트가 공격자 서버 쪽에 열리고 공격자는 심어 둔 키로 그곳에서 로그인할 수 있습니다. - 지속성 확보: macOS에서는 Apple 시스템 서비스처럼 보이는
~/Library/LaunchAgents/com.apple.sysmond.plist를 만듭니다. Windows에서는SysMon예약 작업을 만들고 실패하면 시작 프로그램 폴더에sysmon.cmd를 둡니다. Linux에서는@rebootcron 항목을 추가합니다. 백그라운드 루프가 60초마다 터널 연결을 다시 시도합니다. - 정보 전송:
134.209.82.225:8099/beacon으로 평문 HTTP 비컨을 한 번 보냅니다. 호스트명, 사용자명, OS, 홈·작업 디렉터리, 전역 Git 이메일, 공인 IP가 담깁니다. KEY, TOKEN, SECRET, PASS, AWS, GCP가 들어간 환경 변수도 최대 40개까지 보내는데, 값이 아니라 이름만 보냅니다.
피해를 줄인 버그
페이로드에는 버그가 여러 개 있었습니다. macOS에서는 root 권한 없이 systemsetup -getremotelogin으로 원격 로그인 상태를 확인했는데, 이 명령은 "Off" 대신 오류를 돌려줍니다. 그래서 SSH를 켜는 단계가 실행되지 않았습니다. Windows에서는 PowerShell 설정을 /bin/sh로 실행했는데, 일반 Windows에는 /bin/sh가 없습니다(BleepingComputer). Cursor도 관리자 권한이 없으면 백도어 설치가 "보통 실패한다"고 설명합니다.
다만 다음 경우에는 여전히 위험합니다.
- Mac에서 원격 로그인이 이미 켜져 있었다면 공격자 키와 터널만으로 접속이 가능했습니다. Phorion이 따로 경고한 경우입니다.
- Windows에서 Cursor를 관리자 권한으로 실행했다면 설정이 성공했을 수 있습니다.
- 비컨은 어느 경우든 전송됐습니다. 공격자가 호스트명, 사용자명, Git 이메일, 공인 IP, 비밀 변수 이름을 갖고 있을 수 있습니다.
- Linux에서는 cron 처리 버그 때문에 기존 사용자 cron 작업이 지워질 수 있다고 Phorion은 밝혔습니다.
내 PC도 영향을 받았을까
다음 세 조건에 모두 해당하면 영향을 받았을 가능성이 큽니다.
- Cursor를 씁니다(VS Code, Windsurf 등 Open VSX에서 확장을 받는 다른 에디터는 해당하지 않습니다).
- macOS(Apple Silicon) 또는 Windows x64에서 실행합니다.
- 태평양시간 10월 29일 오전 2시 27분부터 오후 1시 35분 사이(한국 시간 29일 오후 6시 27분부터 30일 오전 5시 35분 사이)에 Claude Code 확장을 설치하거나 업데이트해 Cursor 마켓플레이스의 2.1.312 또는 2.1.313을 받았습니다.
npm으로 설치한 Claude Code CLI만 쓰거나, VS Code에서 Microsoft 마켓플레이스·Open VSX의 확장을 쓰거나, 확장을 설치한 적이 없다면 이번 사건과는 관계가 없습니다. Socket은 npm 버전 기록에서도 악성 버전을 찾지 못했습니다(Socket).
빠른 점검
Cursor 공지에는 macOS용 한 줄 점검 명령이 있습니다. 공격자 키가 있는지 찾습니다.
grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"
Windows에서는 %USERPROFILE%\.ssh\authorized_keys와 C:\ProgramData\ssh\administrators_authorized_keys에서 svc-telemetry를 검색합니다. 공지에 두 줄짜리 PowerShell 스크립트가 있습니다. Cursor는 점검 결과와 "관계없이" 정리 절차를 따르라고 권고합니다.
다음 흔적도 함께 확인하세요.
anthropic.claude-code-2.1.312-darwin-arm64,...-2.1.313-darwin-arm64또는win32-x64확장 폴더~/.config/.smt,~/.config/.smtk,~/.config/smt.cmd파일과 임시 폴더의.stk_(뒤에 16진수 10자리) 키 파일134.209.82.225로 연결하는ssh또는autossh프로세스- SHA-256이
ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15인extension.js
정리 방법
확장만 지워서는 해결되지 않습니다. 지속성 파일이 확장 폴더 밖에 있기 때문입니다. Cursor 공지, Phorion, StepSecurity 내용을 바탕으로 다음 순서를 권합니다.
- 점검에서 키가 나왔거나 터널 프로세스가 보이면 해당 PC를 네트워크에서 격리합니다.
- Cursor 정리 스크립트를 실행합니다. macOS는
remediate-macos.sh를 root가 아닌 평소 사용자로, Windows는remediate-windows.ps1을 관리자 PowerShell에서 실행합니다. 두 스크립트 모두 Cursor 보안 공지에 링크돼 있습니다. 확장, 지속성 항목, 터널 프로세스, 공격자 키를 지우고 남은 것이 있으면 0이 아닌 종료 코드를 반환합니다. - 직접 확인합니다.
com.apple.sysmond.plist,SysMon작업,sysmon.cmd, cron 항목,.smt/.smtk,.stk_*가 모두 사라졌는지 봅니다. 필요하지 않다면 원격 로그인이 꺼져 있는지도 확인합니다. - 확장 2.1.314 이상을 설치합니다.
- 해당 PC에서 접근 가능했던 자격 증명을 교체합니다. Git 호스팅 토큰, CI/CD 시크릿, 클라우드 키, SSH 키, 패키지 레지스트리 토큰이 대상입니다. 교체 작업은 깨끗한 다른 기기에서 하고 비컨이 이름을 수집해 간 환경 변수부터 시작하세요.
- 로그를 검토합니다. SSH, 프로세스, 로그인 기록을 확인합니다. Phorion은
127.0.0.1에서svc-telemetry키로 SSH 로그인에 성공한 기록이 있으면 터널이 실제로 쓰였다는 신호라고 설명합니다. 그렇다면 StepSecurity와 Morphisec은 PC를 새로 설치하라고 권합니다(Morphisec).
Cursor와 Anthropic의 대응

Cursor는 변조본을 내리고 추가 배포를 막은 뒤 "만일에 대비해" 마켓플레이스 전체를 중단했습니다. 이후 접근 권한을 감사해 다른 확장은 변조되지 않았음을 확인했고 키를 교체하고 마켓플레이스를 다시 구축한 뒤 재개했습니다. 호스팅 업체와 협력해 공격자 서버도 내렸으며 해당 서버는 "더 이상 작동하지 않는다"고 밝혔습니다(Cursor). Socket에 따르면 Cursor는 영향받은 사용자에게 직접 연락하고 있습니다.
Anthropic은 자사 시스템과 공식 배포 채널은 침해되지 않았다고 밝혔고 공식 릴리스에서 2.1.313을 건너뛰고 2.1.314를 냈습니다. 공격자가 Cursor 마켓플레이스 게시 권한을 어떻게 얻었는지, Anthropic 이름으로 올라온 수정 파일을 서명이나 무결성 검사가 왜 막지 못했는지는 아직 밝혀지지 않았습니다.
AI 코딩 도구에 주는 시사점
AI 코딩 확장은 개발자 계정 권한을 그대로 갖고 소스 코드와 비밀 정보 바로 옆에서 돌며 자동으로 업데이트됩니다. 공격자에게 매력적인 표적일 수밖에 없습니다. 이번에는 실제 확장 ID로 올라온 패키지의 파일 하나만 바꾸면 충분했습니다. Manifold Security의 Ax Sharma는 Help Net Security에 "게시자가 진짜라면 게시자 이름을 확인해도 소용없다"고 지적했습니다.
이번 달에는 LiteLLM 1.107.0 PyPI 침해처럼 AI 개발 도구를 노린 공급망 공격이 이어졌습니다. 팀 단위로는 다음을 점검할 만합니다.
- 패키지 버전을 고정하듯 에디터 확장도 고정하고 검토합니다. 민감한 PC에서는 권한이 큰 확장의 자동 업데이트를 끕니다.
- 행위 기반으로 탐지합니다. 에디터 헬퍼 프로세스가
authorized_keys에 쓰거나com.apple.*LaunchAgent를 만들면 경보가 울려야 합니다. - 개발자 노트북의 셸 환경 변수에 장기 비밀 값을 두지 않습니다. 변수 이름만으로도 공격자가 무엇을 노려야 할지 알 수 있습니다.
- 에디터마다 어떤 마켓플레이스를 쓰는지 파악합니다. Cursor, VS Code, Open VSX 기반 에디터는 서로 다른 저장소에서 확장을 받으므로 한 곳의 사고가 다른 곳에는 영향을 주지 않을 수 있습니다.
Node.js 서비스도 운영한다면 이번 주에 정리한 Node2Shell(CVE-2026-111497) 글도 함께 확인하세요.
자주 묻는 질문
악성 Claude Code 확장 버전은 무엇인가요?
Cursor 공지 기준으로, 2026년 10월 29일 Cursor 자체 마켓플레이스에서 배포된 Anthropic.claude-code 2.1.312와 2.1.313의 macOS(darwin-arm64)·Windows(win32-x64) 빌드입니다. Open VSX와 npm의 공식 2.1.312는 정상이며 수정 릴리스는 2.1.314입니다.
VS Code에서 Claude Code를 쓰는데 조치가 필요한가요?
대부분 필요 없습니다. Socket, StepSecurity, Cursor가 확인한 바로는 변조본은 Cursor 마켓플레이스로만 배포됐고 Microsoft Visual Studio Marketplace, Open VSX, npm에는 없었습니다. 확실히 하고 싶다면 svc-telemetry 키 점검을 해 보세요. 몇 초면 끝납니다.
확장을 삭제하면 백도어도 사라지나요?
아닙니다. SSH 키, LaunchAgent, 예약 작업, cron 항목, 보조 파일은 확장 폴더 밖에 있습니다. Cursor와 Phorion 모두 삭제만으로는 부족하다고 밝혔습니다. Cursor 정리 스크립트를 실행한 뒤 직접 확인하세요.
백도어가 API 키를 훔쳐 갔나요?
Phorion에 따르면 비컨은 KEY, TOKEN, SECRET 같은 패턴에 맞는 환경 변수 최대 40개의 이름만 보냈고 값은 보내지 않았습니다. 하지만 역방향 터널이 작동했다면 공격자가 로그인해 내 계정으로 읽을 수 있는 모든 것을 볼 수 있었습니다. 노출됐다면 자격 증명을 교체하세요.
Anthropic이 해킹당한 건가요?
Anthropic은 아니라고 밝혔습니다. Felix Rieseberg는 이번 사건이 "Anthropic의 시스템이나 직원 노트북이 침해된 것이 아니다"라고 말했습니다. 변조본은 Cursor 마켓플레이스에만 올라왔고 공격자가 그곳의 게시 권한을 어떻게 얻었는지는 공개되지 않았습니다.
출처
- Cursor: Security notice on the malicious Anthropic.claude-code extension
- Phorion: Official Claude Code extension compromise advisory
- StepSecurity: Trojanized Claude Code extension delivered persistent SSH backdoor
- Socket: Cursor removes malicious Claude Code 2.1.313 extension
- BleepingComputer: Malicious Claude Code extension on Cursor planted SSH backdoors
- Help Net Security: Claude Code extension poisoned with persistent SSH backdoor
- Morphisec: What the trojanized Claude Code extension means for developer endpoints


