
重點整理
- GitLab 的私人 Email 地址等同於永不過期的隱藏密碼。
- 駭客取得地址後可冒充用戶修改程式碼並繞過雙重驗證。
- 此攻擊不受 IP 白名單限制,可從外部直接滲透企業系統。
- 企業應立即重置 Token 並檢查官網是否不小心公開地址。
如果你的公司有委託外部團隊開發網站,或是內部有工程師在管理系統,你可能聽過「GitLab」這個企業常用的程式碼與專案管理平台。最近資安圈發現了一個嚴重的漏洞:GitLab 提供給用戶用來回報問題的私人 Email 地址,其實等同於一組「永不過期的隱藏密碼」。只要這組密碼外流,任何人都能冒充你的工程師,在系統裡修改程式碼甚至執行惡意任務,而且還能繞過雙重驗證。這對依賴數位工具的中小企業來說,是一個不容忽視的資安警訊。
什麼是 GitLab 的「隱藏密碼」漏洞?
在 GitLab 中,用戶可以透過發送 Email 來建立專案問題(Issue)。系統會產生一組專屬的私人 Email 地址,這組地址中間包含了一串 Token(用來驗證身分的隱藏字串,類似密碼)。
資安公司 Aikido Security 發現,這組 Token 有兩個致命的設計問題:首先,它永不過期;其次,你在不同專案的 Email 地址,其實共用同一個 Token,而且這個 Token 對你帳號能存取的所有專案(無論是公開還是私有)都有效。
更危險的是,GitLab 系統「不檢查寄件者是誰」。這意味著,只要有人拿到了這組 Email 地址,他就可以用自己的信箱寄信,而 GitLab 會完全相信這封信是你本人發出的,直接以你的名義執行操作。
駭客能如何利用這個漏洞?
這個漏洞不僅僅是用來亂發問題回報,駭客還能進一步修改系統核心。資安研究員指出,只要把 Email 地址的後綴稍微修改,就能用來提交程式碼更新(Merge Request)。如果駭客擁有足夠的權限,他甚至可以直接把惡意程式碼寫入網站的核心分支,或是修改自動化工作流程(CI/CD,即自動化建置與部署流程)的設定檔,讓系統以你的身分執行惡意任務。
這個攻擊手法還有兩個可怕的特點:
- 繞過雙重驗證(2FA):雙重驗證是登入時需要手機簡訊或驗證器確認的機制。但 GitLab 的 Email 功能不受此限制,即使你的帳號開啟了 2FA,駭客依然能透過 Email 繞過驗證。
- 不受 IP 限制:很多企業會設定只允許公司網路(IP 白名單)登入系統,但接收郵件功能被排除在 IP 限制之外,駭客可以從世界任何角落發動攻擊。
當然,這個漏洞的破壞程度取決於被盜用帳號的權限。如果是一般訪客帳號,影響有限;但如果是管理員,後果就不堪設想。
企業現在該怎麼防範?
面對這個漏洞,GitLab 目前的態度是這屬於「預期行為」,認為憑證外流本來就會導致風險,目前還沒有提供讓單一用戶關閉此功能的開關。不過,企業還是可以採取以下行動來降低風險:
- 重置 Email Token:用戶可以進入個人設定中的存取權杖頁面,重新產生一組新的 Token。這會讓所有舊的專案 Email 地址失效。請注意,重置後原本使用中的地址也會暫停作用,需要重新分發新地址。
- 檢查公開文件:資安公司發現,有許多 Token 是被企業「主動」公開在官網說明、專案說明文件或客服頁面上的。請務必檢查並移除這些公開的 Email 地址。
- 關閉接收郵件功能:如果是企業自行架設的 GitLab,管理員可以直接在後台關閉整個系統的接收郵件功能,從源頭阻斷風險。
崴米的建議
這次 GitLab 的漏洞提醒我們,許多資安破口往往來自於「被視為理所當然的隱藏設定」或是「不小心公開的存取憑證」。對於沒有專職資安人員的中小企業,我們建議:
- 定期盤點與更新系統憑證:無論是開發平台、後台管理系統還是第三方 API,都應該定期檢查是否有永不過期的 Token 或 API 金鑰,並建立更換機制,避免憑證外流後長期被惡意利用。
- 將網站與系統交由專業團隊代管:企業專注於本業發展,將網站的資安監控、主機維護與憑證管理交給專業團隊,能第一時間收到漏洞警示並進行修補。歡迎了解我們的 網站代管維護與主機監看 服務,讓您的數位資產上線後依然有人專業守護。
參考來源:A Leaked GitLab Issue Email Address Lets Anyone Push Code and Run CI Jobs as You
