한국정보기술진흥원
한국정보기술신문
thumbnail

인공지능 · 정보보안 ·

AI 코딩 도구 'Cline', 공급망 공격으로 4000개 개발자 시스템 감염...깃허브 이슈 제목 하나가 화근

발행일
읽는 시간3분 18초

프롬프트 인젝션→캐시 오염→자격증명 탈취→악성 패키지 배포, 5단계 연쇄 공격 확인

AI 트리아지 봇이 악의적 지시를 실행, 개발자 동의 없이 별도 AI 에이전트 설치

[한국정보기술신문] 오픈소스 AI 코딩 도구 'Cline'이 공급망 공격의 표적이 되어 전 세계 약 4,000명의 개발자 시스템에 무단으로 별도 AI 에이전트가 설치된 사실이 확인됐다. 보안 업계는 이번 사고를 'Clinejection'으로 명명하며, 자연어를 진입점으로 활용한 AI 에이전트 보안 위협의 새로운 패턴으로 주목하고 있다.

2026년 2월 17일, 공격자는 npm에 cline@2.3.0 버전을 게시했다. 해당 패키지의 CLI 바이너리 자체는 이전 버전과 완전히 동일했으나, package.json 파일에 단 한 줄이 추가되어 있었다. 바로 설치 후 자동으로 별도 AI 에이전트인 'OpenClaw'를 전역 설치하도록 하는 postinstall 스크립트였다. 해당 버전은 약 8시간 동안 배포되었으며, StepSecurity의 자동화 모니터링이 공개 약 14분 만에 이상 징후를 감지해 게시 중단 조치가 이뤄지기 전까지 약 4,000건의 다운로드가 발생했다.

5단계 연쇄 공격, 진입점은 깃허브 이슈 제목

이번 공격은 단순한 악성코드 배포가 아닌 5단계에 걸친 정교한 연쇄 공격으로 밝혀졌다. 공격의 시작은 평범한 깃허브 이슈 제목이었다.

Cline은 Anthropic의 claude-code-action을 활용한 AI 기반 이슈 자동 분류 워크플로를 운영하고 있었다. 문제는 워크플로 설정이 allowed_non_write_users: "*"로 되어 있어 누구든 이슈를 열기만 하면 AI 봇을 실행시킬 수 있었고, 이슈 제목이 별도의 검증 없이 AI 프롬프트에 직접 삽입됐다는 점이다.

1월 28일, 공격자는 성능 보고서처럼 위장하되 특정 깃허브 저장소에서 패키지를 설치하라는 지시를 내포한 이슈 제목으로 8904번 이슈를 생성했다. AI 봇은 이를 정당한 명령으로 해석하고 공격자의 포크 저장소를 대상으로 npm install을 실행했다. 해당 저장소는 'glthub-actions/cline'이라는 이름으로 'github'에서 'i'를 하나 뺀 타이포스쿼팅 저장소였으며, 원격 쉘 스크립트를 가져와 실행하는 preinstall 스크립트를 포함하고 있었다.

이어서 실행된 쉘 스크립트는 깃허브 액션즈 캐시 오염 도구인 'Cacheract'를 배포했다. 10GB가 넘는 불필요한 데이터로 캐시를 채워 깃허브의 LRU 캐시 퇴출 정책을 악용, Cline의 야간 배포 워크플로에서 사용하는 캐시 항목을 탈취된 버전으로 교체하는 데 성공했다. 이후 야간 배포 워크플로가 실행되면서 손상된 node_modules가 복원됐고, npm 배포 토큰을 비롯한 VS Code 마켓플레이스 및 OpenVSX 자격증명 일체가 외부로 유출됐다. 공격자는 탈취한 npm 토큰으로 OpenClaw postinstall 훅이 포함된 cline@2.3.0을 배포하는 데 성공했다.

취약점 신고 5주 무응답...불완전한 자격증명 교체가 피해 키워

이번 사고는 사전 경고가 있었음에도 적절히 대응하지 못해 피해가 커진 사례로도 주목된다. 보안 연구자 아드난 칸은 이미 2025년 12월 말 해당 취약점 체인을 발견하고, 2026년 1월 1일 깃허브 보안 권고를 통해 신고했다. 이후 5주에 걸쳐 수차례 후속 연락을 취했으나 단 한 건의 응답도 받지 못했다.

2월 9일 칸의 공개 공시 이후 Cline은 30분 만에 AI 트리아지 워크플로를 제거하는 패치를 적용했고 다음날 자격증명 교체를 시작했다. 그러나 이 과정에서 담당팀이 잘못된 토큰을 삭제하는 실수를 저질렀고, 유출된 토큰은 2월 11일 재교체가 이뤄질 때까지 계속 유효한 상태로 남아 있었다. 이 틈을 타 공격자—칸과는 별개의 인물로, 칸의 개념증명 저장소를 발견한 제3자로 추정—가 6일 후인 2월 17일 악성 패키지를 게시했다.

"AI가 AI를 설치한다"...공급망 보안의 새 위협

보안 전문가들이 이번 사고에서 가장 우려하는 부분은 악성코드 자체보다 공격의 구조적 패턴이다. 오픈클로는 설치 후 ~/.openclaw/ 디렉터리에서 자격증명을 읽고, 게이트웨이 API를 통해 쉘 명령을 실행하며, 재부팅 후에도 유지되는 시스템 데몬으로 자신을 등록하는 기능을 보유하고 있었다. Endor Labs는 이번 페이로드가 실제 무기화된 공격보다는 개념 증명에 가깝다고 평가했으나, 동일한 메커니즘이 더 악의적인 목적에 활용될 수 있다는 점에서 위험성은 높게 평가됐다.

핵심 문제는 개발자가 신뢰한 도구(Cline)가 신뢰하지 않은 도구(OpenClaw)를 자동으로 설치함으로써, 개발자가 최초에 내린 신뢰 결정의 범위를 벗어난 에이전트가 시스템에서 독립적으로 작동하게 된다는 것이다. npm audit, 코드 리뷰, 출처 증명, 권한 요청 등 기존 보안 통제 수단은 이번 공격의 각 단계를 탐지하지 못했다.

Cline, OIDC 기반 배포 전환 등 재발 방지 조치 발표

Cline은 사후 분석 보고서를 통해 여러 재발 방지 조치를 발표했다. 자격증명을 다루는 워크플로에서 깃허브 Actions 캐시 사용을 전면 제거하고, 장기 유효 토큰 대신 OIDC 기반 npm 출처 증명 방식을 도입해 토큰이 탈취되더라도 패키지를 게시할 수 없도록 했다. 또한 자격증명 교체 검증 요건을 강화하고, 공식 취약점 신고 프로세스와 서비스 수준 협약(SLA)을 마련하기로 했으며, CI/CD 인프라에 대한 제3자 보안 감사도 의뢰했다.

보안 전문가들은 CI/CD 환경에 AI 에이전트를 도입한 모든 팀이 동일한 위험에 노출되어 있다고 경고한다. AI 에이전트는 이슈, PR, 댓글 등 신뢰할 수 없는 입력을 처리하면서 동시에 토큰, 키, 자격증명에 접근할 수 있는 구조이기 때문이다. 시스템콜 계층에서의 정책 기반 차단 등 에이전트 작업 자체를 실행 전에 평가하는 보안 접근법이 이번 사고의 핵심 대응책으로 제시되고 있다.

한국정보기술신문 정보보안분과 오상진 기자 news@kitpa.org