觀點 · 資訊分享
自架 Postiz 連修 2 個高危漏洞:註冊帳號就能偽造登入權杖、讀走伺服器檔案,請升到 v2.25.3
開源社群貼文排程工具 Postiz 在 10 月 24 日發布 v2.25.3,修正兩個 CVSS 9.6 以上的漏洞:一般註冊用戶可以偽造登入權杖接管別人的組織,也可能讀走伺服器上的檔案。開放註冊預設是開啟的。
- 發布
- 2026-10-25
- 篇幅
- 約 4 分鐘 · 1,991 字
- 結構
- 6 節 + 4 題常見問題
- 標籤

一句話看懂:自架版 Postiz(社群貼文排程工具)在 10 月 24 日修正兩個高危漏洞:只要有一般註冊帳號,就能偽造登入權杖接管別人的組織,或讀走伺服器上的檔案;請升到 v2.25.3。

先用白話講:這兩個洞像什麼?
Postiz 是開源的社群貼文排程工具,可以自己架在主機上:一個後台管理多個社群帳號,預先排好貼文。
想像一棟大樓發門禁卡給住戶。第一個洞像是:大樓有個「代刻卡」櫃台,住戶自己申請時,櫃台把住戶寫的內容原封不動蓋上正式印章,結果住戶拿到一張「想寫成誰就是誰」的正式門禁卡。第二個洞像是:大樓的「寄件櫃台」,會去拿住戶指定的任何檔案寄出去,連放備用鑰匙的抽屜也能拿。
發生什麼事
Postiz 在 10 月 24 日發布 v2.25.3,同時公布兩份資安公告。官方的時間線是:10 月 23 日由 Anthropic(回報者列名為 Anthropic, PBC)通報並附上可重現的範例,Postiz 當天重現問題,10 月 24 日修好、發布版本與公告。
| 項目 | 偽造權杖(CVE-2026-115933) | 讀取伺服器檔案(CVE-2026-115932) |
|---|---|---|
| CVSS | 9.9 | 9.6 |
| 影響版本 | 2.15.0 起 | 2.23.0 起 |
| 問題 | 登入、邀請、重設密碼的權杖共用同一把金鑰簽章,其中一個路由會替請求裡的內容簽章並回傳 | 發布貼文時,沒有檢查媒體路徑是否在上傳資料夾內 |
| 攻擊者能做到 | 以其他使用者身分登入、重設密碼、以超級管理員加入別人的組織、讀取 API 金鑰、排程貼文 | 讀走發佈 worker 讀得到的任何檔案,經由 Discord 附件取走 |
| 前提 | 一般註冊帳號;實例能連到 Skool 的服務 | 一般註冊帳號;啟用 Discord 提供者(或其他次要路徑) |
- 註冊預設是開放的,除非設定
DISABLE_REGISTRATION=true - 官方說明偽造出來的權杖不會過期,也和真的無法區分
- 讀檔漏洞可能讀到簽章金鑰、資料庫位址、各提供者的金鑰,官方指出出貨的容器以 root 執行 worker,所以 root 讀得到的檔案都在範圍內
- 官方證實過完整的攻擊流程:第二個自行註冊的使用者,成為另一個使用者組織的超級管理員,並讀到它的 API 金鑰
給開發者的技術細節
DISABLE_REGISTRATION=true
- 升級:v2.25.3 的發行說明寫明,兩份公告的問題都已修正,建議所有使用者立刻升級
- 暫時措施(官方列出):關閉註冊;不用瀏覽器擴充功能的頻道,就在反向代理擋掉
POST /integrations/extension-refresh,這會移除主要的簽章路徑,但團隊邀請的路由還在;不需要 Discord 提供者,就讓它的 client id、client secret、bot token 保持空白,這只移除主要路徑 - 官方也強調:這些暫時措施只能縮小範圍,不能取代升級
- 偽造權杖的後續:官方沒有說明升級後舊權杖是否失效,保險的做法是更換簽章用的金鑰,讓所有舊權杖作廢(這是我的推論),並檢查有沒有不明的使用者或組織
我的看法
社群排程工具特別值得小心:它手上握著所有社群帳號的授權,一旦被接管,攻擊者可以用你的品牌帳號發文。而這次兩個漏洞的門檻都只是「一般註冊帳號」,Postiz 又預設開放註冊,換句話說,只要你的實例對外開放,任何人註冊一個帳號就有機會試。
如果你自架這類工具,我的做法會是:升級之後,先關掉不需要的公開註冊;把服務放在登入保護或內網之後,不要直接暴露在網路上;容器盡量不要用 root 執行;並且定期看一下使用者與組織清單有沒有不認得的名字。至於升級後要不要換掉簽章金鑰,我偏向換,因為官方說偽造的權杖不會過期,換金鑰是最直接讓舊權杖全部失效的方法。
名詞小辭典
- 權杖(Token):伺服器發給你的一張「通行證」,證明你已經登入,內容有簽章防止被竄改。
- 簽章金鑰(JWT secret):用來替權杖蓋章的祕密,誰拿到它,就能自己蓋出看起來合法的權杖。
- 路徑穿越(Path traversal):利用路徑寫法跳出原本限定的資料夾,讀到不該讀的檔案。
- 反向代理(Reverse proxy):放在伺服器前面、替它轉送請求的服務,常用來擋掉可疑路徑。