---
title: "Alpine Linux 揭露 GitLab 遭企圖利用 CVE-2026-97229，實例已重建並重設全部密碼"
url: https://sammy.hk/alpine-gitlab-cve-incident/
author: Ethan
published: 2026-10-30T20:37:00+08:00
modified: 2026-10-30T09:53:11+08:00
description: "Alpine Linux 於 2026 年 10 月 28 日公布一宗 GitLab 安全事故。攻擊者於 10 月 20 日及 21 日，向其仍運行 GitLab 19.3.4 的實例投遞特製 CI 設定，企圖利用嚴重漏洞 CVE-2026-97229，導致 GitLab 工作程序八次崩潰，其中四次已越過部分利用步驟[…"
categories: ["開放源碼"]
tags: [Alpine Linux, CVE, GitLab, "供應鏈安全", "開源"]
source: https://sammy.hk
---
![](https://sammy.hk/wp-content/uploads/2026/10/openrouter_google_gemini-3_1-flash-lite-image_20261030_095042_72316100.jpg)Alpine Linux 於 2026 年 10 月 28 日公布一宗 GitLab 安全事故。攻擊者於 10 月 20 日及 21 日，向其仍運行 GitLab 19.3.4 的實例投遞特製 CI 設定，企圖利用嚴重漏洞 CVE-2026-97229，導致 GitLab 工作程序八次崩潰，其中四次已越過部分利用步驟\[1\]。專案團隊表示未發現攻擊成功的證據，但無法排除，因此把實例當作已被入侵，並由零重建。

## 漏洞與攻擊經過

CVE-2026-97229 的 CVSS 評分為 10.0，問題出在 GitLab 評估 CI 設定中正規表達式的方式，根源是 Ruby 內建的正規表達式引擎 Onigmo\[1\]。GitLab 已於 10 月 12 日發布修正版本，但 Alpine 在 10 月 13 日更新時誤升至 19.3.4，而非含修正的 19.3.5，令實例持續暴露。

攻擊者在 10 月 20 日註冊帳戶並開始試探，翌日送出特製 CI 設定，令背景工作程序反覆崩潰，並出現 502 錯誤與 CI 工作失敗。攻擊者亦下載了 Alpine 的 GitLab 容器映像，團隊認為此舉是為了針對其實際建置調整利用方式\[1\]。

## 升級 GitLab 為何仍未修好

團隊在 10 月 22 日升至 GitLab 19.3.6，但 10 月 26 日覆核時發現實例仍然存在漏洞。原因在於修正並非落在 GitLab 自身程式碼，而是 Ruby 的修補；GitLab 只在官方套件中套用該修補，而 Alpine 的映像使用標準 Ruby，因此未取得修正\[1\]。

Ruby 上游最終於 10 月 23 日，在 3.3.13、3.4.12 及 4.0.9 版本中發布修正\[3\]。Alpine 指出，若自建 GitLab 使用自行編譯或自製容器映像的 Ruby，單靠升級 GitLab 並不足夠，必須同時把 Ruby 升至上述版本或更新\[1\]。使用 alpinelinux/gitlab 映像者，則需重新拉取 19.3.6；只有 10 月 27 日之後發布的映像才含 Ruby 3.3.13，較早拉取的同一標籤仍然有漏洞。

## 已核實與仍無法排除的部分

團隊在 10 月 24 日以 GitLab 以外的紀錄核對 10 月 20 日至 22 日的 aports 提交，以及 10 月 20 日至 24 日各架構的套件建置。結果顯示 10 月 21 日的穩定版本（3.21.9、3.22.7、3.23.7、3.24.3）、其 ISO 與 minirootfs 均無被篡改；用於簽署套件與版本的簽鑰亦從未存放於 GitLab 伺服器\[1\]。

不過團隊列出三項無法排除的理由：成功的利用不會留下崩潰或網頁日誌痕跡；攻擊當日的部分日誌，包括背景工作記錄與舊容器的檔案系統，已經遺失；主機與供應商均無對外連線日誌。若攻擊實際成功，可能外洩的資料包括用戶電郵、姓名、IP 位址、密碼雜湊、雙重驗證密鑰、CI/CD 變數、runner 權杖、webhook 與整合憑證，以及私人倉庫與機密議題\[1\]。

## 自建 GitLab 用戶要注意

Alpine 已重建實例並更換 GitLab 密鑰，所有密碼重設，重開後需以「忘記密碼」設定新密碼。團隊亦提醒曾在其他網站使用同一密碼者應一併更改，因為已觀察到以其他網站外洩密碼嘗試登入的自動化行為\[1\]。

對外自建 GitLab 的機構可跟隨三項檢查：確認 Ruby 版本是否已達 3.3.13、3.4.12 或 4.0.9；若使用自製映像，確認建置時有套用 Ruby 修補；以及核對 GitLab 官方公告所列的修正版本\[2\]。Alpine 同時表示會把重大 GitLab 安全版本的套用時間縮短至一日內，延長日誌保留期，並為版本標籤加入簽署。

## 參考資料

\[1\] [GitLab security incident: attempted exploitation of CVE-2026-97229（2026 年 10 月 28 日）](https://alpinelinux.org/posts/GitLab-security-incident-CVE-2026-97229.html)

\[2\] [GitLab 19.4.2 修補版本公告（2026 年 10 月 12 日）](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/)

\[3\] [Ruby 3.3.13 發布公告（2026 年 10 月 23 日）](https://www.ruby-lang.org/en/news/2026/10/23/ruby-3-3-13-released/)

### 相關文章：

1. [Ruby 三條版本線同步發布：修正 Regexp 編譯問題、對應 GitLab 多個 CVE](https://sammy.hk/ruby-version-sync-regexp-gitlab-cve/ "Ruby 三條版本線同步發布：修正 Regexp 編譯問題、對應 GitLab 多個 CVE")
2. [Python 五個分支同步推出維護版本，封鎖外洩的中間憑證金鑰](https://sammy.hk/python-security-releases/ "Python 五個分支同步推出維護版本，封鎖外洩的中間憑證金鑰")
3. [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% 提示快取命中")
4. [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")
