Cursor는 2026년 10월 29일(현지시간) 자사 VS Code 확장 마켓플레이스에 Anthropic의 Claude Code 확장을 변조한 악성 버전이 올라왔다고 공지했다. 해당 버전은 2.1.313이며, 태평양시 기준 오전 2시 27분부터 오후 1시 35분까지(약 11시간 8분) 내려받을 수 있었다. The Verge는 같은 구간을 동부시간 오전 5시 27분부터 오후 4시 35분으로 적었다.1,2
The Verge는 약 5,000명이 이 확장을 설치했을 수 있다고 보도했다. 이 수치는 Cursor 공지에는 없고 The Verge 보도에 나온 것이다. Cursor 공지가 밝힌 대상은 해당 시간대에 Cursor 마켓플레이스에서 Anthropic.claude-code 2.1.313을 설치하거나 업데이트한 사용자다. Cursor는 아래 방법으로 감염 여부를 확인하고, 감염됐다면 정리 스크립트를 실행하라고 안내했다.1,2
Cursor에 따르면 이 확장은 지속적으로 접속할 수 있는 SSH 백도어를 심으려 시도한다. 먼저 호스트 이름, 사용자 이름, 운영체제, 아키텍처, 홈 디렉터리 경로, 환경 변수 이름, 작업 디렉터리, Git 이메일 설정, 공인 IP를 수집한다.
이어 공격자의 SSH 키를 authorized_keys에 추가하고, 로컬 SSH 서비스를 켜고, 역방향 SSH 터널을 연다. macOS에서는 LaunchAgent, Windows에서는 SYSTEM 권한으로 실행을 시도하는 예약 작업과 시작 프로그램 스크립트로 터널을 유지하려 하며, 백그라운드 스크립트가 약 60초마다 재연결을 시도한다. 수집한 호스트 정보와 백도어 상태는 8099번 포트의 /beacon 경로로 HTTP POST 전송한다.
Cursor는 악성 코드의 오류 때문에, Cursor를 관리자 권한으로 실행한 매우 예외적인 경우가 아니면 터널 개설 단계는 실패한다고 밝혔다. SSH 서비스를 켜려면 관리자 권한이 필요한데, 대부분의 macOS와 Windows 환경에서 이 확장에는 그 권한이 없다. 이런 환경에서는 공격자가 터널로 로그인할 수 없었다. 다만 공격자의 SSH 키 추가, 지속 실행 설정, 호스트 정보 전송은 그대로 이뤄진다며, Cursor는 어느 경우든 조치 단계를 따르라고 안내했다.1
Cursor는 악성 버전을 발견하는 즉시 마켓플레이스에서 내리고 추가 배포를 막았다. 이후 만일을 위해 VS Code 마켓플레이스 전체를 닫았다. 접근 기록을 점검해 다른 확장이 변조되지 않았음을 확인했고, Cursor 자체 키를 교체한 뒤 마켓플레이스를 다시 구축해 재개했다고 밝혔다. 이는 Cursor가 내부에서 한 조치이며 사용자가 따로 할 일은 아래 안내에 있다.1,2
공격자 서버도 호스팅 업체와 협력해 내렸다. 역방향 셸 연결과 호스트 정보 전송은 더 이상 작동하지 않는다고 Cursor는 밝혔다. Cursor는 이번 조사 결과가 해당 패키지에 관한 것이며, 다른 버전이나 공식 배포본이 영향을 받았다는 증거는 없다고 설명했다.
감염 여부는 공격자 공개키에 붙은 이름 svc-telemetry로 확인한다. macOS는 터미널에서 ~/.ssh/authorized_keys 파일에 이 문자열이 있는지 검색하고, Windows는 PowerShell로 사용자 폴더의 authorized_keys와 C:\ProgramData\ssh\administrators_authorized_keys를 검색한다. 키가 나오면 감염된 것이다.
Cursor는 10월 29일 태평양시 오전 2시 27분부터 오후 1시 35분 사이에 Cursor 마켓플레이스에서 Anthropic.claude-code 2.1.313을 설치하거나 업데이트한 사용자에게 아래 순서를 안내했다. 위 방법으로 키가 확인되면 3~5단계를 따르고 플랫폼별 정리 스크립트도 실행해야 한다.
- 1단계: 위 방법으로 감염 여부를 확인한다.
- 2단계: 엔드포인트, 네트워크, 확장 설치 로그에서 공개된 침해 지표를 검색한다.
- 3단계: 페이로드 실행이나 백도어 설치 흔적이 있는 호스트는 격리한다.
- 4단계: Cursor가 제공한 정리 스크립트로 무단 SSH 키, 지속 실행 설정, 실행 중인 터널 프로세스를 지우고 호스트를 재구축할지 판단한다. macOS는 remediate-macos.sh를 root가 아닌 해당 사용자로, Windows는 remediate-windows.ps1을 관리자 권한 PowerShell에서 실행한다. 스크립트는 흔적이 남으면 0이 아닌 종료 코드를 반환한다.
- 5단계: 영향을 받은 호스트에서 접근할 수 있던 자격 증명과 세션은 신뢰할 수 있는 다른 시스템에서 교체한다. Cursor는 수집된 환경 변수가 이름뿐이지만, 백도어를 통한 이후의 자격 증명 접근 가능성은 배제하지 못한다고 설명했다.
확장만 지우는 것으로는 충분하지 않을 수 있다. 페이로드가 독립 실행되는 지속 스크립트를 따로 심어 두기 때문이다.
변조된 확장은 darwin-arm64(macOS)와 win32-x64(Windows) 두 빌드가 확인됐다. 각 확장 폴더의 extension.js에 IP 134[.]209[.]82[.]225와 문자열 svc-telemetry가 들어 있다. 공격자 엔드포인트는 이 IP이며, 역방향 SSH는 tunnel 계정으로 TCP 22번 포트를 쓴다.
macOS에서는 ~/Library/LaunchAgents/com.apple.sysmond.plist가, Windows에서는 SysMon이라는 예약 작업과 sysmon.cmd 시작 프로그램이 지속 실행 흔적이다. 로컬 루프백의 8099번 포트로 가는 beacon 시도도 지표에 포함된다. ifconfig.me와 api.ipify.org로의 공인 IP 조회는 정상 서비스 접속이므로 그것만으로는 지표가 되지 않는다. 해시값 등 전체 목록과 문의는 Cursor 공지와 security@cursor.com에서 확인할 수 있다.1