觀點 · 資訊分享

WordPress 活動行事曆外掛 The Events Calendar 兩個 9.8 分漏洞:活動頁開著留言就可能被遠端控制

9 月 12 日公開的 CVE-2026-78159 與 CVE-2026-78006,都是 The Events Calendar 外掛的遠端程式碼執行漏洞,未登入的人就能觸發,前提是活動頁面開著留言。外掛的更新日誌顯示,相關的強化修正已在 6.17.4.1 釋出,建議升到更新的版本。

發布
2026-09-13
篇幅
約 4 分鐘 · 2,011 字
結構
7 節 + 3 題常見問題
標籤
#WordPress#The Events Calendar#CVE-2026-78006#遠端程式碼執行
WordPress 活動行事曆外掛 The Events Calendar 兩個 9.8 分漏洞:活動頁開著留言就可能被遠端控制

一句話看懂:WordPress 的活動行事曆外掛 The Events Calendar 有兩個 CVSS 9.8 的遠端程式碼執行漏洞,沒登入的人只要在開著留言的活動頁面送出特製留言,就可能在伺服器上執行程式;更新外掛是最直接的處理方式。

活動行事曆外掛爆遠端執行漏洞資訊圖卡:活動頁開著留言,沒登入的人也可能在你的伺服器上執行程式

先用白話講:留言怎麼會讓網站被控制?

想像網站是一間餐廳,留言區像門口的意見箱。通常你只會把紙條投進去,店員唸一唸就好。但這個外掛處理活動頁面的方式,有點像店員拿到紙條後,不只唸出來,還把紙條上特殊格式的內容當成「指令」去照著做;攻擊者只要寫一張格式特製的紙條,就能叫店員做不該做的事。

專業一點說:外掛在顯示單一活動頁面時,會把頁面(包含留言區)裡的區塊(block)標記拿去解析。如果留言裡夾帶特製的區塊內容,驗證又沒做好,就會走到會執行程式碼的地方。

發生什麼事

2026 年 9 月 12 日,NVD 公開兩筆 The Events Calendar 的 CVE,由 Wordfence 提報,CVSS 評分都是 9.8,攻擊者不需要登入:

編號 影響版本 重點
CVE-2026-78159 6.17.3 以下 小工具的 classes 欄位驗證不足,簡單陣列內容能繞過物件檢查,走到會呼叫函式的地方;需要活動頁面開著留言,且已有人送出含特製 legacy widget 區塊的留言
CVE-2026-78006 6.17.4 以下 檢查複製小工具的 is_safe_widget_instance 可以被繞過;外掛的單一活動模板會對留言的 HTML 做區塊處理,而 WordPress 又會讓未登入的留言者立刻看到自己「待審」的留言,所以特製內容在審核前就被處理了;同樣需要留言開啟且顯示在活動頁面

我該怎麼辦?

  • 先看版本:到後台的外掛頁面,確認 The Events Calendar 的版本
  • 更新外掛:外掛的更新日誌中,6.17.3(8 月 20 日)、6.17.3.1(8 月 26 日)、6.17.4.1(9 月 10 日)都有「強化複製的小工具實例驗證」的安全條目;更新日誌沒有直接寫 CVE 編號,所以這是依描述的推測。建議至少升到 6.17.4.1,實際上直接升到最新版最保險
  • 檢查是否需要留言:活動頁面如果本來就不需要訪客留言,把留言關掉;官方沒有把這個列為解法,這是我依觸發條件做的判斷
  • 後續(9 月 17 日、24 日):外掛又釋出 6.17.5 與 6.17.5.1,內容包含 REST API 存取檢查、QR Code 小工具渲染等更多安全強化

給開發者的技術細節

  • 兩個漏洞的核心都跟小工具(widget)資料的驗證有關:攻擊者把特製的區塊標記放進留言,外掛在處理活動頁時呼叫 do_blocks(),讓標記進入有風險的程式路徑;其中 CVE-2026-78006 的描述還提到反序列化(unserialize())
  • 值得學的一點:「待審留言」不等於安全。WordPress 會替留言者產生審核用的連結,讓他在審核前也能看到自己的留言,如果外掛在這個階段就處理留言內容,審核機制就形同虛設
  • 如果你自己寫外掛或主題,凡是會對「使用者提供的 HTML」呼叫 do_blocks() 或 unserialize(),都要特別小心,輸入要先過濾,並避免讓使用者控制要被反序列化的內容

我的看法

幫中小企業做 WordPress 網站時,最常見的情況是:客戶裝了一堆外掛,裝完就沒人更新。這種「漏洞公開了,但站台沒人看」的狀況,正是攻擊者最喜歡的目標。這次的漏洞有條件限制(要開著留言),但也提醒我:外掛的預設功能,不見得都是網站真的需要的。

我的習慣是兩件事:第一,外掛排進定期更新,而不是等出事;第二,用不到的功能(例如活動頁留言)就關掉,攻擊面越小越好。接案的人也可以把「外掛更新與盤點」寫進維運合約的條款,不然客戶出事時,常常會變成雙方都說不清楚責任歸屬。

名詞小辭典

  • 遠端程式碼執行(RCE):攻擊者能讓你的伺服器執行他指定的程式碼,風險最高的一類漏洞。
  • CVE / NVD:CVE 是漏洞的公開編號;NVD 是美國政府維護的漏洞資料庫,會收錄並提供各漏洞的詳細資料。
  • 區塊(block):WordPress 區塊編輯器用來組成頁面的內容單位。
  • 反序列化(unserialize):把儲存或傳輸的資料還原成程式物件,處理不安全的輸入時可能被利用。

資料來源

常見問題

我的網站有影響嗎?
要同時符合:有安裝 The Events Calendar 外掛、版本低於修正版,而且活動頁面(單一活動)有開放留言並顯示留言區。三個條件缺一個,這兩個漏洞的觸發條件就不成立,但外掛本身仍建議更新。
什麼是遠端程式碼執行?
攻擊者可以讓你的伺服器執行他指定的程式碼,通常代表整個網站甚至主機都可能被控制,是風險最高的一類漏洞。這兩個漏洞的評分是 9.8(滿分 10)。
不能馬上更新的話怎麼辦?
官方資料沒有提供暫時解法。從漏洞描述可知,觸發需要活動頁面開著留言,所以先把活動頁面的留言關掉,理論上可以去掉觸發條件,但這是我的判斷,不是官方說明;仍應盡快更新外掛。
LINE