본문으로 건너뛰기
NEW · Blast Radius: 유출된 API 키 대응 플레이북 (AWS·GCP·Azure)
블로그로 돌아가기

Clinejection: 프롬프트 인젝션과 Cline CLI 비인가 배포

Cline의 Issue 분류 에이전트가 발행 토큰 노출 경로를 만들었습니다. 이후 비인가 CLI 버전이 OpenClaw를 설치했지만, Cline은 사용자 데이터 유출 증거를 찾지 못했습니다.

김동현
작성자
김동현
발행
4 분335 어절
Share:
Clinejection 연구 재현과 이후 npm 무단 배포를 구분한 도식

2026년 2월 17일, 권한 없는 제3자가 유출된 npm 발행 토큰으로 cline@2.3.0을 배포했습니다. 이 패키지에는 OpenClaw를 전역 설치하는 postinstall 명령이 추가돼 있었습니다. Cline은 약 8시간 뒤 수정 버전 2.4.0을 배포하고 2.3.0을 사용 중지 처리했습니다. 영향 범위는 npm으로 배포된 CLI 패키지이며 VS Code·JetBrains 확장 프로그램은 해당하지 않습니다.

Cline이 확인한 내용

Cline은 문제 버전과 직전 배포물을 파일별로 비교했습니다. CLI 실행 파일과 다른 파일은 같았고, 주요 변경은 package.json에 추가된 postinstall 명령이었습니다. Cline은 OpenClaw를 정상 오픈소스 프로젝트로 설명하면서도 동의 없는 설치는 문제였다고 밝혔습니다. 조사에서는 사용자 데이터 접근·반출이나 악성 코드 전달 증거를 찾지 못했습니다. 다운로드 횟수를 침해된 PC 수로 바꾸어 말할 근거는 없습니다.

프롬프트 인젝션과 발행 토큰

앞서 발견된 취약점은 GitHub Issue를 분류하는 자동화에 있었습니다. 외부 사용자가 작성한 Issue 제목이 Bash 실행 권한을 가진 AI 에이전트의 입력으로 들어갔습니다. 보안 연구자 Adnan Khan은 Cline 저장소의 복제본에서 조작한 제목으로 에이전트가 공격자 지정 설치 명령을 실행할 수 있음을 보였습니다. 낮은 신뢰도의 분류 작업이 공유 캐시를 오염시키면, 나중에 더 큰 권한을 가진 야간 배포 작업이 이를 읽을 수 있다는 경로도 분석했습니다.

Khan은 1월 1일 문제를 신고하고 2월 9일 공개했습니다. Cline은 공개 직후 취약한 작업을 제거하고 발행 자격증명을 교체하기 시작했습니다. 다만 사후 보고서에 따르면 npm 토큰 교체 과정에서 다른 토큰을 삭제해 노출된 토큰이 살아 있었습니다. 제3자가 2월 17일 그 토큰으로 비인가 CLI 버전을 배포했습니다. Khan의 실험은 실제 Cline 저장소가 아닌 복제본에서 이뤄졌으므로, 연구자의 재현과 이후 제3자의 배포를 같은 행위로 서술해서는 안 됩니다.

사용자와 운영팀이 확인할 것

2월 17일 npm으로 Cline CLI를 설치했다면 cline --version으로 버전을 확인하세요. Cline은 2.3.0 사용자에게 수정 버전으로 업데이트하고, 의도하지 않은 OpenClaw 전역 설치가 있으면 제거하라고 안내합니다. 회사 발표에 따르면 VS Code·JetBrains 확장 프로그램 사용자는 이번 배포 사고의 영향 대상이 아닙니다.

CI에서 AI 에이전트를 운영한다면 외부 입력이 셸 실행으로 이어지는지, 낮은 신뢰도의 작업이 배포 작업과 캐시를 공유하는지, 폐기한 토큰이 실제로 더는 작동하지 않는지 확인해야 합니다. Cline은 분류 자동화와 발행 작업의 캐시 사용을 제거하고, 토큰을 폐기한 뒤 npm 발행을 OIDC 기반 출처 증명으로 옮겼습니다. 관리 화면의 상태만 보고 토큰 폐기를 완료했다고 판단하지 않는 것이 이 사건의 교훈입니다.

근거 자료

Cline: 공식 사후 보고서

Cline: CLI 2.3.0 보안 권고문

Adnan Khan: Clinejection 원문과 후속 설명

네트워크에 공유해보세요LinkedInX

이어서 읽기

다음 글을 메일로 받아보세요

Cremit의 월간 자격증명 보안 브리프. 한 통에 핵심만 담습니다.

이메일을 판매하거나 외부에 넘기지 않으며, 언제든 수신거부할 수 있습니다.

Clinejection: Cline CLI 사고에서 확인된 사실 | Cremit