威脅情報

CVE-2026-60004 — Gitea 程式碼注入導致伺服器上的指令執行

CVE-2026-60004 是 Gitea diffpatch 端點的程式碼注入(CWE-94、CVSS 9.8、KEV),已在 1.27.1 修補。為何開放註冊會滿足寫入權限條件。

發布於 2026-09-05 更新於 2026-10-04 最後核實 2026-09-05 閱讀時間 3 分鐘
本頁內容

這是一份針對已確認遭到利用(列於 CISA KEV)之漏洞的簡報:說明發生什麼事、哪些系統受影響,以及應採取什麼行動。內容從防禦者角度撰寫,不提供重現步驟。

公告摘要
CVE
CVE-2026-60004
嚴重程度
嚴重(CVSS 9.8,v3.1;NVD 記錄的分數歸於 CVE 編號機構)
類別
程式碼注入(CWE-94)
影響
安裝惡意 Git hook → 以 Gitea 作業系統使用者身分執行指令
受影響範圍
依廠商公告為 Gitea 1.17 – 1.27.0。已在 1.27.1 修補
遭利用情形
列於 CISA KEV(2026 年 8 月 25 日新增,期限為 8 月 28 日)。勒索軟體活動的使用情形記錄為「未知」
可能性
EPSS 0.868(依據 2026-09-05 本站資料來源)— 最高級別
9.8
CVSS v3.1
1.27.1
修補版本
0.868
EPSS(估計遭利用機率)
KEV
野外已遭利用

不要把「需要權限」當作安心的理由

解讀 A(CISA 的描述)

「具備儲存庫寫入權限的攻擊者」— 看起來有條件限制

解讀 B(CVSS 向量)

PR:N — 不需權限

↓ 廠商公告說明了兩者

啟用開放註冊時

註冊 → 建立儲存庫 → 自行授予攻擊所需的寫入權限

如果所需權限可以透過註冊取得,權限條件對攻擊者來說只會增加一個步驟:建立帳號。

以「但它需要權限 X」來安慰自己,是誤判漏洞的常見方式。關鍵不在於誰持有該權限,而在於該權限能否從外部取得。開放註冊、免邀請註冊、預設授予的權限,只要權限有取得途徑,它就不算是真正的條件。

這與常見安全錯誤是假設上的失誤中的第 ② 項相同。另外,應透過 HTTP 檢查註冊路徑,而非只看設定檔(驗證與授權的差異)。

漏洞是什麼

取自廠商公告
路徑
diffpatch 端點在共用的暫存複製中套用修補時處理不當
結果
可能安裝惡意的 Git hook(hooks/post-index-change)
觸發
Git 寫入索引時,該 hook 以 Gitea 作業系統使用者身分執行
可由此存取
應用程式密鑰、資料庫憑證、OAuth 權杖、掛載的儲存庫
前提條件
廠商指出利用此漏洞需要 Git 2.32 以上版本、已啟用 diffpatch 路由,以及可寫入且可執行的暫存檔案系統

更新後,植入的 Git hook 仍會留存,因此更新並非終點

此漏洞最終會在伺服器上留下可執行的內容。更新會關閉安裝它的路徑,但不會移除已經安裝的任何內容。

Git hook 的設計本來就是合法的遠端執行點,因此一旦存在,看起來並不可疑。能區分正當維護與後門的,只有建立者是誰、是否經過授權,以及是否留有紀錄。修補漏洞後,請檢查攻擊者可能留下的任何東西。請勿跳過這一步。

該怎麼做

1

更新至 1.27.1 或更新版本(主要動作)

廠商公告列出受影響範圍為 1.17 – 1.27.0,修補版本為 1.27.1。從這裡開始。沒有人會替您更新自架的執行個體。請先依照CVE 修補手冊確認正在執行的版本。

2

實際檢查註冊設定

如上所述,是否啟用開放註冊,實際上決定了權限條件是否存在。請不要只看設定,而是登出後開啟註冊頁面,觀察會發生什麼事。若為內部執行個體,請關閉註冊,並在網路層限制可連線範圍,而不是只依賴驗證。

3

檢查是否有您不認得的 hook 與檔案

更新後,請檢查儲存庫 hook 目錄中是否有您未放置的腳本、非預期的可執行檔,以及 Gitea 程序是否有陌生的對外連線。關鍵問題不是「我們有沒有更新」,而是**「是否有任何東西被留下」**。

4

若有合理的入侵跡象,將可被存取的範圍視為已外洩

廠商列出可被存取的項目包括應用程式密鑰、資料庫憑證與 OAuth 權杖。若檢查無法確定結果,請記住**「我們不知道」不等於「沒有發生任何事」**,應予以輪替。密鑰處理方式請參閱.env 與 API 金鑰的風險。

5

重新評估這項選擇(不必急於決定)

自行架設意味著必須自行負責更新。權衡取捨請參閱自架 Git 與 GitHub 何者較安全。這不是要求您遷移的論點,而是要您根據自己是否真的能持續套用更新來做決定。

本站觀點:CVSS 與 KEV 衡量的是不同事物,兩者都應參考

這個案例正是我們在以 CVSS、EPSS 與 KEV 進行 CVE 分級中所述的實際例子。CVSS 說明技術上的嚴重程度,CISA 的條目說明實際被如何利用,EPSS 則估計遭利用的機率,三者衡量的是不同面向。

這裡 CVSS 的 PR:N 與 CISA 的「需要寫入權限」看起來互相矛盾。若只讀其中一個,您可能會得出「需要某種權限,因此可以延後處理」的結論。不一致通常不是資料有誤,而是有某個前提被忽略了的訊號。在這個案例中,廠商公告已經提供了答案(開放註冊)。

資料來源(原始)

  • Gitea 安全公告 GHSA-rcr6-4jqh-j84m — github.com(受影響 1.17–1.27.0/1.27.1 修補/權限條件與開放註冊的關係/可被存取的範圍/前提條件)
  • NIST NVD,「CVE-2026-60004」— nvd.nist.gov(CVSS v3.1 9.8、向量、CWE-94;狀態 Analyzed)
  • CISA 已知遭利用漏洞目錄 — cisa.gov(2026 年 8 月 25 日新增,期限 8 月 28 日,勒索軟體活動使用情形「未知」)
  • Gitea,「Release of 1.27.1」— blog.gitea.com

所有資料均於 2026 年 9 月 5 日核對。本站不發布重現步驟,也不連結任何概念驗證程式碼。

延伸閱讀

FAQ

QCVE-2026-60004 會發生什麼事?
A

根據廠商的安全公告,diffpatch 端點在套用修補時處理不當,結果可能安裝惡意 Git hook(hooks/post-index-change)。該 hook 會在 Git 寫入索引時以 Gitea 作業系統使用者身分執行。廠商列出的可被存取項目包括應用程式密鑰、資料庫憑證、OAuth 權杖及掛載的儲存庫。

Q是否需要驗證?CVSS 寫明不需要權限,CISA 則寫需要儲存庫寫入權限。
A

兩者都正確,並不衝突。廠商公告指出必須具備儲存庫寫入權限,並說明若啟用開放註冊,未驗證的使用者可以自行註冊帳號並建立儲存庫,從而取得該權限。換言之,當所需權限任何人都能取得時,它實際上就不算是條件,這也是 CVSS 向量所反映的內容。

Q哪些版本受影響,如何修補?
A

廠商公告列出受影響範圍為 1.17 至 1.27.0,修補版本為 1.27.1。修補方式是更新至 1.27.1 或更新版本。自架的 Gitea 不會自動更新,因此執行個體閒置越久,暴露的時間就越長。

Q更新是否就已足夠?
A

更新是主要動作,但並非全部工作。此漏洞最終會在伺服器上留下可執行的檔案,也就是 Git hook。更新會關閉安裝該檔案的路徑,但不會移除已經安裝的內容。更新後,請檢查是否有您不認得的 hook 或檔案,並確認註冊設定符合您的預期。若有合理跡象顯示可能已遭入侵,請將廠商列出的可被存取項目(密鑰、資料庫憑證、OAuth 權杖)視為已外洩,並予以輪替。