---
title: "Woodpecker CI 3.20 集中修補保安問題 並以 3.20.1 修正非預期破壞性變更"
url: https://sammy.hk/woodpecker-ci-3-20-released/
author: Ethan
published: 2026-11-01T16:07:00+08:00
modified: 2026-11-01T10:14:07+08:00
description: "自架持續整合工具 Woodpecker CI 於 2026 年 10 月 28 日發布 3.20.0，緊接著次日再推出 3.20.1。3.20.0 更新環境變數替換模組時引入非預期的破壞性變更，官方在發布說明中直接標明請改用 3.20.1；3.20.1 修復 drone 風格的 envsubst 行為、步驟日誌群組介面…"
categories: ["開放源碼"]
tags: [Woodpecker CI, "保安修補", "持續整合", "開源"]
source: https://sammy.hk
---
![Woodpecker CI 3.20 集中修補安全問題 並以 3.20.1 修正非預期破壞性變更](https://sammy.hk/wp-content/uploads/2026/11/og_35645.jpg)自架持續整合工具 Woodpecker CI 於 2026 年 10 月 28 日發布 3.20.0，緊接著次日再推出 3.20.1。3.20.0 更新環境變數替換模組時引入非預期的破壞性變更，官方在發布說明中直接標明請改用 3.20.1；3.20.1 修復 drone 風格的 envsubst 行為、步驟日誌群組介面，以及 Go 套件依賴 \[1\]\[2\]。

## 安全修補集中於漏洞與權限

3.20.0 的安全改動數量明顯多於功能更新。最值得注意的，是把 agent token 從程序的作業系統環境變數中移除，並確保 CLI 自我更新只可針對 CLI 的安全目標，避免被引導至其他路徑。已撤銷權限的環境管理員，現在會堅持撤銷狀態直達伺服器重啟，不再因連線狀態變化而復權；修復儲存庫時會旋轉儲存庫的 JWT。

其他加固包含：收斂組織層級密鑰與映像值庫的簽發表的儲存範圍；修正並加固設定檔抓取流程；在登入頁只為 http 或 https 的錯誤 URI 建立連線；不再於 trace 日誌層別記錄 bearer 漏洞；以及在代理伺服器端由設定解析引發的 panic 中恢復。官方特別感謝研究人員 baradika 回報保安漏洞。

## 手動流程與代理資源分配

功能方面，手動觸發的 pipeline 現在可以選擇要執行哪一個 workflow，對於一個倉庫內有多條流程的圖鑒更為實用。管理員可限制組織或個人用戶只使用自己所屬的 agent，配合既有的 agent 標籤機制，可減少跨圖鑒搶佔執行資源。

3.20.0 同步新增 CI\_REPO\_ID 環境變數，讓步驟可直接取得倉庫編碼；佇列的暫停狀態會在伺服器重啟後保留，不再自動恢復執行；佇列排程運算亦已加速。部署時 pipeline 的作者會改以工作階段用戶取代，重啟 pipeline 時才會審核核心貢獻者資訊。介面方面，深色主題經過重做，CLI 的 lint 指令會優先採用偵測到的 Woodpecker 設定檔。

## 修正與升級注意

多項修正針對佇列與後端的邊界情況：佇列重負載後，depends\_on 的 workflow 在依賴失敗後仍繼續執行，現已修正；Kubernetes 後端不再把已刪除的未知 pod 回報為成功；agent 會正確遵循 keepalive 時間與逾時標記。GitLab、Gitea 與 Forgejo 的 annotated tag 現可正確解析 commit SHA，GitLab 標籤 pipeline 的作者改由 webhook metadata 取得。

此外，沒有填寫 enabled 欄位的 cron 現在會正常啟用，SQLite 資料庫鎖定時建立 pipeline 會重試，OOM 錯誤也會正確向上拋棄。

升級時請直接採用 3.20.1，跳過 3.20.0。若現有流程依賴舊有環境變數替換行為，或自簽步驟機頻讀取 agent token 環境變數，升級前請先在測試環境驗證，因為這兩項行為在 3.20 系列均有變動 \[1\]\[2\]。

## 參考資料

\[1\] [Release 3.20.0（2026-10-28）](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.20.0)

\[2\] [Release 3.20.1（2026-10-29）](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.20.1)

### 相關文章：

1. [GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中](https://sammy.hk/github-%e7%94%a8-ai-%e4%bb%a3%e7%90%86%e6%8a%8a-copilot-%e5%9f%b7%e8%a1%8c%e6%99%82%e9%87%8d%e5%af%ab%e7%82%ba-rust%ef%bc%9a832378-%e8%a1%8c%e8%88%87-96-%e6%8f%90%e7%a4%ba%e5%bf%ab%e5%8f%96%e5%91%bd/ "GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中")
2. [Gzip 1.15 修好一批自問世以來就存在的 bug](https://sammy.hk/gzip-1-15-%e4%bf%ae%e5%a5%bd%e4%b8%80%e6%89%b9%e8%87%aa%e5%95%8f%e4%b8%96%e4%bb%a5%e4%be%86%e5%b0%b1%e5%ad%98%e5%9c%a8%e7%9a%84-bug/ "Gzip 1.15 修好一批自問世以來就存在的 bug")
3. [GNOME 51 發佈：圖形效能、系統設定與離線地圖齊齊更新](https://sammy.hk/gnome-51-%e7%99%bc%e4%bd%88%ef%bc%9a%e5%9c%96%e5%bd%a2%e6%95%88%e8%83%bd%e3%80%81%e7%b3%bb%e7%b5%b1%e8%a8%ad%e5%ae%9a%e8%88%87%e9%9b%a2%e7%b7%9a%e5%9c%b0%e5%9c%96%e9%bd%8a%e9%bd%8a%e6%9b%b4%e6%96%b0/ "GNOME 51 發佈：圖形效能、系統設定與離線地圖齊齊更新")
4. [KDE Plasma 6.8 進入測試階段：十月十四日與 KDE 三十週年同日推出](https://sammy.hk/kde-plasma-6-8-%e9%80%b2%e5%85%a5%e6%b8%ac%e8%a9%a6%e9%9a%8e%e6%ae%b5%ef%bc%9a%e5%8d%81%e6%9c%88%e5%8d%81%e5%9b%9b%e6%97%a5%e8%88%87-kde-%e4%b8%89%e5%8d%81%e9%80%b1%e5%b9%b4%e5%90%8c%e6%97%a5%e6%8e%a8/ "KDE Plasma 6.8 進入測試階段：十月十四日與 KDE 三十週年同日推出")
