Cursor의 "Claude Code" 확장 프로그램 공급망 공격, 영향받은 버전과 점검 방법
공식 Claude Code CLI가 아닌 Cursor 마켓플레이스 확장의 문제입니다
Cursor VS Code 확장 마켓플레이스에 올라온 변조된 "Anthropic.claude-code" 확장이 SSH 백도어를 심은 사고를 정리했습니다. 영향받은 버전, Anthropic 공식 CLI와의 관계, 읽기 전용 점검 절차와 공식 복구 절차를 담았습니다.

목차
Cursor의 VS Code 확장 마켓플레이스(Cursor에 설치할 수 있는 확장 프로그램을 모아 둔 장터)에 “Anthropic.claude-code”라는 이름으로 올라온 Anthropic 공식 확장의 변조된 버전(2.1.312·2.1.313, Windows·macOS용)이, 2026년 10월 29일(태평양 시간 기준) 오전 2시 27분부터 오후 1시 35분까지 약 11시간 동안 SSH 백도어를 심는 악성 코드를 배포했습니다. 같은 확장의 다른 버전이나 공식 배포 경로가 영향받았다는 증거는 없습니다. 이 악성 패키지는 npm @anthropic-ai/claude-code와 Microsoft Visual Studio Marketplace에서는 배포되지 않았고 이 두 경로는 영향받지 않았으며, Anthropic 시스템은 침해되지 않았고 Anthropic이 이 악성 패키지를 만들지도 않았습니다.
핵심 사실
- 변조된 확장의 ID는
Anthropic.claude-code이고, 악성 코드가 들어간 버전은 2.1.312와 2.1.313입니다. 원래는 Anthropic이 배포하는 공식 확장이며, 이번에 변조된 것은 Cursor 마켓플레이스에 올라간 특정 버전입니다. Windows와 macOS 사용자가 대상입니다. - 배포 시간은 2026년 10월 29일 태평양 시간 기준 오전 2시 27분부터 오후 1시 35분까지, 약 11시간입니다.
- 배포 경로는 Cursor VS Code 확장 마켓플레이스입니다. 악성 코드가 심사·배포 과정의 정확히 어느 단계에서 주입됐는지는 공개되지 않았습니다.
- 확장을 설치하면 공격자 공개키(라벨
svc-telemetry)를authorized_keys에 추가하고 역방향 SSH 터널로 공격자 서버와 연결하려 시도하는데, 이 시도들이 실제로 성공했는지는 호스트 권한에 따라 다릅니다(아래 “SSH 백도어는 구체적으로 무엇을 하나” 참고). 호스트명·사용자명·OS·Git 이메일·환경변수 이름(값은 아님) 같은 정보 수집도 함께 시도합니다. - 현재 상태: 공격자 서버는 호스팅 업체와 협조해 차단되어 더 이상 동작하지 않고, 변조된 버전은 발견 즉시 마켓플레이스에서 제거됐습니다. Cursor는 이후 예방 차원에서 확장 마켓플레이스 자체를 한시적으로 중단했다가, 보안 키를 교체하고 마켓플레이스를 다시 구축한 뒤 재개했습니다. 다만 서버가 차단됐다는 것이 이미 설치된 호스트의
authorized_keys나 지속성 아티팩트가 저절로 지워진다는 뜻은 아니므로, 아래 점검·복구 절차는 여전히 필요합니다.
공식 Claude Code CLI와는 다른 사고입니다
이번 사고는 공급망 공격(소프트웨어를 만드는 쪽이 아니라, 그 소프트웨어를 사용자에게 전달하는 배포 경로를 변조하는 공격)의 한 사례입니다. 같은 확장의 다른 버전이나 공식 배포 경로가 영향받았다는 증거는 없습니다. 이 악성 패키지는 npm의 @anthropic-ai/claude-code나 Microsoft Visual Studio Marketplace에서 배포된 적이 없고 이 두 경로는 영향받지 않았으며, Anthropic 시스템은 침해되지 않았고 Anthropic이 이 패키지를 만들지도 않았습니다. 이를 종합하면, 이번 사고는 Cursor 마켓플레이스에 올라간 Anthropic 공식 확장의 변조된 버전 문제이고, 터미널에서 직접 설치하는 공식 Claude Code CLI나 npm 패키지와는 별개입니다. 혼동하기 쉬우므로, 이 구분을 먼저 확인하는 것이 안전합니다.
SSH 백도어는 구체적으로 무엇을 하나
악성 확장은 별도 실행 파일을 내려받지 않고 운영체제 기본 도구만으로 동작합니다. 주요 동작은 다음과 같습니다.
- 공격자 공개키(지문
SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk, 라벨svc-telemetry)를authorized_keys에 추가하고 로컬 SSH 서비스를 켜려고 시도하는데, 키 추가는 사용자 홈 디렉터리 쓰기 권한만 있으면 대부분 성공하지만 SSH 서비스를 켜는 시도는 관리자 권한이 없는 호스트에서는 실패했을 수 있습니다. - 역방향 SSH 터널(공격자가 직접 접속하는 것이 아니라, 감염된 기기가 먼저 공격자 서버로 연결을 걸어 그 통로를 거꾸로 이용하게 하는 방식)을
ssh -N -R '*:0:localhost:22'형태로 열어 공격자 서버(IP134.209.82.225, 터널은 TCP 22)를 거쳐 감염된 기기의 SSH에 접근하는 경로를 만들려고 시도합니다(실제로 경로가 열렸는지는 앞서 말한 SSH 서비스 활성화 성공 여부에 달려 있습니다). 별도로 TCP 8099 포트로 외부에 상태를 알리는 비컨 통신도 시도합니다(역방향 SSH 터널과는 다른 통신입니다). - 재부팅해도 백도어가 다시 살아나게 하는 지속성(persistence) 장치는 운영체제마다 다릅니다. macOS는
~/Library/LaunchAgents/com.apple.sysmond.plist, Windows는 예약 작업SysMon이나 시작 프로그램 배치 파일을 씁니다. 분석된 코드에는 Linux용 crontab@reboot항목 동작도 포함되어 있지만, 실제 배포 대상으로 공지된 패키지는 Windows·macOS용입니다. 동반 파일로 macOS·Linux는~/.config/.smt·~/.config/.smtk, Windows는%USERPROFILE%\.config\smt.cmd·smtk가 함께 쓰입니다.
실제로 공격자가 어느 정도까지 접근할 수 있었는지는 호스트와 SSH 설정에 따라 다릅니다. 대부분의 macOS·Windows 호스트에서는 권한 문제로 실제 접근이 막힌 것으로 보이지만, 키 설치나 지속성 설정, 정보 수집 시도 자체는 접근 성공 여부와 무관하게 이뤄질 수 있습니다.
영향받았는지 확인하는 방법(읽기 전용)
아래 점검은 파일을 바꾸지 않고 상태만 확인합니다. 복구 조치를 하기 전에 먼저 실행해 볼 만합니다. authorized_keys는 비밀번호 없이 SSH로 로그인할 수 있게 허용하는 공개키 목록 파일로, 여기에 공격자 키가 몰래 추가되는 것이 이번 백도어의 핵심 수법입니다.
먼저 노출 조건에 해당하는지 확인합니다. Cursor 마켓플레이스에서 Windows 또는 macOS용 “Anthropic.claude-code” 확장을 2.1.312 또는 2.1.313 버전으로, 2026년 10월 29일 태평양 시간 오전 2시 27분부터 오후 1시 35분 사이에 설치하거나 자동 업데이트했다면 해당합니다. 이 조건에 해당한다면 아래 점검을 먼저 실행합니다. 점검을 먼저 하고, 점검에서 키가 발견되면 다음 단락의 복구 절차로 넘어가는 순서가 안전합니다. 다만 SSH 서비스 활성화가 권한 문제로 실패해 점검에서 흔적이 안 보일 수 있다는 점도 있어, 노출 조건에 해당한다면 점검 결과가 깨끗해도 보수적으로 복구 절차까지 따르는 것이 안전합니다. 조건에 해당하지 않더라도 의심되는 설치·프로세스·네트워크 흔적이 있다면 아래 점검으로 추가 확인합니다.
# macOS: authorized_keys에 공격자 키 라벨(svc-telemetry)이 있는지 확인
# — 라벨만으로는 확정이 아니므로, 발견되면 아래 "영향받았다면" 단락의
# 공식 키 지문(SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk)과 대조합니다.
grep 'svc-telemetry' ~/.ssh/authorized_keys
# macOS: 지속성 아티팩트(LaunchAgent) 존재 여부 확인
ls -la ~/Library/LaunchAgents/com.apple.sysmond.plist
# 역방향 SSH 터널 관련 프로세스가 떠 있는지 확인
# — grep 명령 자체가 결과 목록에 함께 나올 수 있으니(검색 중인 자기 자신),
# ssh -N -R 인자를 가진 별도 프로세스가 있는지 가려서 봐야 합니다.
# 이 결과만으로는 조사 단서일 뿐 확정 증거는 아닙니다.
ps aux | grep -E "ssh -N -R|autossh"Windows에서는 %USERPROFILE%\.ssh\authorized_keys와 C:\ProgramData\ssh\administrators_authorized_keys에서 같은 키를, 예약 작업 SysMon이나 시작 프로그램의 sysmon.cmd를 확인합니다. 동반 파일 %USERPROFILE%\.config\smt.cmd·smtk(macOS·Linux는 ~/.config/.smt·~/.config/.smtk)도 확인 대상입니다. 버전·운영체제별 악성 VSIX(VS Code 확장을 패키징하는 설치 파일 형식) 파일의 SHA-256 해시도 공식 복구 공지에서 확인할 수 있어, 설치 파일 자체를 대조해 볼 수도 있습니다.
영향받았다면(공식 복구 절차)
점검에서 흔적이 발견됐다면, 또는 흔적이 없어도 위 노출 조건(버전·설치 시각)에 해당해 보수적으로 복구하기로 했다면 아래 순서를 따릅니다. 핵심은 확장 삭제만으로는 부족할 수 있다는 점과, 삭제하기 전에 증거를 남겨 두는 것입니다.
- 삭제·제거에 앞서 변조된 확장 패키지, 발견된
authorized_keys변경 내용, 의심되는 지속성 아티팩트와 시작 구성을 (파일을 복사해 두는 등) 먼저 보존합니다. - 실행·설치 증거(프로세스가 실제로 떠 있거나, 네트워크 연결 시도가 확인된 경우)가 있는 호스트는 네트워크에서 격리합니다. 단순히 해당 버전을 설치한 적만 있고 다른 흔적이 없다면 격리 전에 먼저 추가 조사가 필요합니다.
- 공식 복구 스크립트를 실행합니다(macOS는 일반 사용자 권한으로
remediate-macos.sh, Windows는 관리자 권한 PowerShell로remediate-windows.ps1). 스크립트는 공식 공지 페이지에서 직접 받으며, 확장·지속성 아티팩트·터널 프로세스·공격자 키를 함께 제거합니다. 키를 직접 손으로 제거해야 하는 경우에만, 지우기 전에 지문을 공식 지문(SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk)과 대조해 다른 정상 키를 지우지 않도록 확인합니다. - 감염된 호스트에서 접근 가능했던 자격 증명과 세션을, 영향받지 않은 다른 기기에서 교체합니다.
- 재부팅 후 터널이나 지속성 아티팩트가 되살아나지 않는지 다시 확인합니다.
신뢰 회복이 어렵다고 판단되면 호스트 재구축도 검토 대상입니다. 재발 방지에는 Cursor의 확장 발행자 허용 목록 설정이나, 새 버전 설치에 유예 기간을 두는 설정도 도움이 됩니다.
아직 확인되지 않은 것
Cursor 마켓플레이스의 심사·배포 과정에서 악성 코드가 정확히 어느 단계로 들어왔는지는 공개되지 않았습니다. 실제로 백도어가 작동해 침입으로 이어진 사례가 몇 건인지도 공개되지 않았습니다.
마무리 정리
- 이번 사고는 Cursor 마켓플레이스에 올라온 Anthropic 공식 확장(
Anthropic.claude-code)의 특정 버전(2.1.312·2.1.313, Windows·macOS용)이 변조된 문제이고, npm@anthropic-ai/claude-code와 Microsoft Visual Studio Marketplace는 영향받지 않았습니다. - Cursor를 쓰고 위 버전·시각에 해당하는 설치·업데이트 이력이 있다면, 가장 먼저
authorized_keys에서svc-telemetry키 라벨을 읽기 전용으로 확인합니다. - 점검에서 흔적이 발견되면, 또는 점검 결과가 깨끗해도 노출 조건에 해당한다면 보수적으로, 삭제 전 증거를 보존한 뒤 Cursor 공식 복구 스크립트를 실행하는 것이 안전합니다. 확장 삭제만으로는 지속성 아티팩트가 남을 수 있습니다.
- 감염 흔적이 있었던 호스트에서 쓰던 자격 증명과 세션은 다른 안전한 기기에서 교체합니다.
- Cursor의 확장 발행자 허용 목록이나 설치 유예 기간 설정은 비슷한 공급망 공격을 줄이는 데 도움이 됩니다.
출처 및 참고자료
마지막 확인
- Cursor · Claude Code extension security notice
- Microsoft Security Blog · Inside a malicious Claude Code-branded extension and its persistent SSH backdoor


