Cursor, Fireworks에 발급한 키 노출에서 악성 확장 배포까지 경로 공개
Cursor는 11월 13일 후속 공지에서 Fireworks에 발급한 접근 키가 Fireworks에서 노출된 뒤 과거 코딩 에이전트 기록과 일부 외부 서비스 자료에 접근한 공격 경로를 공개했습니다. API 자격증명이 노출된 고객은 전체 고객의 0.01% 미만, 기록이 노출된 이용자는 전체 이용자의 0.05% 미만이었으며 기록은 Privacy Mode를 사용하지 않은 세션에서 나왔습니다. Cursor는 Windows·macOS에서 10월 29일 오전 2시 27분부터 오후 1시 35분(PT) 사이 특정 버전을 설치·갱신한 경우를 조치 대상으로 안내했고, 특정 캐시 버전을 요청한 이용자 가운데 최대 5,000명이 악성 빌드를 받았을 수 있다고 밝혔습니다.

Cursor는 11월 13일 후속 공지에서 10월 29일 처음 알린 보안 사고의 조사 결과를 공개했습니다. Cursor에 따르면 공격자는 Fireworks에 발급한 접근 키를 이용했습니다. Fireworks에서 노출된 이 키로 공격자는 Cursor가 Fireworks와 데이터를 공유하던 읽기 전용 저장 공간의 자료를 복사했습니다.
저장 공간에는 주로 2025년에 생성된 제한된 양의 코딩 에이전트 기록이 있었습니다. Privacy Mode가 적용되지 않은 세션에서 나온 자료로, Cursor가 모델 학습에 이용할 수 있도록 허가받은 기록이었습니다. 일부 기록에는 가려지지 않은 자격증명이 포함됐습니다. 공격자는 이 자격증명으로 Cursor가 업무에 사용하는 일부 외부 온라인 서비스에 접근했습니다. 그 서비스들을 통해 실제 서비스 운영에는 쓰지 않는 보관된 Cursor 소스 코드 저장소 일부와 제한된 고객 지원 자료·이메일 대화, 제품 사용 지표와 연락처, 일부 코딩 에이전트 대화 요약, 이용자가 Cursor 지원팀에 보낸 자격증명에 접근했다고 회사는 밝혔습니다. 일부 저장소에는 사업 연락처 정보가 있었습니다. API 자격증명이 노출된 고객은 전체 고객의 0.01% 미만이라고 Cursor는 밝혔습니다.
기록이 노출된 이용자는 전체 이용자의 0.05% 미만이었고, 해당 기록은 Privacy Mode를 사용하지 않은 세션에서 나왔다고 Cursor는 설명했습니다. 회사는 이 이용자들을 찾아 개별 통보했습니다. Privacy Mode를 사용한 이용자의 프롬프트와 코드는 영향받지 않았습니다. 노출된 기록은 과거 오프라인 분석용으로 저장한 자료였으며, 현재 Cursor로 전송되는 데이터나 실시간 트래픽은 포함하지 않았습니다. 진행 중인 추론 요청도 노출되지 않았습니다. 접근된 코드 저장소는 Cursor의 일부 보관된 비운영용 저장소였으며, 고객 코드 저장소에는 접근하지 않았습니다. Cursor의 운영 시스템과 기반시설, 앱과 공식 업데이트, 클라이언트·클라우드 서비스에 배포하는 코드, 릴리스 서명 키도 접근받지 않았다고 회사는 밝혔습니다.
기록 속 자격증명이 악성 확장 배포에 쓰였습니다
공격자는 10월 29일 노출된 Cursor 자료에서 얻은 자격증명으로 Anthropic의 Claude Code 확장 기능을 변조한 악성 사본을 Cursor의 VS Code 확장 마켓플레이스 캐시에 올렸습니다. 이 캐시는 마켓플레이스가 이용자에게 확장 기능을 전달할 때 쓰입니다. Cursor는 Anthropic이 이 사본을 배포하지 않았고, Anthropic 제품 자체의 취약점으로 발생한 사고도 아니라고 밝혔습니다. 마켓플레이스의 원본 제공처인 Open VSX에도 악성 코드는 올라오지 않았습니다.
Cursor는 10월 29일 보안 공지에서 Windows·macOS용 Anthropic.claude-code 2.1.312 또는 2.1.313을 같은 날 오전 2시 27분부터 오후 1시 35분(미국 태평양시간, PT) 사이에 Cursor VS Code 확장 마켓플레이스에서 설치하거나 업데이트한 경우를 조치 대상으로 안내했습니다. 11월 13일 후속 공지에 따르면, 10월 29일 특정 캐시 버전을 요청한 이용자 가운데 최대 5,000명이 악성 빌드를 받았을 수 있으며, 이 빌드는 약 11시간 동안 제공됐습니다. Cursor는 영향 조건에 해당하는 이용자에게 10월 30일 보안 공지의 조치 절차를 안내했으며, 확장 기능을 삭제하는 것만으로는 충분하지 않을 수 있다고 밝혔습니다.
Cursor는 모니터링 시스템이 무단 활동을 포착하자 Fireworks 키를 비활성화하고 추가 접근을 찾아 차단했다고 설명했습니다. Fireworks로 가던 추론 트래픽을 모두 다른 곳으로 옮기고, 공유 데이터에 대한 접근도 차단했습니다. 발견한 노출 자격증명은 위험도가 높은 것부터 교체했으며, 노출 증거가 없는 경우까지 포함해 내부 시스템에서 사용 중인 자격증명도 예방 차원에서 교체했습니다. 가능한 범위에서 서비스 제공자에 대한 네트워크 접근 제한을 확대하고, 코드 저장소 전체와 다른 내부 자료에 비밀정보 탐지·보호 조치를 늘렸습니다. 마켓플레이스의 다른 확장 프로그램이 정품인지 확인한 뒤 저장소를 재구축했고, 운영 기반시설과 서비스도 다시 배포했습니다. 각 내부 서비스를 점검한 뒤 복구했다고 밝혔습니다.
예방 차원에서 증거가 요구한 범위보다 넓게 일부 내부·제품 서비스를 일시 중단해 Cursor 기능 이용에 지장이 생겼으며, 안전하게 복구할 수 있는 서비스부터 다시 열었습니다. 10월 30일에는 침해 지표와 조치 절차, 시스템 점검용 스크립트를 담은 보안 공지를 냈고, 영향받은 이용자와 팀 관리자에게 앱 알림과 이메일로 알리기 시작했습니다.
Cursor는 마지막으로 관측한 공격자 활동이 11월 1일이었으며 해당 활동을 차단했다고 밝혔습니다. 회사는 사고가 억제된 상태라고 보고 시스템의 이상 활동을 계속 감시하며, 고객에게 영향을 주는 추가 정보가 확인되면 직접 알리겠다고 했습니다.