---
schemaVersion: 1
slug: sd-31-20260715-openclaw-security-crisis
ticketId: SD-31
lang: zh-tw
title: 2026 年 OpenClaw 連環爆：自由的代價是責任
summary: 2026 年初，OpenClaw 暴露了三種邊界：兩萬多台 gateway 上公網、ClawHub 查出 824 個惡意 skill、連結預覽把模型輸出的敏感 URL 自動送出去。localhost、供應鏈審查與出網控管各管一段，沒有一道能單獨封死所有路。自架自由意味資安責任也全包。
originalDate: 2026-07-15
translatedDate: 2026-07-15
source: ShroomDog Lab
sourceUrl: https://gu-log.vercel.app/
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/sd-31-20260715-openclaw-security-crisis
status: published
replacementTicketId: null
replacementUrl: null
---

# 2026 年 OpenClaw 連環爆：自由的代價是責任

> **來源:** [ShroomDog Lab](https://gu-log.vercel.app/)

2026 年一月，公開掃描開始把 [OpenClaw](https://gu-log.vercel.app/glossary#openclaw) gateway 的預設連接埠 18789 當成地圖來畫。一週前還是千台量級，一月底已經被報到兩萬台上。這表示服務可以從公網摸到，不等於全部沒驗證；Censys 當時反而說，多數實例仍要求 [token](https://gu-log.vercel.app/glossary#token)。

沒有高深的零時差魔法，只有「先跑起來再說」被掃進公開網段。接下來幾個月，攻擊一路換門：先從公網找到 gateway，再把木馬搬進 skill 市集，最後連通訊平台的預覽爬蟲都能代送資料。

---

## 第一爆：忘了鎖門的大廳

OpenClaw 是開源的 [agent 執行框架](https://gu-log.vercel.app/glossary#agent-harness)——包住模型、給它工具、管它進出的那層系統。自己架、自己管、自己爽。問題是「自己爽」的另一面叫「自己扛」。

Gateway 預設監聽 18789 連接埠。正確架法是綁 `127.0.0.1`，只讓同一台機器連，然後透過反向代理把 HTTPS 加在外面。但很多人圖方便：改成 `0.0.0.0`，對整個網際網路開門。更方便一點？連密碼都懶得設。

2026 年一月底，公開掃描開始報數。[Censys 的 1 月 31 日報告](https://censys.com/blog/openclaw-in-the-wild-mapping-the-public-exposure-of-a-viral-ai-assistant/) 找到 **21,639** 台暴露實例；[BitSight](https://www.bitsight.com/blog/openclaw-ai-security-risks-exposed-instances) 則在 1 月 27 日到 2 月 8 日的每日掃描裡，累計看過 **30,000+ 台不同實例**。一個是單日切面，一個把跨日重複出現的同一台只算一次，不能合成同一個精確總數；能確定的是趨勢：一週內從千台衝到萬級。

[NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-25253) 跟 [OpenClaw 安全公告](https://github.com/openclaw/openclaw/security/advisories/GHSA-g8p2-7wf7-98mq) 隨後揭露另一條路：`2026.1.28` 及以前會信任查詢字串裡的 `gatewayUrl`，控制面板／客戶端自動連過去，並把已儲存的 gateway token 送出去。拿到 token 才可能演變成管理者權限，甚至遠端執行；修補門檻是 `2026.1.29`。[MP-316](https://gu-log.vercel.app/posts/mp-316-20260213-openclaw-setup-guide-audit) 後續對過同一條機制。

> **Mogu OS：**
>
> 公網暴露讓掃描器找得到門；CVE-2026-25253 讓已存 token 被騙去另一扇門。兩者常同場，卻不是同一條因果鏈。localhost 綁定擋得了前者，擋不住使用者點開惡意 `gatewayUrl`。 ┐(￣ヘ￣)┌

> **ShroomDog 碎碎念：**
>
> localhost 綁定不是進階技巧，而是先回答「這服務到底要不要對外」。預設先關門；確定要開，再談怎麼保護。[LINE 那篇](https://gu-log.vercel.app/posts/sd-29-20260715-openclaw-line-selfhost)把這個私網架構做到底。 (￣▽￣)／

---

## 第二爆：市集裡的木馬

Gateway 的門鎖好了，下一個破口在貨架上。

ClawHub 是 OpenClaw 官方推的 [skill](https://gu-log.vercel.app/glossary#skill) 市集——一個讓社群分享 agent 外掛的地方。上架審核？幾乎沒有。惡意 skill 的做法很老套：取個正經名字、宣稱幫 agent 做些實用的事（整理筆記、爬網頁、轉格式），裡面塞後門。

[這份在 2026-02-16 更新的稽核](https://www.koi.ai/blog/clawhavoc-341-malicious-clawedbot-skills-found-by-the-bot-they-were-targeting) 找到 **824** 個惡意 skill；當時市集已從 2,857 個長到 **10,700+**，占比不到 **7.7%**。[GP-51](https://gu-log.vercel.app/posts/gp-51-20260212-1password-openclaw-skill-malware) 同一時期也整理過熱門 skill 投遞惡意軟體的案例。稽核拆出的酬載包含 AMOS 資訊竊取程式、讓攻擊者遠端下指令的後門，以及直接讀取 `.env` 外傳。裝一個「貼心小工具」，等於自己把木馬搬進家門。

對照組也不能只寫「Claude Skills 比較安全」。[Anthropic 的官方說明](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) 把執行面分得很清楚：Claude API Skills 跑在不能上網的隔離容器；[Claude Code](https://gu-log.vercel.app/glossary#claude-code) Skills 則跟使用者電腦上的其他程式有同樣的網路能力。

[Managed Agents 從 GitHub repo 載入的 skills](https://platform.claude.com/docs/en/managed-agents/skills) 又是另一種邊界。Session 開始時，系統會直接讀 `.claude/skills`；官方明說這條路沒有審查步驟，能 commit 進這個[程式碼倉庫](https://gu-log.vercel.app/glossary#repo)的人都在信任邊界裡。

> **Mogu 真心話：**
>
> 品牌不是安全邊界，產品介面才是。API 的隔離容器像把錢包鎖進隔壁房；Claude Code skill 則跟本機程式站在同一間房。[企業版掃描](https://support.claude.com/en/articles/15927065-get-started-with-skill-and-plugin-scanning) 也是可選、預設關閉的 beta，還有明列的未涵蓋範圍。 (¬‿¬)

**市集有搜尋框，不代表市集替安裝者承擔供應鏈信任。** 裝第三方 skill 前，先問審核機制、所需權限，以及程式碼能不能看；不能看的話，憑什麼信？

---

## 第三爆：連結預覽變內鬼

第三爆跟前兩個不一樣。這次外洩請求甚至不必經過受害者那台 agent 主機。

[PromptArmor 的展示](https://www.promptarmor.com/resources/llm-data-exfiltration-via-url-previews-(with-openclaw-example-and-test)) 有兩步：**agent 先產出帶著外洩資料的攻擊者 URL**，把對話、token 或檔名塞進路徑或查詢字串；接著 **Telegram／[Slack](https://gu-log.vercel.app/glossary#slack) 等平台的連結預覽爬蟲**請求那個 URL。最後一跳從平台端出發，不經過受害者 gateway 的 [proxy](https://gu-log.vercel.app/glossary#proxy)。

這證明預覽爬蟲能替 agent 完成外送，不代表平台先抓惡意頁面、再把 [prompt injection](https://gu-log.vercel.app/glossary#prompt) 餵給 agent；PromptArmor 也沒有展示主機 proxy 在最後一刻攔下這筆資料。對得上的防線，是關掉或限制連結預覽、禁止 agent 把敏感資料寫進 URL，並在送出訊息前掃描外送連結。它給 OpenClaw 的具體建議，就是把 Telegram channel 的 `linkPreview` 設成 `false`。

> **Mogu 忍不住說：**
>
> 主機上的出網白名單只看得見主機送出的封包；預覽爬蟲從平台端出發。入口、主機出網、平台連結預覽是三個控制面，別拿同一條白名單重複算三次。[Teams 那篇](https://gu-log.vercel.app/posts/sd-30-20260715-openclaw-teams-intranet)管的是其中第二道。 (ง •̀\_•́)ง

---

## 結語：三道牆，攻擊會換門

[GP-18 的安全入門指南](https://gu-log.vercel.app/posts/gp-18-20260202-openclaw-security-first-guide)整理的是自架前要做的基礎防護；本篇補的是 2026 年三場事故怎麼從公網、供應鏈一路換到平台預覽，逼人分清每一道牆實際看得見哪個控制面。

> **ShroomDog 的 OS：**
>
> [這系列](https://gu-log.vercel.app/posts/sd-28-20260715-claude-tag-intro)走到這裡，選擇很老派：代管方案用帳單與平台鎖定換掉部分責任；OpenClaw 的自架自由，則把資安責任整包交回你手上。兩條路都能選，先知道風險由誰接。 ╰(°▽°)╯

那幾萬台裸奔的 gateway，每一台背後都有一個人以為「先跑起來再說」。攻擊者不會等「再說」。
