資安指南

GitLab CVE-2026-110264(CVSS 10.0):如何檢查並更新自架 GitLab

GitLab 於 2026 年 10 月 21 日發布的重大修補版本修復了 CVE-2026-110264(CVSS 10.0),該漏洞可能讓未經驗證的使用者在伺服器上執行程式碼。內容包括受影響版本、修補版本、必須經過的升級停靠點,以及相關的 Ruby 正規表示式修補(4.0.9、3.4.12、3.3.13)。

發布於 2026-10-25 更新於 2026-10-25 最後核實 2026-10-25 閱讀時間 5 分鐘
本頁內容

適用對象:在自有伺服器或雲端上執行 GitLab 的管理員(自架),以及使用 Ruby 開發應用程式的開發者。本頁依據 GitLab 的修補發布公告、Ruby 的官方公告、美國國家漏洞資料庫(NVD)與 CISA 的公開資料撰寫,不說明攻擊的運作方式。

続報待ち:この記事は公式発表に合わせて更新します

截至 2026 年 10 月 25 日 08:00(JST)

まだ分かっていないこと

  • 可觸發此漏洞的確切條件(GitLab 只表示「在特定條件下」)
  • 利用狀態是否有任何變化(公開時未有報告)
  • NVD 自身的評估(分析中)

GitLab 於 10 月 21 日發布修補版本,Ruby 團隊於 10 月 23 日發布修正版本。目前沒有遭利用的報告,此漏洞也未列入 CISA 的 KEV 目錄。GitLab 表示,細節將於發布後 90 天公開。若情況有變,本頁將會更新。

今天該做什麼(自架 GitLab)

1

檢查版本

在 Linux 套件(Omnibus)安裝上,於執行 GitLab Rails 的節點執行 sudo gitlab-rake gitlab:env:info,版本會顯示在「GitLab information」區段。以管理員身分登入後,也可以在管理區域看到版本。若為多節點架構,請逐一檢查每個節點。

2

升級到同一版本線的修補版本

若你目前是 19.4.x,請升級到 19.4.3;若是 19.3.x,請升級到 19.3.6,依此類推。本站認為,同一次要版本線內的修補升級通常不需要經過升級停靠點(仍建議用 GitLab 的工具確認)。GitLab 表示,單節點執行個體應預期停機,因為 GitLab 要等到遷移完成後才會啟動。多節點執行個體可使用零停機升級流程。

3

若是較舊版本,先檢查升級停靠點

GitLab 定義了不可跳過的必要升級停靠點。截至 2026 年 10 月,清單包括 GitLab 18 的 18.2、18.5、18.8 與 18.11,以及 GitLab 19 的 19.2、19.5、19.8 與 19.11(在 GitLab 19 的停靠點中,19.2 與 19.5 已發布)。請在 GitLab 的升級路徑工具中輸入目前版本與目標版本,以取得必須經過的版本。GitLab 表示,必須先升級到這些版本,才能升級到之後的版本,並且在每個停靠點都要等待背景遷移完成。

4

若無法立即升級,限制可連線的對象

GitLab 的公告除了升級之外沒有提供其他緩解方法。在完成升級前,本站建議以防火牆或 VPN 讓 GitLab 無法從網路外部連線,並關閉新帳號註冊。這兩項措施都無法關閉漏洞,因此仍要持續推進升級。

5

尋找入侵痕跡

GitLab 已為自架使用者發布兩項威脅偵測(公告中「Detecting CVE-2026-110264 Exploitation Attempts」一節)。若你有記錄監控,請載入這些規則。也請檢查不明的程序、檔案、管理員帳號與外連連線。請參閱如何檢查伺服器是否遭入侵。

我會受影響嗎?快速對照表

你執行的版本CVE-2026-110264(重大)同一次發布中的高風險與其他漏洞目標版本
19.5.x,低於 19.5.1受影響受影響19.5.1
19.4.x,低於 19.4.3受影響受影響19.4.3
19.3.x,低於 19.3.6受影響受影響19.3.6
19.0.x 至 19.2.x受影響(已在 19.0.10、19.1.9、19.2.9 修復)僅在 19.3.6 及之後修復19.3.6 或更新版本
18.11.x,低於 18.11.13受影響(已在 18.11.13 修復)僅在 19.3.6 及之後修復19.3.6 或更新版本
18.10 及更舊版本(7.0 起)受影響視漏洞而定透過升級停靠點升級到較新版本
GitLab.com已修補已修補無需處理
GitLab Dedicated自 19.3.5-internal0、19.4.2-internal0 起已修補相同無需處理(依 GitLab 說明)

其他各漏洞的受影響範圍不同(例如 CVE-2026-15723 自 10.1 起,CVE-2026-112212 自 18.3 起)。確切範圍請參考 GitLab 公告中的表格。

目前版本

修補前,重大漏洞仍存在

18.11.13 至 19.2.9

重大漏洞已修復,高風險漏洞仍存在

19.3.6 / 19.4.3 / 19.5.1

本次發布的所有修補

18.11 至 19.2 的修補是暫時停靠點,只修復重大漏洞。高風險漏洞的修補要從 19.3.6 起才會提供。

已揭露的內容(取自 GitLab 公告)

GitLab 重大修補發布(2026 年 10 月 21 日)
CVE
CVE-2026-110264(CWE-190:整數溢位)
嚴重程度
重大,CVSS v3.1 10.0(AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H,為 GitLab 的評等)
問題
在特定條件下,編譯特製正規表示式時的整數溢位可能讓未經驗證的使用者在 GitLab 伺服器上執行任意程式碼
受影響範圍
GitLab CE/EE 7.0 起,低於 18.11.13、19.0.10、19.1.9、19.2.9、19.3.6、19.4.3 與 19.5.1
已修補
GitLab.com;GitLab Dedicated 自 19.3.5-internal0 與 19.4.2-internal0 起
通報者
一位外部研究人員,透過 GitLab 在 HackerOne 上的漏洞獎金計畫通報
利用情況
公告未說明;截至 10 月 25 日未列入 CISA 的 KEV 目錄
10.0
CVE-2026-110264 的 CVSS(GitLab 評等)
無需登入
所需權限(PR:N)
7 條
提供修補的版本線(18.11 至 19.5)
12
同一次發布修復的 CVE 數量

同一次發布也修復了另外 11 個漏洞,其中兩個為高風險。CVE-2026-15723(CVSS 8.2)在同時啟用 OmniAuth SAML 與 LDAP 自動連結時,可能讓已驗證的使用者接管既有的 LDAP 帳號。CVE-2026-112212(CVSS 7.5)可能讓快取的 OAuth/OIDC 探索文件遭到污染,使特定流程被送到外部伺服器。其餘為五個中風險與四個低風險。

CISA 於 10 月 21 日的 SSVC 評估列出:利用狀態為「none」,可自動化為「yes」,技術影響為「total」。在尚無遭利用報告的情況下完成升級,是最省力的因應方式(本站觀點)。

根源在於 Ruby 的正規表示式引擎:給 Ruby 開發者

10 月 23 日,Ruby 團隊發布 Ruby 4.0.9、3.4.12 與 3.3.13,修復 Ruby 正規表示式引擎(Onigmo)的錯誤。這些更新修復了與 GitLab 所指派之四個 CVE 相關的三個錯誤(CVE-2026-89078、CVE-2026-93577、CVE-2026-97229 與 CVE-2026-110264)。除 CVE-2026-110264 外,另外三個已在 GitLab 19.4.1 與 19.4.2 中修復。

Regexp.timeout 無法提供保護

根據 Ruby 的公告,只有當應用程式從攻擊者可控的字串編譯正規表示式時(Regexp.new、Regexp.union、Regexp.compile,或如 /#{input}/ 的字串插值),這些錯誤才會被觸發。只使用開發者撰寫之正規表示式的應用程式不受影響。Regexp.timeout 無法防護這些錯誤,限制模式長度也不可靠。

Ruby 3.3 目前僅提供安全性維護,但因為 GitLab 為依賴這些修補的問題指派了 CVE,3.3.13 以例外方式納入這些修補。Ruby 3.2 已於 2026 年 4 月 1 日終止支援,且沒有修補版本。

GitLab 的 Linux 套件與雲原生映像檔內含 GitLab 自己的正規表示式修補,因此 GitLab 管理員需要更新 GitLab 本身,而非伺服器上的 Ruby。若你是從原始碼安裝 GitLab,本站建議也將該 Ruby 更新到修補版本。

風險做法

  • 將搜尋框或篩選器的輸入直接傳入 Regexp.new
  • 執行使用者註冊為伺服器端正規表示式的模式
  • 以為 Regexp.timeout 或長度限制就能確保安全
  • 停留在已終止支援的 Ruby 3.2 或更舊版本

較安全的做法

  • 純文字搜尋時,使用 Regexp.escape,讓輸入按字面比對
  • 思考是否真的需要讓使用者撰寫正規表示式
  • 若必須如此,改用其他正規表示式引擎執行,或在隔離的程序中執行(本站觀點)
  • 將 Ruby 升級到 4.0.9、3.4.12 或 3.3.13 或更新版本

你所依賴的 gem 或框架是否從使用者輸入建立正規表示式,無法只從自己的程式碼判斷,因此升級 Ruby 是最可靠的修復方式。關於監控相依套件,請參閱如何使用 osv-scanner 監控相依套件的 CVE。

自架 Git 伺服器常忽略的事

自己執行 GitLab 可以避免某些意外,例如誤將儲存庫設為公開,但修補的工作也轉到你身上。這個漏洞可追溯到 7.0,因此很久以前就停止更新的伺服器,需要經過最多的升級停靠點,工作量也最大。

本站觀點:平時至少應跟上到最新必要升級停靠點的前一個停靠點。如此一來,緊急升級只需一到兩個步驟,而不是一長串的升級鏈。關於自架的取捨,請參閱自架 Git 與 GitHub:哪個比較安全。

仍不明確的事項

項目狀態
此漏洞的確切條件未說明(「在特定條件下」;細節將於發布後 90 天公開)
利用情況未說明(截至 10 月 25 日未列入 CISA 的 KEV)
公開的利用程式碼未說明
NVD 評估分析中(GitLab 的評等為 10.0)
Ruby 錯誤本身的 CVERuby 團隊尚未申請(可能會重新評估)

資料來源

  • GitLab,「GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13」(2026 年 10 月 21 日)— docs.gitlab.com
  • Ruby,「Regexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264」(2026 年 10 月 23 日)— ruby-lang.org
  • Ruby,「Ruby Maintenance Branches」— ruby-lang.org
  • GitLab,「Upgrade paths」— docs.gitlab.com
  • GitLab,「Maintenance Rake tasks」(gitlab:env:info)— docs.gitlab.com
  • NIST NVD,「CVE-2026-110264」— nvd.nist.gov
  • CISA,「Known Exploited Vulnerabilities Catalog」— cisa.gov

更新紀錄

2026-10-25:首次發布,依據 GitLab 修補發布公告、Ruby 官方公告、NVD 與 CISA 的 KEV 目錄撰寫(2026 年 10 月 23 日版本)。

延伸閱讀

最新快訊

FAQ

Q發生了什麼事?
A

2026 年 10 月 21 日,GitLab 針對 CE 與 EE 發布重大修補版本 19.5.1、19.4.3、19.3.6、19.2.9、19.1.9、19.0.10 與 18.11.13。最嚴重的漏洞 CVE-2026-110264(CVSS 10.0)是在編譯特製正規表示式時發生的整數溢位,在特定條件下,未經驗證的使用者可能藉此在 GitLab 伺服器上執行任意程式碼。

Q我的 GitLab 會受影響嗎?
A

若自架的 GitLab CE/EE 執行 7.0 或更新版本,且版本低於其版本線的修補版本(19.5.1、19.4.3、19.3.6、19.2.9、19.1.9、19.0.10 或 18.11.13),就會受影響。GitLab.com 已完成修補。若使用 GitLab Dedicated,19.3.5-internal0、19.4.2-internal0 或更新版本的租戶已具備修補。

Q升級到 18.11.13 或 19.2.9 就夠了嗎?
A

這可以修復 CVE-2026-110264,但根據 GitLab 的公告,同一次發布中的高風險漏洞(CVE-2026-15723、CVE-2026-112212)以及其他漏洞,只在 19.3.6、19.4.3 與 19.5.1 修復。建議將 18.11.13 至 19.2.9 視為重大漏洞的暫時停靠點,並規劃之後升級到 19.3.6 或更新版本(本站觀點)。

Q這個漏洞正在被利用嗎?
A

GitLab 的公告未表示已遭利用,截至 2026 年 10 月 25 日,它也未列入 CISA 的已知遭利用漏洞(KEV)目錄。GitLab 已發布兩項威脅偵測規則,協助自架使用者發現利用嘗試。

Q我開發 Ruby 應用程式,這會影響我嗎?
A

可能會。10 月 23 日,Ruby 發布 4.0.9、3.4.12 與 3.3.13,以修復其正規表示式引擎(Onigmo)的錯誤。只有從攻擊者可控字串編譯正規表示式的應用程式(例如 Regexp.new、Regexp.union、/#{input}/ 等)會受影響;只使用開發者撰寫之正規表示式的應用程式則不受影響。Ruby 表示,Regexp.timeout 無法防護這些錯誤,限制模式長度也不可靠。

Q我們仍在使用 Ruby 3.2 或更舊的版本。
A

Ruby 3.2 已於 2026 年 4 月 1 日終止支援,而目前唯一的修補版本是 4.0.9、3.4.12 與 3.3.13。請升級到 3.3.13 或更新版本。在完成升級之前,Ruby 團隊建議不要從不受信任的輸入編譯正規表示式。