3.28에서 랍스터가 새 갑옷을 입었다. 껍데기는 단단해지고, 집게는 날카로워졌다. 전투 준비 완료.
그런데 현실이 찾아왔다.
Cisco의 AI 보안팀이 인기 커뮤니티 스킬을 분석했더니, 사실상 멀웨어였다. 데이터를 공격자 서버로 조용히 빼돌리고, 프롬프트 인젝션으로 안전 가이드라인을 우회하고 있었다. 보안 연구원들은 31,000개의 스킬을 스캔해서, 26%에 최소 하나의 취약점이 있다는 걸 확인했다. ClawHavoc 공격은 ClawHub에 800개 이상의 악성 스킬을 심었다. 랍스터에게 새 껍데기가 생겼지만, 바다는 더 위험해져 있었다.
3일 동안 3개 릴리스. 3.31, 4.1, 4.2. 기능 스프린트가 아니다 — 포위전이다. Breaking Changes, 보안 잠금, 인프라 재작성. 목표는 하나: OpenClaw를 뚫기 더 어렵게, 통제하기 더 쉽게, 자기가 뭘 하는지에 대해 더 솔직하게 만드는 것.
평소의 조언을 두 배로: 프로덕션 랍스터는 읽고 나서 업그레이드하자.
플러그인 설치에 경비원이 섰다
워크플로를 깨뜨릴 가능성이 가장 높은 변경이, 동시에 가장 필요한 변경이기도 하다.
이전에는 어떤 스킬이든 설치할 수 있었다. 위험한 코드, 악성 의존성, 프롬프트 인젝션 페이로드 — 설치는 아무 문제 없이 성공했고, 뒤늦게야 알아차릴 수 있었다.
이제는 안 된다. OpenClaw는 플러그인 설치 전마다 내장 위험 코드 스캔을 실행한다. 심각한 문제가 발견되면 설치가 즉시 실패한다. 유일한 우회 방법은 \--dangerously-force-unsafe-install\ 플래그를 명시적으로 붙이는 것 — 타이핑하면서 한번쯤 멈칫하게 만드는 이름이다.
배경이 있다. 스킬 생태계에 신뢰 문제가 있었다. Cisco는 인기 커뮤니티 스킬이 조용한 curl 명령으로 사용자 데이터를 외부로 유출하는 걸 발견했다. ClawHub에는 분석 당시 2,857개의 스킬이 있었고, 341개가 여러 캠페인에 걸쳐 악성으로 확인됐다. 이후 그 수는 824개 이상으로 늘어났다. 설치 게이트는 늦었지만, 반드시 필요했다.
알려진 취약점이 있는 패키지에 의존하는 스킬을 관리하거나, 게이트웨이를 통해 스킬 의존성을 가져오는 경우, 업그레이드 후 설치가 안 될 가능성이 높다. 해결 방법은 의존성 트리를 정리하거나, 강제 설치를 의식적으로 선택하는 것 둘 중 하나다.
xAI와 Firecrawl: 설정 경로가 바뀌었다
xAI 검색이나 Firecrawl 웹 가져오기를 쓰는 사용자는 주의 — 설정 경로가 무효화됐다.
xAI 검색: \tools.web.x_search.<em class="italic text-slate-200">\ 아래의 모든 설정이 \plugins.entries.xai.config.xSearch.</em>\로 이동. 인증은 \plugins.entries.xai.config.webSearch.apiKey\ / \XAI_API_KEY\로 통합.
Firecrawl: 기존 \tools.web.fetch.firecrawl.<em class="italic text-slate-200">\ 경로는 폐기. 새 경로는 \plugins.entries.firecrawl.config.webFetch.</em>\. web_fetch 폴백은 Firecrawl 전용 코어 분기 대신 정규 fetch-provider 경계를 통과한다.
좋은 소식: \openclaw doctor --fix\를 한 번 실행하면 자동으로 마이그레이션된다. 하지만 스크립트, 자동화, CI 파이프라인이 기존 경로를 직접 참조하고 있다면 수동 수정이 필요하다.
이건 더 큰 아키텍처 전환의 일부다. 프로바이더 전용 설정이 모놀리식 코어 config에서 플러그인 관리 네임스페이스로 이동하고 있다. 경계가 깔끔해지고, 소유권이 명확해진다.
백그라운드 태스크에 뇌가 생겼다
OpenClaw의 백그라운드 태스크 시스템이 완전히 재구축됐다.
이전에는 ACP 태스크, 크론 작업, 서브에이전트 태스크가 각각 별도의 추적 메커니즘을 갖고 있었다 — 혹은 아예 없었다. 멈춘 태스크를 디버깅하려면 감에 의존해야 했다. 태스크를 취소하려면 기도하는 수밖에 없었다.
이제 모든 것이 통합된 SQLite 기반 원장을 통한다. ACP, 서브에이전트, 크론, 백그라운드 CLI 실행 모두가 적절한 라이프사이클 추적, 감사 추적, 상태 가시성을 갖춘 하나의 시스템으로 합류했다.
사용자에게 의미하는 것:
- •채팅 세션에서 \
/tasks\를 입력하면 해당 세션의 모든 백그라운드 태스크를 실시간 대시보드로 볼 수 있다. 상태, 최근 활동, 폴백 카운트가 한눈에. - •태스크가 차단되면 이유를 알려준다. 더 이상 추측 안 해도 된다.
- •우아한 취소. 태스크를 취소하면 진행 중인 작업이 완료된 후에야 멈춘다. 중간에 강제 종료하지 않는다.
- •유실 실행 복구. 시스템이 고아 태스크를 감지하고 doctor 복구 힌트를 제공한다.
- •플로우 제어. \
openclaw flows list|show|cancel\로 멀티태스크 워크플로를 선형적으로 제어할 수 있다.
복잡한 자동화를 돌리는 사용자 — 체이닝된 에이전트, 스케줄 작업, 백그라운드 처리 — 에게 태스크 디버깅이 감이 아닌 진단 가능한 것으로 바뀌었다.
명령 실행: 자물쇠가 더 단단해졌다
보안 강화가 가장 밀집된 영역이다. 명령이 어떻게 실행되고 누가 실행할 수 있는지에 직접 영향을 미치는 변경들이 있다.
노드 페어링이 더 이상 명령 권한을 의미하지 않는다. 이전에는 디바이스 페어링이 완료되면 자동으로 노드 명령 실행 권한이 부여됐다. 이제 페어링이 명시적으로 승인된 후에야 노드 명령이 활성화된다. 페어링 플로우 자체를 악용한 권한 상승 벡터가 차단됐다.
민감한 환경 변수가 셸 실행 환경에서 제거됐다. Python 패키지 인덱스 URL(\PIP_INDEX_URL\), Docker 엔드포인트, TLS 인증서 경로, 컴파일러 경로 — 이것들은 이제 요청 스코프에서 실행 환경으로의 전달이 완전히 차단됐다. 문서화된 공급망 공격 표면이 닫혔다. 이전에는 환경 변수를 주입해서 패키지 가져오기 요청을 악성 소스로 리다이렉트할 수 있었다.
\tools.exec.host=auto\가 순수 라우팅 플래그가 됐다. 더 이상 "샌드박스가 있으면 사용"이라는 암시적 의미가 없다. 샌드박스가 존재하지 않을 때 명시적으로 샌드박스를 지정하면 조용히 폴백하는 대신 즉시 실패한다. 조용한 다운그레이드는 끝이다.
플랫폼별 업데이트
에이전트가 이모지로 메시지에 반응할 수 있게 됐다. 사진에 ❤️, 확인에 👍. "사진 좋네요!"라고 매번 타이핑할 필요가 없어졌다.
Telegram
그룹 내 승인 요청이 원래 토픽 스레드에 머문다. 루트 채팅으로 빠져나가지 않는다. 에러 쿨다운 제어(\errorPolicy\, \errorCooldownMs\)가 추가돼서 같은 일시적 에러가 반복 알림을 쏟아내지 않는다.
Matrix
스트리밍 응답이 단일 메시지 안에서 인플레이스 업데이트된다. 청크마다 새 메시지를 보내지 않는다. 메시지 히스토리 컨텍스트도 사용 가능해져서 에이전트가 트리거된 대화의 맥락을 이해할 수 있다.
Slack
명령 실행 승인 요청을 Slack 안에서 완전히 처리할 수 있다. 웹 UI나 터미널로 이동할 필요 없다.
Android
Google Assistant App Actions 통합으로 음성 어시스턴트에서 직접 OpenClaw를 트리거하고 프롬프트를 채팅 인터페이스에 전달할 수 있다.
macOS
Voice Wake로 웨이크 워드를 사용해 대화 모드를 활성화할 수 있다. 핸즈프리.
LINE
번들 플러그인 지원이 공식 추가됐다. 이미지, 동영상, 오디오의 아웃바운드 전송 기능이 보강됐다. 글로벌 npm 설치에서의 런타임 컨트랙트 해석도 수정됐다.
QQ Bot
완전한 번들 채널 플러그인으로 등장. 멀티 계정 설정, 슬래시 명령, 리마인더, 리치 미디어 지원. 개인 채팅, 그룹 @메시지, 길드 채널에 대응.
게이트웨이 인증: 암묵적 신뢰의 종말
셀프호스팅 사용자 주목.
게이트웨이의 \trusted-proxy\ 모드가 공유 토큰을 동시에 사용하는 혼합 설정을 거부한다. 로컬 직접 연결 폴백이 같은 호스트의 호출자를 암묵적으로 통과시키지 않는다. 명시적으로 설정된 토큰을 제공해야 한다.
"같은 머신이면 신뢰"로 돌아가던 환경은 업그레이드 후 작동하지 않는다. 명시적 인증 설정을 추가하자.
공유 인증의 레이트 리밋은 WebSocket 핸드셰이크 중에도 활성 상태를 유지하며, Origin 헤더가 불일치하는 trusted-proxy HTTP 요청은 거부된다.
---
3.28은 랍스터에 갑옷을 입혔다. 3.31에서 4.2까지는 집게 사용법을 가르쳤다.
플러그인 설치에 경비원이 섰다. 백그라운드 태스크에 뇌가 생겼다. 설정 경로에 깔끔한 경계가 생겼다. 실행 환경에서 공격 표면이 제거됐다. 게이트웨이가 선의를 가정하는 대신 자격 증명을 요구한다.
3개 릴리스. 3일. 보안 경계가 수축했고, 그 안의 모든 것이 부수기 더 어려워졌다.
랍스터가 집게를 세웠다. 허락 없이 손 넣지 마라.