觀點 · 資訊分享
Gitea 28.3.0 一次修 21 個 CVE:「只限公開」的存取權杖破功,自架 Git 的人該升級了
自架 Git 服務 Gitea 在 11 月 1 日發布 28.3.0,一口氣修補 21 個 CVE,大多和存取權杖的權限範圍有關,其中幾個能刪光組織的儲存庫、讓工作流程偷跑拿到 secrets。官方建議所有人盡快升級。
- 發布
- 2026-11-01
- 篇幅
- 約 4 分鐘 · 1,830 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:自架 Git 服務 Gitea 發布 28.3.0,一次修補 21 個 CVE,多半是存取權杖的權限範圍沒擋好,所有自架的人都該升級。

先用白話講:Gitea 和「只限公開的權杖」是什麼?
Gitea 是可以自己架的 Git 服務,功能類似 GitHub,很多人把它裝在 NAS 或小主機上放公司或個人的程式碼。
存取權杖(access token) 就像一張給程式用的通行證,讓腳本、CI 工具不用帳密也能操作 Gitea。建立通行證時可以勾「只限公開資源」(public-only),意思是:就算這張通行證被人撿走,也只能看公開的東西。
這次的問題就是,這張「只能進大廳」的通行證,其實有很多側門沒檢查,拿著它也能走進會議室。
發生什麼事
Gitea 在 11 月 1 日發布 28.3.0,這是 28 系列的第三個維護版本,官方公告列出 21 個 CVE,並寫明強烈建議所有使用者盡快升級。同一天 NVD 也公開了這批 CVE,受影響範圍標為 28.3.0 以前的版本。
比較需要注意的幾個:
- 刪光組織儲存庫:組織擁有者的「只限公開」權杖,可以呼叫刪除 API,把組織內所有儲存庫連私有的一起刪掉(CVE-2026-119441)
- 管理 API 沒擋:管理員的「只限公開」權杖能列出所有使用者的 email、甚至新增管理員(CVE-2026-117635)
- 工作流程偷跑:只有讀取權限的人送出特製的 PR 審查,就能讓工作流程不經核准執行,還帶著儲存庫的 secrets 和可寫入的權杖(CVE-2026-118386)
- Actions 權杖看太多:工作裡的
GITEA_TOKEN能列出整台站台所有私有儲存庫的名稱與資訊,但內容本身仍有權限保護(CVE-2026-112887) - 不用密碼登入別人帳號:設成
ACCOUNT_LINKING = auto(非預設)又開放註冊時,用外部帳號登入的人可以填入別人的帳號名稱並直接登入(CVE-2026-120263)
其他還有 Actions 產物可被做成會執行腳本的網頁(儲存型 XSS)、Helm 套件上傳可以用高壓縮檔拖垮伺服器等問題。
會影響誰
| 你的狀況 | 風險 |
|---|---|
| 有開放註冊、多人共用 | 高,帳號連結與權杖問題都可能被利用 |
| 有用 Gitea Actions 跑 CI | 高,secrets 可能外流 |
| 只有自己用、沒對外 | 較低,但仍建議升級 |
給開發者的技術細節
- 版本:升到 28.3.0;這版共合併 60 個修正
- 官方執行檔改用 Go 1.27.3 建置,不再信任一批有疑慮的中繼憑證,影響 OAuth2、Webhook、鏡像等對外連線;如果升級後某個對外連線出現憑證錯誤,可能跟這個有關
- 審查觸發的工作流程(
pull_request_review)改成以 PR 本身的分支為準 - 使用者個人頁現在把帶權杖的請求當成匿名訪客;使用者與組織的 RSS 動態需要
read:user或read:organization範圍 - 升級後建議撤銷不再使用的權杖,尤其是管理員與組織擁有者發過的
我的看法
自架 Gitea 的人,很多是把它丟在 NAS 上就沒再管,版本可能停在好幾個月前。這次的漏洞大多需要對方先有帳號或權杖,單人使用的站台風險相對低,但只要有開放註冊、讓客戶或外包夥伴進來,或有用 Actions 放部署金鑰,就真的該排時間升級。
我也會趁這次把權杖清一輪:不用的直接撤銷,CI 用的權杖只給最小範圍。「只限公開」這種限制本來是最後一道防線,這次證明它不一定可靠,別把安全全押在它身上。
名詞小辭典
- CVE:漏洞的國際編號,方便大家指稱同一個問題。
- 存取權杖(Access Token):給程式用的通行證,可以設定能做哪些事。
- Gitea Actions:Gitea 內建的自動化流程,類似 GitHub Actions,用來跑測試、部署。
- Secrets:存在 CI 裡的機密設定,例如部署用的金鑰與密碼。