📰 핵심 요약
Cursor가 앞서 발생한 Claude Code 플러그인 오염(포이즈닝) 사건의 조사 결과를 공개했습니다. 조사에는 두 주가 걸렸고, 공격의 출발점은 Cursor의 AI 서비스 업체인 Fireworks로 지목됐습니다. Cursor에 따르면 Fireworks가 Cursor가 부여한 접근 키 하나를 유출했고, 해커는 이 키로 공유 스토리지에 저장돼 있던 과거 코딩 에이전트 실행 기록을 복제했습니다. 이 데이터는 주로 2025년에 프라이버시 모드를 켜지 않은 사용자 세션에서 나온 것으로, 원래 모델 학습용이었습니다. 일부 기록에는 API 키가 마스킹되지 않은 채 남아 있었고, 해커는 이를 이용해 Cursor가 쓰는 일부 내부 소프트웨어 서비스에 추가로 침입했습니다. 그 결과 보관 처리된 비프로덕션 코드, 고객지원 이메일, 제품 사용 데이터, 일부 AI 대화 요약, 그리고 사용자가 고객지원에 제출했던 자격 증명이 노출됐습니다. 10월 29일에는 해커가 탈취한 내부 자격 증명으로 확장 프로그램 스토어의 캐시를 조작해, SSH 백도어가 심어진 Claude Code 2.1.312와 2.1.313 버전을 사용자에게 제공했습니다. 악성 버전은 약 11시간 동안 존재했고, 최대 5,000명의 사용자가 내려받았을 가능성이 있습니다. 업스트림인 Open VSX는 변조되지 않았으며, Anthropic 공식 버전도 영향을 받지 않았습니다. Cursor는 유출된 실행 기록이 전체 사용자의 0.05% 미만에 해당하고, 그중 API 자격 증명이 노출된 사용자는 0.01% 미만이라고 밝혔습니다. 프라이버시 모드를 켠 세션, 고객 코드 저장소, 프로덕션 시스템은 영향을 받지 않았습니다. 해커의 활동이 마지막으로 확인된 것은 11월 1일이며, 당시 성공적으로 차단했습니다. 현재 Cursor는 영향을 받은 사용자에게 통지를 마쳤고, 추론 요청 처리에 Fireworks를 쓰는 것을 전면 중단했으며, Fireworks의 데이터 접근 권한을 철회하고, 내부 자격 증명을 교체하고 프로덕션 인프라를 재배포했습니다.
💬 JudyAI Lab 관점
Cursor의 이번 조사 결과를 보면, 확장 프로그램 스토어에서 벌어진 공급망 공격의 출발점은 상위 AI 서비스 업체 Fireworks에서 유출된 접근 키 하나였습니다. 키 유출부터 악성 버전 등록까지 공격 사슬이 촘촘하게 이어져 있고, 모델 학습에 쓰이는 데이터의 위험도 수면 위로 드러났습니다.
이 사례는 AI 빌더에게 몇 가지 시사점을 줍니다. 첫째, 해커가 복제한 것은 원래 모델 학습용이던 과거 코딩 에이전트 실행 기록이고, 일부 기록에 API 키가 마스킹되지 않은 채 남아 있었기 때문에 공격이 제3자에서 Cursor 내부 서비스로 이어졌습니다. 결국 확장 프로그램 스토어 캐시를 조작해 SSH 백도어가 심어진 Claude Code 2.1.312와 2.1.313 버전이 사용자에게 전달됐습니다. 둘째, Cursor가 원문에서 밝혔듯 프라이버시 모드를 켠 세션, 고객 코드 저장소, 프로덕션 시스템은 영향을 받지 않았습니다. 데이터 격리 설계가 더 큰 피해를 막아 준 셈입니다. 셋째, 위험은 자사 시스템에만 있지 않습니다. 추론이나 학습 단계를 외부 업체에 맡기면 상대방의 키 관리도 곧 내 공격 표면이 됩니다. 사후에 Cursor는 Fireworks를 통한 추론 요청 처리를 전면 중단하고 내부 자격 증명을 교체해야 했는데, 치른 대가가 상당합니다.
이번 주에 한 번 점검해 보시길 권합니다. 에이전트 실행 기록과 대화 기록이 어디에 저장되는지, 그 안에 API 키가 평문으로 남아 있지는 않은지 확인하고, 기록을 쓰기 전에 마스킹 처리를 먼저 하세요.
📅 원문 정보
- 발행 시각: 2026-11-14T03:38
- 원문 링크: https://m.theblockbeats.info/flash/377305