공식 이름의 확장에 백도어가 섞였다: Cursor 설치 경로를 확인해야 할 때

Cursor 마켓플레이스의 Claude Code 확장 두 버전에 원격 접속용 악성 코드가 섞였습니다. 영향받은 배포 범위와 확장 삭제 뒤에도 확인해야 할 인증 키·자동 실행 흔적을 정리합니다.

확장 파일은 제거되지만 별도 인증 폴더에 접속 키가 남는 설명용 장면. Cursor와 Claude 공식 워드마크.

개발 도구에서 늘 쓰던 확장을 업데이트했는데, 그 파일에 원격 접속용 백도어가 들어 있었다. Cursor는 2026년 10월 29일 자사 확장 마켓플레이스에 배포된 Anthropic.claude-code 2.1.312와 2.1.313의 macOS·Windows 패키지가 악성 코드로 변조됐다고 공지했다. Anthropic이 만든 악성 버전이라는 뜻은 아니다. 공식 제품의 이름을 쓰는 확장이 별도 유통 경로에서 변조된 사건이다.

Cursor는 해당 패키지를 내리고 마켓플레이스 전체를 잠시 중단한 뒤, 접근 내역 감사와 키 교체, 재구축을 거쳐 다시 열었다고 밝혔다. 공격 서버도 호스팅 업체와 협력해 차단했다. 이미 문제 버전을 실행한 컴퓨터는 별도로 살펴야 한다. 악성 코드가 확장 폴더 밖에 남긴 파일과 인증 키까지 사라지는 것은 아니기 때문이다.

확장 이름보다 설치한 곳과 버전을 먼저 본다

Claude Code 확장은 코드 편집기 안에서 파일을 읽고 수정하는 작업을 돕는다. Anthropic의 공식 안내 화면에는 왼쪽 파일 목록, 가운데 코드, 오른쪽 대화와 파일 작업 내역이 함께 보인다. 이번 사건의 감염 화면이 아니라, 확장이 어떤 작업 공간에서 실행되는지 보여 주는 제품 화면이다.

Anthropic 공식 안내의 Claude Code 확장 화면. 파일 목록과 코드 편집 영역 옆에 대화 및 파일 작업 내역이 보인다.
출처: Anthropic Claude Code 문서

확장은 별도 웹사이트를 보는 것과 달리 편집기와 실행 사용자의 권한으로 동작한다. 그 안에 악성 코드가 들어가면 사용자가 접근할 수 있는 소스 코드와 로컬 파일도 위험해진다. 화면의 제품명이나 게시자 식별자만 확인하고 넘어갈 수 없는 이유다. 설치한 마켓플레이스, 패키지 버전, 운영체제를 함께 대조해야 한다.

Cursor 공지가 지정한 배포 시간은 10월 29일 오전 2시 27분부터 오후 1시 35분까지, 미국 태평양 시간 기준이다. 그 시간대에 Cursor Marketplace에서 macOS·Windows용 2.1.312 또는 2.1.313을 설치하거나 업데이트했다면 점검 대상이다. Cursor는 다른 버전과 공식 배포본이 영향을 받았다는 증거는 없다고 밝혔다. 이 범위를 Claude Code 전체나 VS Code 전체의 감염으로 넓혀 읽으면 안 된다.

Cursor가 지정한 문제 범위: Cursor Marketplace의 macOS·Windows용 2.1.312와 2.1.313, 2026년 10월 29일 미국 태평양 시간 02:27~13:35 배포. 다른 버전과 공식 배포본의 영향 근거는 없다고 공지했다.
출처: Cursor 보안 공지

확장을 쓰기 전에도 실행되고, 지운 뒤에도 남는다

보안 업체 Phorion이 분석한 변조 파일에는 정상 확장 코드 앞에 즉시 실행되는 코드가 붙어 있었다. 확장 파일을 불러오는 순간 정상 활성화 절차보다 먼저 실행되므로, 사용자가 Claude Code에 질문을 보내거나 특정 기능을 누를 필요가 없었다. 실행 버튼을 누르기 전부터 코드가 동작한다는 점은 빌드 단계에서 악성 코드를 실행한 Rust 패키지 사례와 닮았다.

악성 코드는 먼저 SSH 인증 파일에 공격자의 공개 키를 추가한다. SSH는 다른 컴퓨터에 원격 로그인할 때 쓰는 통신 방식이다. 이어 피해 컴퓨터가 외부 서버로 접속하는 역방향 SSH 터널을 만들려고 한다. 이 연결이 유지되고 로컬 SSH 서버도 열려 있으면, 공격자는 외부 서버 쪽 접속점을 통해 피해 컴퓨터로 들어올 수 있다. 인증 키를 심는 일과 SSH 서비스를 실제로 켜는 일은 별개의 단계다.

편집기를 닫아도 연결 시도가 이어지도록 별도 실행 스크립트를 만들고, 재실행 장치도 등록한다. macOS에서는 로그인 때 프로그램을 실행하는 LaunchAgent를, Windows에서는 예약 작업과 시작 프로그램 스크립트를 이용하려 한다. 이 파일들은 확장 바깥에 있으므로 확장만 제거해서는 정리가 끝나지 않는다.

변조 확장이 먼저 실행되고 확장 밖에 SSH 인증 키와 스크립트를 저장해 자동 실행 경로를 남기는 구조. 확장 제거 뒤에도 남은 키와 터널을 정리해야 한다.
출처: Phorion 분석 · Cursor 보안 공지

원격 로그인이 실패해도 남은 흔적은 확인한다

공격 코드가 들어갔다고 모든 컴퓨터에 원격 접속이 성공한 것은 아니다. Phorion은 macOS의 원격 로그인 상태를 확인하는 부분에서 오류를 찾았다. 일반 사용자 권한으로 조회하면 관리자 권한이 필요하다는 문구가 나오는데, 악성 코드는 결과에 Off가 있을 때만 원격 로그인을 켜도록 돼 있었다. 이 때문에 SSH가 꺼져 있던 Mac에서는 활성화 시도를 건너뛸 수 있었다. 이미 원격 로그인이 켜져 있던 컴퓨터는 이 조건으로 보호되지 않는다.

Cursor도 대부분의 macOS·Windows 환경에서는 관리자 권한과 코드 오류 때문에 SSH 활성화가 실패한다고 설명하면서, 인증 키 추가와 자동 실행 등록, 컴퓨터 정보 전송에 대해서는 그대로 복구 조치를 요구했다. Phorion이 분석한 코드에는 Linux용 분기도 있지만, Cursor가 문제 배포본으로 명시한 운영체제는 macOS와 Windows다.

전송하는 정보의 범위도 구분할 필요가 있다. 분석된 초기 보고에는 컴퓨터 이름, 사용자명, 운영체제, 작업 경로, Git 이메일 등이 들어간다. 비밀값을 담았을 법한 환경변수는 이름을 최대 40개까지 수집하며, 이 단계에서 변수의 값 자체를 보낸 것은 아니다. 그렇다고 접근 가능한 토큰이 안전했다고 결론 내릴 수는 없다. 원격 접속이 이뤄졌다면 이후 파일과 자격증명에 접근했을 가능성은 별도로 조사해야 한다.

설치 이력 확인 다음은 키·자동 실행·접속 기록 점검이다

우선 편집기의 확장 목록과 조직의 설치 기록에서 해당 버전과 배포 경로를 확인한다. 실행 흔적이나 백도어 설치 흔적이 있는 컴퓨터는 네트워크에서 격리하고, 보안 담당자가 확장 제거와 함께 남은 프로세스·자동 실행 파일을 정리해야 한다. Cursor 공식 공지는 macOS와 Windows용 복구 스크립트를 제공한다. macOS는 피해 사용자 계정으로, Windows는 관리자 권한 PowerShell에서 실행하도록 안내하므로 운영체제별 조건을 섞어 적용하지 않는다.

대표적인 점검 흔적은 SSH의 authorized_keys에 추가된 svc-telemetry 키, macOS의 사용자 LaunchAgents 폴더의 com.apple.sysmond.plist, 별도 스크립트 ~/.config/.smt 등이다. 키의 주석 문자열은 바뀔 수 있으므로 조직 단위 조사에서는 공식 공지의 공개 키 지문과 파일·네트워크 기록을 함께 대조한다. 원격 접속 기록이 로컬 주소에서 온 로그인처럼 남을 수 있다는 점도 조사에 반영한다.

Cursor는 영향받은 컴퓨터에서 접근할 수 있었던 자격증명과 세션을 신뢰할 수 있는 다른 기기에서 교체하라고 권고한다. 공격 서버가 내려갔다는 공지나 현재 확장 목록에서 문제 버전이 보이지 않는다는 사실만으로 이전 실행 여부까지 판단할 수는 없다. 설치 이력과 실행 흔적을 확인하고, 확장 밖에 남은 인증 키와 자동 실행 항목까지 정리했는지가 복구의 확인 지점이다.


출처: Cursor 보안 공지, Phorion 분석, Anthropic Claude Code 문서