공격자, Claude 코드 RCE 취약점 악용해 시스템 장악 가능

발행: (2026년 5월 23일 AM 06:10 GMT+9)
6 분 소요
원문: DevOps.com

출처: DevOps.com

Anthropic의 인기 있는 Claude Code 개발자 모델에서 발견된 위험한 취약점은 악의적인 딥링크를 클릭하도록 유도함으로써 공격자가 피해자의 시스템을 장악할 수 있게 했습니다.

일단 침투에 성공하면, 공격자는 원격 코드 실행(RCE) 보안 결함을 이용해 임의의 명령—예를 들어 셸 명령—을 대상의 Claude Code 모델에 실행시킬 수 있었습니다.

모델 버전 2.1.118의 취약점은 이미 수정되었지만, 채택이 가속화됨에 따라 이러한 개발자 중심 도구에서 발생하는 보안 문제의 또 다른 사례가 되었습니다.

CodeSignal이 전 세계 1,000명 이상의 개발자를 대상으로 진행한 설문조사에 따르면, 응답자의 81%가 개발에 AI를 사용하고 있으며, 기업들은 코딩 어시스턴트 사용을 점점 더 강제하고 있습니다.

Claude Code의 RCE 취약점은 보안 연구원 Joernchen(0day.click)에게서 발견되었습니다. 그는 모델의 소스 코드를 직접 살펴보며 “다양한 설정 옵션을 검토하고, 공격자 입장에서 실제로 ‘유용한’ 것이 무엇인지 확인하려고” 했다고 밝혔습니다.

파싱 문제

“main.tsx에서 초기 실행되는 코드를 파고들다”가며 Joernchen은 작성한 글에서 모델의 main.tsx에 있는 eagerParseCliFlag 함수에 문제가 있음을 발견했다고 전했습니다. 이 함수는 --settings와 같은 특정 커맨드라인 플래그를 메인 초기화 루트가 실행되기 전에 파싱하는 역할을 합니다.

문제는 eagerParseCliFlag“naively parsed”(단순히) 전체 커맨드라인을 --settings=…로 시작하는 모든 문자열로 처리했기 때문입니다. 실제 플래그와 그 값을 구분하지 않았습니다.

임의 설정 주입

“이 파싱 동작과 claude-cli://open URI용 Claude Code 딥링크 핸들러를 결합하면, 편리하게 악용할 수 있는 취약점이 생깁니다.”라고 Joernchen은 설명했습니다. “이 파싱 방식 때문에, 공격자는 훅스 설정을 통해 임의 명령을 실행하도록 하는 등, 생성된 Claude Code 인스턴스에 임의 설정을 주입할 수 있었습니다.”

딥링크 핸들러는 딥링크의 q 파라미터를 사용해 사용자 프롬프트를 미리 채우는 옵션을 사용합니다. 그러나 매우 적극적인 설정 파서는 --settings=…--prefill CLI 옵션에 전달되는 인수라는 점을 인식하지 못하고, 이를 자체 옵션으로 오인해 정상적인 설정 플래그로 처리했습니다.

모델이 스폰되는 과정

Joernchen은 macOS를 목표로 한 조작된 딥링크를 통해 SessionStart 훅을 주입하는 예시를 보여주었습니다. 대상이 해당 링크를 열면 Claude 모델이 스폰되어, 공격자가 제공한 설정과 함께 새로운 독립 에이전트를 생성합니다. 세션이 시작될 때 바로 주입된 명령이 실행되며, 사용자는 별다른 행동을 할 필요가 없습니다.

문제는 여기서 끝나지 않습니다. 악의적인 행위자는 작업공간 신뢰 대화 상자를 우회할 수도 있습니다.

“딥링크의 repo 파라미터가 사용자가 이미 로컬에 클론하고 신뢰하고 있는 저장소(예: anthropics/claude-code)로 설정되어 있다면, 어떠한 경고 프롬프트도 표시되지 않고 실행됩니다.”라고 연구원은 적었습니다.

그는 또한 “전체 커맨드라인 배열에 startsWith를 적용하는 패턴은 플래그가 값 안으로 스며들게 하는 다소 문제적인 안티패턴입니다. 커맨드라인 플래그와 그 인수는 항상 전체 컨텍스트에서 파싱되어야 이러한 종류의 주입을 방지할 수 있습니다.”라고 덧붙였습니다.

0 조회
Back to Blog

관련 글

더 보기 »