cloudflared 要更新嗎?eMudhra 憑證外洩後,Cloudflare Tunnel 升級步驟與防範做法

恆遠數位編輯團隊約 14 分鐘閱讀
cloudflared 更新封面:eMudhra 中繼憑證外洩後 Cloudflare Tunnel 需升級到 2026.10.2 以上
複製引文

只要你公司有用 Cloudflare Tunnel 把內部系統開到外面(ERP 後台、NAS、接 webhook 的服務都算),每一台跑 cloudflared 的機器都要升級到 2026.10.2 以上;在 macOS 上沒用 Homebrew 安裝的,要升到 2026.10.3 以上。原因是憑證機構 eMudhra 有 8 張中繼憑證的私鑰被破解,舊版 cloudflared 還會相信這些憑證,攻擊者有機會拿偽造的憑證冒充連線對象。

2026 年 10 月 27 日,我們也收到 Cloudflare 寄來的通知信,信裡寫得很直接:你的帳號底下至少有一條 Tunnel 在跑,cloudflared 依賴的第三方憑證已經確定外洩,請盡快把每一個 cloudflared 升級。我們回頭一查,公司內部一台 Mac mini 上的 cloudflared 還停在 2026.3.0,當天就升完了。這篇把整件事拆成老闆和 IT 都看得懂的版本:發生什麼事、誰會被影響、怎麼更新、以後怎麼不要再被追著跑。

cloudflared 要更新嗎?一張表看懂這次事件

要,而且要盡快。下面這張表是整件事的重點,趕時間的話看完這張就可以去更新了。

問題

答案

發生什麼事

eMudhra 有 8 張中繼憑證的私鑰被破解,拿到私鑰就能簽出「看起來合法」的假憑證

誰會受影響

有在跑 Cloudflare Tunnel(cloudflared)的公司,以及自帶信任清單、還沒更新的軟體

最壞情況

攻擊者冒充連線對象,攔截或竄改傳輸中的資料(中間人攻擊)

要升到哪一版

cloudflared 2026.10.2 以上;macOS 非 Homebrew 安裝要 2026.10.3 以上

目前最新版

2026.10.4(10 月 26 日釋出,Homebrew 已可直接升級)

有沒有被利用

Cloudflare 表示在自家服務上沒有發現實際被利用的跡象

更新會不會斷線

會重新啟動,單一實例會短暫中斷;我們自己實測約 15 秒

Cloudflare Tunnel 可以想像成「從公司裡面往外挖的一條專用通道」:公司不用在防火牆上開洞,外面的人經過 Cloudflare 再沿著這條通道進來。cloudflared 就是裝在公司那一端、負責挖通道的那支程式。想先弄懂 Tunnel 在 Cloudflare 整套產品裡的位置,可以看我們寫過的 Cloudflare Zero Trust 是什麼。

eMudhra 憑證外洩發生什麼事:8 張中繼憑證的私鑰被破解

一句話:負責替網站「蓋章認證身分」的其中一家機構,有 8 顆印章被人複製了。

網路上的 HTTPS 連線,靠的是憑證鏈在證明「我真的是我」。最上層是根憑證,往下是中繼憑證,再往下才是每個網站自己的憑證。中繼憑證就像總公司授權給分公司的印章,分公司蓋的章,大家一樣認。現在 eMudhra 有 8 顆分公司印章的私鑰外流,拿到的人可以替任何網域蓋出一張假憑證,而還在信任這些中繼憑證的軟體會照單全收。憑證鏈怎麼運作,在 SSL 憑證是什麼 那篇有用印章比喻完整講過。

時間線是這樣的:Cloudflare 在官方部落格的事件說明寫到,他們在 2026 年 10 月 19 日約 17:00 UTC(台灣時間 10 月 20 日凌晨 1 點左右)得知這 8 張中繼憑證的私鑰已經外洩,並在 10 月 20 日公開說明。文中提到這些金鑰本身強度不足,但沒有說明是怎麼被破解的。影響範圍也講得很清楚:攻擊者可以替任何網域做出偽造憑證,用來冒充伺服器,攔截或竄改流量。

日期(UTC)

事件

10 月 19 日約 17:00

Cloudflare 得知 eMudhra 8 張中繼憑證的私鑰外洩

10 月 20 日

Cloudflare 發布事件說明;cloudflared 2026.10.2 釋出

10 月 21 日

cloudflared 2026.10.3 釋出(macOS 非 Homebrew 安裝的最低版本)

10 月 26 日

cloudflared 2026.10.4 釋出

10 月 27 日

我們收到 Cloudflare 通知信,當天完成升級

同一件事也波及其他軟體。Java 因為自帶信任清單,同樣要更新,我們在 Java 漏洞 CVE-2026-91403 白話拆解 那篇整理過 Java 的處理方式。這篇專心講 cloudflared。

為什麼 cloudflared 也要更新:瀏覽器一鍵處理,自帶信任清單的軟體不行

因為 cloudflared 要靠憑證驗證來確認連線對象,它在更新之前會繼續相信那 8 張外洩的中繼憑證。

Cloudflare 在事件說明裡點出差別:瀏覽器廠商可以「切一個開關」就讓全世界的瀏覽器不再信任這些憑證;可是很多系統是把信任清單包在程式或映像檔裡,要換清單就得重新發版、重新部署。Cloudflare 優先處理的,就是那些用公開憑證去驗證遠端端點的服務,例如代理到來源主機的連線、應用程式去呼叫外部 API。cloudflared 正好屬於這一類,所以通知信說它「依賴第三方憑證的完整性」,必須更新才能停止信任這些憑證。

軟體類型

信任清單在哪

怎麼停止信任外洩憑證

要你動手嗎

Chrome、Edge 等瀏覽器

瀏覽器廠商集中管理

廠商遠端更新清單

通常不用,瀏覽器保持最新即可

cloudflared

跟著程式版本走

升級到 2026.10.2 以上

要,每台機器都要升

Java 應用程式

JDK 內建 cacerts

更新 JDK 或手動移除憑證

要

Docker 容器

映像檔裡的 CA 套件

更新基底映像、重新建置部署

要,舊映像檔不會自己變

Node.js、Python 程式

執行環境或套件自帶(如 certifi)

更新執行環境與套件

視使用的 TLS 路徑而定

最容易被忽略的是容器。映像檔一旦建好,裡面的信任清單就凍結在建置那天,主機怎麼更新都碰不到它。如果對容器的概念還不熟,可以先看 Docker 容器是什麼。

哪些 Cloudflare 產品受影響:版本與處理方式對照表

除了 Tunnel,Cloudflare 自家幾個用戶端程式也都發了新版。下面整理自 Cloudflare 的事件說明,對照你公司有用到的項目逐一確認。

產品

要升到的版本或要做的事

Cloudflare Tunnel(cloudflared)

2026.10.2 以上;容器部署要更新映像並重新部署

Cloudflare One Client(WARP)

Android v2.5.7、iOS v1.12.7、Windows/macOS/Linux 2026.8.2115.0

1.1.1.1 App

Android v6.38.11、iOS v6.31.8、桌面版 2026.8.2115.0

自訂 mTLS

檢查信任清單與自行上傳的 CA

來源主機 TLS 設為 Full (strict)/Strict

檢查來源主機憑證與伺服器設定

Cloudflare Containers/Sandboxes

檢查映像檔與相依套件的信任清單

有用 Gateway、而且用戶端保持最新的公司,Cloudflare 表示已經自動受到保護。員工電腦上的 WARP 交給 MDM 或自動更新就好,真正要 IT 親自處理的,多半是機房或辦公室裡那幾台跑 cloudflared 的主機。

cloudflared 怎麼更新:依安裝方式選指令

先查版本,再照安裝方式升級,最後重新啟動服務。三步驟每台機器都要跑一次。

第一步,在每台主機上確認目前版本:

Bash
cloudflared --version

看到的版本低於 2026.10.2,就照下表處理。指令整理自 Cloudflare 官方的 cloudflared 更新文件。

安裝方式

更新指令

更新後要做的事

macOS(Homebrew)

brew upgrade cloudflared

重新啟動 launchd 服務

Debian/Ubuntu(apt)

sudo apt-get update && sudo apt-get install --only-upgrade cloudflared

sudo systemctl restart cloudflared.service

RHEL/CentOS(yum)

sudo yum update cloudflared

sudo systemctl restart cloudflared.service

Windows 服務

cloudflared update

net start cloudflared

GitHub 下載的執行檔

cloudflared update

重新啟動服務;macOS 要確認升到 2026.10.3 以上

Docker

改用 2026.10.4 的映像標籤

重新部署容器

Docker 的部分建議把版本寫死,不要用 latest。寫死版本的好處是你清楚知道每台跑的是哪一版,下次出事時查起來快:

Bash
docker pull cloudflare/cloudflared:2026.10.4
# docker compose 的 image 欄位改成 cloudflare/cloudflared:2026.10.4 之後
docker compose up -d

Linux 上用 systemd 跑的服務,升完記得確認服務有起來:

Bash
sudo systemctl restart cloudflared.service
sudo systemctl status cloudflared.service --no-pager
cloudflared --version

⚠️更新會中斷連線

Cloudflare 的文件寫明,更新會讓 cloudflared 重新啟動,正在處理的流量會受影響。同一條 Tunnel 如果有兩個以上的 cloudflared 實例,可以一台一台輪流升級,做到不停機;但被停掉的那台上,長時間連線的請求還是會被切斷。只有一台的話,挑離峰時段做。

還有一件事一定要記住:如果升級後某些服務出現憑證錯誤,請不要用「關掉憑證驗證」來解決。Cloudflare 在說明裡特別強調這一點。出錯代表那條連線真的用到了不再被信任的憑證,要做的是換掉對方的憑證或更新信任清單,關掉驗證等於把大門打開。

我們自己的更新紀錄:一台 Mac mini,中斷約 15 秒

10 月 27 日收到 Cloudflare 的信之後,我們先盤點自己有哪些機器在跑 cloudflared,結果是公司內部一台 Mac mini。它是用 Homebrew 安裝、以 launchd 服務常駐,啟動參數裡帶了 --no-autoupdate,也就是關掉了 cloudflared 內建的自動更新。版本停在 2026.3.0,比這次要求的版本舊了半年多。

實際做的事只有兩步:

Bash
brew upgrade cloudflared            # 2026.3.0 → 2026.10.4
launchctl kickstart -k gui/$(id -u)/com.cloudflare.cloudflared
cloudflared --version

服務重新啟動後,Tunnel 大約 3 秒內就重新註冊完成,4 條連線分別接到 Cloudflare 的高雄(khh01)與台北(tpe01)節點。從開始升級到服務恢復,整體中斷大約 15 秒。

這次學到的一課在 --no-autoupdate。用服務方式安裝 cloudflared 時,很常會看到這個參數,因為大家不希望程式在半夜自己換版本。這個選擇本身合理,但它有個代價:關掉自動更新之後,更新這件事就要有人負責。我們的 Mac mini 安安穩穩跑了半年,沒人想到要看版本,直到 Cloudflare 寄信來。

項目

升級前

升級後

cloudflared 版本

2026.3.0

2026.10.4

安裝方式

Homebrew,launchd 常駐

不變

自動更新

關閉(--no-autoupdate)

仍關閉,改成排程檢查版本

重新註冊時間

不適用

約 3 秒,4 條連線(khh01/tpe01)

服務中斷

不適用

約 15 秒

更新完怎麼確認:連線、版本與相依套件三件事

確認三件事:每台 cloudflared 都升了、Tunnel 連線恢復正常、同一台主機上其他依賴憑證的程式也更新了。

  • 到 Cloudflare Zero Trust 控制台的 Tunnel 頁面,看每個連接器(connector)回報的版本,確認沒有漏網的舊版。實際跑過的人都知道,最常漏的是「當初測試裝的那台」。
  • 用你的應用程式實際走一次對外連線來驗證,例如觸發一次 webhook、登入一次後台。Cloudflare 建議依應用程式實際的 TLS 路徑來驗證,光看版本號不夠。
  • 順著相依關係往下查:主機的 ca-certificates 套件、Python 的 certifi、Node.js 執行環境、容器的基底映像,這些都各自帶著信任清單。Cloudflare 也提醒要檢查整個相依樹。

要確認是否已經被入侵,請以官方說法為準:Cloudflare 目前只說在自家服務上沒看到實際被利用的跡象,這句話的範圍是 Cloudflare 的服務,不代表你自己的每一條連線都沒事。如果你的系統在這段期間有異常的憑證錯誤或流量,值得翻一下紀錄。

怎麼避免下次又被追著跑:把更新變成例行公事

重點在於讓「該更新了」這件事有人看見、有流程接手,不靠廠商寄信提醒。

做法

解決什麼問題

怎麼做

建立 cloudflared 清冊

不知道公司有幾台在跑

記錄每台主機、安裝方式、負責人,控制台的連接器清單定期對一次

關掉自動更新就要排更新

--no-autoupdate 讓版本停在原地

Homebrew 排程升級、Linux 用 unattended-upgrades、每月固定檢查一次

容器版本交給工具盯

映像檔標籤寫死後沒人改

用 Renovate 或 Dependabot 自動開版本更新的 PR

同一條 Tunnel 跑兩個實例

更新必定中斷

至少兩台 cloudflared,輪流升級

訂閱官方通知

消息晚知道

開啟 Cloudflare 帳號的通知,追蹤 GitHub releases

連作業系統的 CA 一起更新

只升 cloudflared,其他程式還在信任舊憑證

OS 套件、語言執行環境、基底映像一起列入更新清單

Cloudflare 在說明最後也提到長期解法:信任清單要能像 Chrome 的 CRLSets 那樣快速更新,並整合撤銷與憑證透明度(CT)的資訊,他們也在推動 upki 這類專案。這是產業層級的事,中小企業能做的,就是先把自己這端的更新流程補起來。

圖表載入中…

用 Tunnel 把內部系統開到外面,維運上要補哪些制度

如果你公司的 ERP、後台或 NAS 是靠 Tunnel 對外,這次事件提醒的其實是維運責任歸屬:系統上線那天有人裝好 Tunnel,之後誰負責更新?

我們的看法很直接:Tunnel 是很好的工具,它讓中小企業不用開防火牆埠、不用架 VPN 就能安全地把系統開出去,這個方向我們在 Zero Trust 是什麼 和 零信任怎麼導入 都推薦過。但「裝好就不用管」是誤會。cloudflared 是一支會持續發新版的程式,跟作業系統、資料庫一樣,需要排進更新清單。

對老闆來說,可以用三個問題檢查自己公司:

  • 公司有幾台機器在跑 cloudflared,有人說得出來嗎?
  • 這些機器上次更新是什麼時候,誰負責?
  • 委外廠商的維護合約裡,有沒有寫到「第三方元件的資安更新」由誰做、多久內做完?

第三題最常出問題。很多維護合約只寫「系統故障排除」,資安更新落在灰色地帶。簽約前可以參考 軟體維護合約的計價模式與條款 和 IT 維護合約範本,上線後第一年要注意的事則整理在 系統上線第一年的維護指南。同樣是「上游出事、下游要跟著更新」的情境,TanStack npm 供應鏈攻擊的應變 那篇也可以一起看;伺服器本身的防護則可參考 伺服器防火牆是什麼。

如果你公司的內部系統也是用 Tunnel 對外,但不確定有哪些機器、誰在維護,我們很樂意聽你聊聊現在的架構,一起把清冊和更新流程整理出來。這類部署與維運的盤點,本來就是我們客製化系統開發的一部分。

ℹ️我們怎麼看

這次 eMudhra 事件之後,「自帶信任清單」的軟體會越來越被要求能快速撤銷,Cloudflare 提的 upki 就是這個方向,但要普及還需要好幾年。在那之前,中小企業最實際的防線是自己的更新紀律。我們自己的選擇是保留 --no-autoupdate(不讓程式半夜自己換版本),改成每月排程檢查版本、有資安通知就當天處理。給你一個判斷方式:如果公司裡有任何一台對外服務的機器,沒有人說得出它上次更新是什麼時候,就該先把清冊做出來,再談要不要買更多資安工具。

ℹ️我們做過這件事

這篇講的更新流程,是我們 10 月 27 日在自己的 Mac mini 上實際跑過的:從 2026.3.0 升到 2026.10.4,中斷約 15 秒。部署與維運也是我們 40+ 企業客製案落地時一定會處理的環節。看到這裡,如果你也在想「公司的 Tunnel 到底有沒有人在顧」,我們很樂意聽你聊聊現在的實際情況,一起看看從哪裡開始整理最省力。

Qcloudflared 一定要升到 2026.10.4 嗎?

Cloudflare 通知信的最低要求是 2026.10.2;macOS 上沒用 Homebrew 安裝的,最低是 2026.10.3。目前最新版是 10 月 26 日釋出的 2026.10.4,既然要動,直接升到最新版最省事。

Q怎麼知道公司有沒有在用 Cloudflare Tunnel?

最快的方式是看有沒有收到 Cloudflare 的通知信,信裡會說你的帳號至少有一條 Tunnel。也可以登入 Cloudflare Zero Trust 控制台查看 Tunnel 清單,每個連接器都會顯示主機與版本。

Q更新 cloudflared 會讓網站或系統斷線嗎?

會短暫中斷。cloudflared 更新後要重新啟動,單一實例時正在處理的連線會被切斷。我們自己實測,從升級到 Tunnel 恢復大約 15 秒。同一條 Tunnel 跑兩個以上實例,就能輪流升級不停機。

Q我們用 Docker 跑 cloudflared,要怎麼更新?

把映像標籤改成 cloudflare/cloudflared:2026.10.4,拉下新映像後重新部署容器。只重新啟動舊容器沒有用,映像檔裡的程式還是舊版。建議把版本寫死並搭配 Renovate 或 Dependabot 追蹤新版。

Q升級後出現憑證錯誤,可以先關掉驗證嗎?

請不要。Cloudflare 特別提醒不要用關閉驗證來處理這類錯誤。出現錯誤代表那條連線用到不再被信任的憑證,正確做法是換掉對方的憑證或更新信任清單。

Q員工電腦上的 WARP 也要更新嗎?

要。Cloudflare One Client(WARP)Windows、macOS、Linux 版要到 2026.8.2115.0 以上,Android 與 iOS 也各有最低版本。用 Gateway 且用戶端保持最新的公司,Cloudflare 表示已自動受到保護。

分享文章
恆

AUTHOR

恆遠數位編輯團隊

查看作者頁

留言(0)

尚無留言,成為第一個留言的人吧!

需要網站系統架設或軟體開發?

無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。