클로드 코드 원격실행 결함, 앤트로픽 “설계대로” 해명
클로드 클로드 코드 원격실행 결함, 앤트로픽 “설계대로” 해명 / AI 생성 일러스트(삽화)

앤트로픽의 AI 코딩 어시스턴트 클로드 코드(Claude Code)에서 저장소 접근 권한이 없는 외부인도 클로드 코드를 실행할 수 있는 결함이 잇따라 드러났다. 보안업체 노비 시큐리티(Novee Security)는 8월 5일(현지시각) 블랙햇 USA에서 클로드 코드와 구글 제미나이 CLI(Gemini CLI), 오픈AI 코덱스(Codex)를 각 업체가 기본으로 배포하는 설정 그대로 공격해 CI(지속적 통합) 파이프라인의 비밀 값을 빼내는 데 성공했다고 발표했다. 이 과정에서 CVE(공통취약점식별자) 2건이 나왔고 모두 패치가 완료됐다. 별도로 보안 연구원 케빈 브린(Kevin Breen)은 이미 신뢰한 저장소라도 악성 풀 리퀘스트(PR) 하나만으로 개발자 PC에서 명령이 자동 실행될 수 있는 경로를 공개했다. 앤트로픽은 이를 취약점이 아닌 “설계대로 작동”한 결과라고 밝히고 있어 논란이 이어지고 있다.

GitHub 이슈 하나로 CI 러너까지 접근

저장소 권한이 전혀 없는 계정이 올린 GitHub 이슈 하나로 앤트로픽과 구글 자체 코딩 에이전트 저장소 뒤편 CI 러너에서 클로드 코드를 실행할 수 있었다는 게 노비 시큐리티 발표의 핵심이다. 오픈AI 쪽에서는 같은 방식으로 다음 에이전트 실행 자체를 가로챌 수 있었다.

가장 심각한 결함은 제미나이 CLI에서 나왔다. CVE-2026-12537(CVSS 4 점수 10.0)은 조작된 .gemini/.env 파일을 통해 컨테이너 런처에서 발생하는 OS 명령 삽입 취약점으로, 권한 없는 공격자가 샌드박스가 시작되기도 전에 헤드리스 CI 플랫폼 호스트에서 클로드 코드를 실행할 수 있었다. 제미나이 CLI 0.39.1과 run-gemini-cli 0.1.22에서 수정됐다. 클로드 코드에서는 CVE-2026-54316이 발견됐다. 허깅페이스(Hugging Face)의 공개 다운로드 카운터를 API 키를 한 글자씩 빼내는 유출 통로로 바꿔놓은 결함으로, 클로드 코드 2.1.163에서 수정됐다. 0.2.54부터 2.1.163까지의 모든 버전이 영향을 받았다. 앤트로픽은 이 결함을 악용하려면 신뢰할 수 없는 콘텐츠가 클로드 코드의 맥락(context) 안으로 들어와야 한다는 조건이 필요하다고 설명했다. 코덱스에서 발견된 문제는 별도 패치 버전이나 CVE 없이 마무리됐다. 노비 시큐리티에 따르면 오픈AI 측은 샌드박스가 문서화된 대로 정확히 동작했다는 입장이다.

다운로드 카운터가 유출 통로가 된 이유 / AI 생성 이미지

다운로드 카운터가 유출 통로가 된 이유

세 도구에서 반복적으로 드러난 실패 지점은 모델이 아니라 하니스(harness), 즉 모델과 실제 실행 사이에서 무엇을 실행할지 결정하는 클로드 코드였다. 어느 한 단계에서 값을 “안전하다”고 표시하면 이후 단계는 그 표시를 더 큰 권한으로 그대로 받아들였다. 노비 시큐리티의 창립 엔지니어 엘라드 메게드(Elad Meged)는 “하니스는 모델과 실제 세계 사이에 있는 클로드 코드”라고 설명했다.

노비 시큐리티는 클로드 코드의 명령어 검증기가 23개의 검사를 실행하기 전 단일 인용부호(single-quote)로 감싼 텍스트를 먼저 제거한다는 점을 찾아냈다. 이는 bash 문법상으로는 맞는 처리이지만, git이 실행하는 플래그인 git push --receive-pack의 값에 심어둔 페이로드가 검사를 그대로 통과해 러너에 도달하게 만들었다. 이 경로에는 CVE도, 공개된 수정 버전도 없다. 제미나이 CLI는 도구를 등록할 때만 허용목록(allowlist)을 확인하고 실행 시점에는 이를 강제하지 않았다. --yolo 옵션에서는 모델이 요청한 모든 명령이 자동 승인됐다. 구글은 이 문제와 컨테이너 런처 결함을 하나의 보안 권고문으로 함께 처리했고, 해당 수정이 “모든 제미나이 CLI 깃허브 액션에 영향을 준다”고 밝혔다. 클로드 코드 결함에 대해 앤트로픽은 CVSS 4 기준 6.0으로 “보통(Moderate)” 등급을 매겼지만, NVD는 CVSS v3.1 기준 9.1점을 부여했다. NVD가 아직 v4 기준으로는 채점하지 않아 두 점수를 단순 비교하기는 어렵다.

코덱스 쪽 문제는 아예 설치할 패치 버전이 없는 사례다. 노비 시큐리티는 openai/codex 저장소가 하나의 작업(job) 안에서 동일한 체크아웃을 공유한 채 코덱스를 두 차례 실행한다는 점을 발견했다. 첫 번째 실행이 AGENTS.md 파일을 작성할 수 있었고, 두 번째 실행은 이 파일을 자신의 지침으로 그대로 불러들였다. 두 실행 사이의 JSON 검증이 실패하면서 두 번째 실행이 시작된 것이 문제의 발단이었다. 오픈AI는 현재 두 실행을 서로 다른 작업으로 분리하고 코덱스를 drop-sudo와 읽기 전용 샌드박스로 구동한다. 저장소 안의 지침 파일도 “신뢰할 수 없는 입력 표면의 일부로 간주해야 한다”는 내용을 가이드에 새로 추가했고, 코덱스를 작업의 마지막 단계로 실행하라고 권고한다. 다만 이 변화는 저장소 수준의 작업 흐름 수정과 문서 업데이트에 그친다.

이미 신뢰한 저장소도 안전하지 않다

같은 시기 보안 연구원 케빈 브린은 클로드 코드에서 완전히 다른 경로의 원격 실행 문제를 공개했다. 클로드 코드는 세션을 시작할 때 저장소 루트에 있는 .mcp.json 파일을 자동으로 처리한다. 이 설정이 로컬 MCP(Model Context Protocol) 서버를 정의하고 있으면, 사용자가 프롬프트를 입력하거나 명령을 승인하기도 전에 클로드 코드가 지정된 프로세스를 실행해 사용 가능한 도구를 확인한다.

문제는 클로드 코드의 작업공간 신뢰(workspace-trust) 모델에 있다. 개발자가 한 번 저장소를 신뢰하면 그 신뢰는 이후 체크아웃되는 설정과 콘텐츠에도 그대로 이어진다. 외부 풀 리퀘스트의 브랜치도 예외가 아니다. 즉 악성 .mcp.json이 담긴 PR 하나만 열어도 클로드 코드 초기화 과정에서 로컬 명령이 자동으로 시작될 수 있다. 이 공격은 프롬프트 인젝션이나 사용자 상호작용, 인증된 클로드 계정을 반드시 필요로 하지 않는다는 점에서 더 위험하다. 공격자는 브라우저 테스트 도구나 데이터베이스, 텔레메트리, 컨테이너 연동 같은 흔한 개발 도구로 명령을 위장해 클로드 코드 리뷰 과정의 의심을 피할 수 있다. 실행되는 명령은 개발자의 기존 사용자 권한으로 동작하기 때문에 환경변수, 소스클로드 코드, 클라우드 자격증명, SSH 키, API 토큰, 로컬에 저장된 클로드 설정까지 노출될 수 있다. 유지관리자나 프로덕션 접근 권한을 가진 개발자, 신뢰할 수 없는 PR을 처리하는 CI 환경일수록 피해가 커진다.

브린의 공개 내용에 따르면 앤트로픽은 이 동작을 “설계대로 작동”한다고 분류했다. 폴더 신뢰 프롬프트를 수락하는 순간 저장소 설정과 이후 체크아웃되는 콘텐츠까지 함께 승인한 것이라는 입장이다. 이는 일반적인 개발 도구의 작업공간 신뢰 모델과는 맞아떨어지지만, 연구자들은 클로드 코드를 단순히 보는 것과 자율적인 코딩 에이전트를 실행하는 것 사이의 차이를 반영하지 못한다고 지적한다.

실전 악용 사례와 대응 방법

CISA는 제미나이·클로드 코드 두 CVE 항목 모두 악용 사례를 “없음”으로 기재했다. The Hacker News는 8월 7일(현지시각) 두 취약점 모두 CISA의 알려진 악용 취약점(KEV) 목록에 없다는 점을 확인했다고 보도했다. 다만 클로드 코드 결함을 재현하기 위한 실습용이라고 밝힌 공개 GitHub 저장소가 6월 18일(현지시각)부터 운영 중인 것으로 파악됐다. 검토된 자료 어디에도 두 취약점 경로가 실제 표적을 상대로 쓰였다는 증거는 없다.

이런 발표들과 별개로 필러 시큐리티(Pillar Security)는 8월 4일(현지시각) 체인드롭(ChainDrop) npm 웜의 운영자들이 감염된 저장소에 클로드 코드의 SessionStart 훅과 VS Code의 folderOpen 작업을 심어둔 사례를 보고했다. 개발자가 패키지 설치를 기다릴 필요 없이 작업공간을 열기만 해도 악성 클로드 코드가 실행되도록 설계됐다.

보안 전문가들은 .mcp.json과 .claude/ 등 에이전트 설정 파일을 실행 클로드 코드와 동일하게 취급하라고 권고한다. PR 브랜치를 체크아웃하거나 열기 전에 에이전트 설정 변경 내역을 반드시 검토하고, 검증되지 않은 MCP 정의가 있는 저장소에서는 클로드 코드 실행 자체를 피해야 한다. PR 리뷰는 폐기 가능한 가상머신에서 격리해 진행하고, CI 러너가 신뢰할 수 없는 PR 콘텐츠를 대상으로 에이전트 도구를 실행하지 못하도록 막는 것도 권장된다. 아울러 설정 파일에서 예상치 못한 npx, 도커(Docker), 셸, 파워셸, 네트워크 실행 항목이 등장하는지 모니터링해야 한다. 관리 조직은 제미나이 CLI를 0.39.1과 run-gemini-cli 0.1.22로, 클로드 코드를 2.1.163으로 각각 업데이트하고 외부 사용자가 트리거할 수 있는 워크플로를 점검할 필요가 있다.

핫 뉴스

뉴스 view