최근 보안 장애에 관한 업데이트
10월 29일, Cursor는 보안 장애와 함께 Cursor VS Code 확장 프로그램 마켓플레이스에 등록된 Anthropic의 Claude Code 확장 프로그램의 악성 무단 복제본을 조사하고 있다고 공지했습니다. 지난 2주간 광범위한 조사를 진행한 끝에, 이번 공격과 그로 인한 영향에 관해 더 자세한 내용을 공유하고자 합니다.
대다수의 고객은 영향을 받지 않았으며, 영향을 받은 고객에게는 각 고객에게 해당되는 정보를 직접 안내해 드렸습니다.
고객 데이터를 안전하게 보호하는 것은 저희가 무엇보다 중요하게 여기는 핵심 우선순위입니다. 이번 장애에는 저희가 저장하고 공유한 데이터, 저희가 발급한 인증 정보, 그리고 저희가 운영하는 시스템이 관련되어 있었습니다. 저희는 그 영향에 대응하고 있으며, 이번 일을 통해 얻은 교훈을 바탕으로 보안 조치를 강화하고 있습니다.
발생 경위
조사를 통해 파악한 경위는 다음과 같습니다.
- 사건은 Fireworks에서 시작되었습니다. 공격자가 Cursor가 Fireworks에 발급한 접근 키를 획득했습니다. 이 키는 Fireworks 측에서 노출되었으며, 공격자는 이 키로 Fireworks와 데이터를 공유하는 데 쓰던 읽기 전용 스토리지 버킷에서 데이터를 복사했습니다. 해당 버킷에는 Privacy Mode가 아닌 세션에서 생성된 제한적인 코딩 에이전트 트레이스가 들어 있었고, 대부분 2025년 데이터였으며, 모델 학습에 사용하도록 허가받은 데이터였습니다. 이 트레이스 중 일부에는 마스킹되지 않은 인증 정보가 포함되어 있었으며, API 인증 정보가 노출된 고객은 전체의 0.01% 미만입니다. 공격자는 이 인증 정보를 발판으로 Cursor가 사용하는 일부 SaaS 도구에 접근했습니다. 이어서 이 도구들을 통해 보관 처리된 일부 비프로덕션 Cursor 소스 코드 리포지토리(일부에는 비즈니스 연락처 정보 포함), 제한적인 고객 지원 데이터 및 이메일 대화, 제품 사용 지표 및 연락처 정보, 일부 코딩 에이전트 대화 요약, 그리고 사용자가 Cursor 지원팀에 보낸 일부 인증 정보에 접근했습니다.
- 모니터링 시스템이 무단 활동을 탐지했습니다. 무단 활동을 인지한 직후 Cursor는 해당 공급업체의 키를 비활성화하고 장애 대응 체계를 가동했으며, 인증 정보를 폐기 및 교체하는 한편 추가적인 무단 접근 여부를 추적하기 시작했습니다. 추가 접근이 확인될 때마다 즉시 차단했습니다. 만일에 대비해 증거상 필요한 범위를 훨씬 넘어 내부 서비스와 제품 서비스를 일시적으로 비활성화했으며, 이로 인해 일부 Cursor 기능이 일시적으로 중단되었습니다. 각 서비스는 안전이 확인된 후 순차적으로 복구했습니다.
- 공격자가 악성 확장 프로그램을 게시했습니다. 10월 29일, 공격자는 내부 시스템에서 노출된 데이터에서 탈취한 인증 정보를 사용해, Anthropic의 Claude Code 확장 프로그램을 무단 변조한 악성 복사본을 Cursor VS Code 확장 프로그램 마켓플레이스 제공에 쓰이는 캐시에 직접 올렸습니다. 이 복사본은 Anthropic이 게시한 것이 아니며, Anthropic 제품의 취약점으로 인한 것도 아닙니다. 마켓플레이스 소스인 Open VSX에는 악성코드가 존재한 적이 없습니다. 10월 29일에 캐시된 특정 버전의 확장 프로그램을 요청한 최대 5,000명의 사용자가 악성 빌드를 받았을 가능성이 있습니다. 이 빌드는 약 11시간 동안 노출된 뒤 삭제되었습니다. Cursor는 해당 빌드를 내리고 확장 프로그램 마켓플레이스를 오프라인으로 전환했으며, 공격자의 서버를 호스팅하던 클라우드 서비스 제공업체와 협력해 해당 서버를 중단시켰습니다.
- 고객에게 알렸습니다. 10월 30일, Cursor는 블로그와 X에 침해 지표, 조치 방법, 시스템 점검용 스크립트를 담은 보안 공지를 게시하고, 앱 내 알림과 이메일로 영향을 받은 사용자와 팀 관리자에게 안내하기 시작했습니다. 인증 정보가 노출된 경우에는 팀 관리자에게 교체해야 할 키 목록을 이메일로 보냈으며, 해당 인증 정보를 발급한 제3자 서비스에 폐기를 요청했습니다. 고객 지원 데이터나 비즈니스 데이터가 관련되었을 가능성이 있는 경우에는 해당 고객에게 직접 알렸습니다. 노출 기간 동안 Cursor VS Code 확장 프로그램 마켓플레이스에서 변조된 버전인 Anthropic.claude-code 2.1.312 또는 2.1.313을 설치했거나 해당 버전으로 업데이트했다면 보안 공지의 단계를 따라 주시기 바랍니다. 확장 프로그램을 제거하는 것만으로는 충분하지 않을 수 있습니다.
- 이번 장애는 현재 통제된 것으로 판단합니다. 마지막으로 확인된 공격자 활동은 11월 1일이며, 해당 시도는 차단되었습니다. Cursor는 이상 활동 여부를 계속 모니터링하며 보안 통제를 강화하고 있습니다. 고객에게 영향을 미치는 추가 정보가 확인되면 해당 고객에게 직접 연락드리겠습니다.
영향을 받지 않은 항목
- Privacy Mode를 사용 중인 경우, 사용자의 프롬프트와 코드.
- Privacy Mode를 사용하지 않는 사용자 중 코딩 에이전트 트레이스가 노출된 사용자는 0.05% 미만입니다. 당사는 해당 사용자를 모두 파악했으며 각 사용자에게 개별적으로 직접 알렸습니다. 알림을 받지 않았다면 사용자의 데이터는 이 트레이스에 포함되지 않았습니다.
- 현재 Cursor로 전송 중인 모든 데이터 또는 실시간 트래픽. 노출된 트레이스 데이터는 과거 데이터의 오프라인 분석용 스토리지에 있던 데이터로 한정됩니다.
- Cursor를 운영하는 프로덕션 시스템과 인프라.
- Cursor 앱과 공식 업데이트, 그리고 당사가 클라이언트와 클라우드 서비스에 배포하는 코드. Cursor는 공격자가 한 번도 접근하지 못한 별도의 코드 호스팅 시스템에서 배포되며, 릴리스 서명 키도 노출되지 않았습니다.
- 고객 팀용 클라우드 Agent, Grok 봇, 기타 모든 SpaceX SI 제품을 포함한 당사의 다른 제품.
- 확장 기능 마켓플레이스의 다른 모든 확장 기능. 다른 모든 확장 기능이 정품임을 검증했으며, 마켓플레이스 저장소를 검토하고 다시 빌드했습니다.
- 처리 중인 추론 요청. 이 요청은 노출되지 않았으며, 예방 차원에서 모든 추론을 해당 타사 학습 및 추론 공급업체에서 다른 곳으로 이전했습니다.
- Cursor Marketplace에서 다운로드한 모든 플러그인.
- 고객 코드 리포지토리.
조치 사항
- 모든 추론 트래픽을 Fireworks에서 이전하고, Fireworks에 발급했던 키를 비활성화했으며, Fireworks와 공유했던 모든 데이터 세트에 대한 접근 권한을 차단했습니다.
- 노출이 확인된 Cursor 인증 정보를 위험도가 높은 순서대로 모두 교체했습니다. 또한 노출 증거가 없는 경우에도 예방 차원에서 당사 내부 시스템 전반에서 사용 중인 모든 인증 정보를 교체했습니다.
- 마켓플레이스의 다른 모든 확장 기능이 정품인지 검증했으며, VS Code 확장 프로그램 마켓플레이스를 검토하고 재구축했습니다.
- 가능한 범위에서 서비스 제공업체 전반의 네트워크 접근 제한을 확대하여, 유출된 인증 정보가 본래 지정된 위치 밖에서는 사용될 수 없도록 했습니다.
- 모든 코드 리포지토리에 비밀 정보 스캔 및 보호 기능을 추가하고, 스캔 범위를 다른 내부 데이터 소스로 확대했습니다.
- 예방 차원에서 모든 프로덕션 인프라와 서비스를 재배포했으며, 모든 내부 서비스를 복구하기 전에 하나하나 검토했습니다.
- 외부 포렌식 전문가를 투입해 조사 지원을 받고 있습니다.
- 영향을 받은 모든 분께 연락드렸습니다.
향후 계획
이번 장애로 영향을 받은 모든 분께 사과드립니다. 저희는 개인정보 보호와 보안을 최우선으로 여기고 있으며, 더 나아질 수 있고 또 반드시 그래야 합니다. 이번 일에서 얻은 교훈을 바탕으로 Cursor의 보안을 더욱 강화하겠습니다. 중요한 변경 사항이 생기면 이 게시물을 업데이트하겠습니다.
궁금한 점이 있으신가요? security@cursor.com으로 이메일을 보내 주세요.