Forgejo 16.0.4 修補模板倉庫 RCE:自託管實例應立即升級

Forgejo 16.0.4 修補模板倉庫 RCE:自託管例項應立即升級

漏洞與修補

Forgejo 發布 16.0.4 與 15.0.8,修復一個影響舊版本的嚴重遠端程式碼執行漏洞。問題出在「由模板建立新倉庫」流程:Forgejo 先複製模板、移除 .git、對 .forgejo/template 列出的檔案做變數展開,再初始化新的 Git 倉庫。惡意模板可在展開階段重新建立 .git 目錄,讓後續 Git 初始化採用攻擊者控制的內容,進而讀取主機資料或執行任意程式。

LWN 引述 Forgejo 的修補說明,修復方式是在變數展開完成後再次移除任何 .git 目錄,再執行初始化。相同版本也修正 API 編輯許可權檢查,避免受限範圍的存取權杖修改超出其授權的分支或內容。OpenCVE 將模板漏洞列為 CVSS 3.1 9.9 Critical;正式環境仍應以 Forgejo 公告和自身暴露面判斷風險。

為何模板功能值得重視

模板倉庫通常被視為低風險的專案初始化工具,但它會在伺服器檔案系統和 Git 操作之間傳遞不受信任內容。只要模板可由外部使用者建立、匯入或被自動化流程選取,就可能成為跨越「資料檔案」與「可執行 Git metadata」邊界的攻擊面。這類漏洞不需要攻擊者先取得主機 shell,風險取決於誰能觸發生成流程及 Forgejo 服務帳戶的許可權。

管理員行動清單

先升級至 16.0.4 或 15.0.8,並確認反向代理、備份和 CI 服務沒有把舊版本重新部署。升級前保留審計日誌與可疑模板的副本,檢查近期生成倉庫是否出現非預期 .git 內容、異常程式或服務帳戶憑證存取。若例項允許不受信任使用者建立模板,應暫時收緊許可權,直到完成版本升級和事件檢查。

來源