【快更新 ⚠️】開源程式語言 Ruby 官方團隊於 10 月 23 日發布安全更新,官方指出其核心正則表達式(Regexp)引擎「Onigmo」中存在 4 … · @hkepcmedia · TwKit
@hkepcmedia
【快更新 ⚠️】開源程式語言 Ruby 官方團隊於 10 月 23 日發布安全更新,官方指出其核心正則表達式(Regexp)引擎「Onigmo」中存在 4 個重大漏洞。相關缺陷將導致系統在編譯惡意輸入的正則表達式時引發記憶體損毀,甚至可能演變成伺服器端遠端程式碼執行(Remote Code Execution, RCE)。官方現已釋出 Ruby 4.0.9、3.4.12 以及 3.3.13 三個維護版本,呼籲開發團隊及伺服器管理員立即安排升級或調整程式碼邏輯。 據 Ruby 團隊指出,問題主要源於 Onigmo 的底層編譯機制。當正則表達式引擎在處理不受信任的外部字串時,其內部解析與編譯邏輯存在破綻;若後端應用程式允許外部傳入字串,並透過 http://Regexp.new、Regexp.compile、Regexp.union 或字串插值(如 /#{input}/)動態編譯為正則表達式,攻擊者便可透過精心構造的特製樣式觸發以下三大核心底層缺陷: ◾重複釋放(Double Free)缺陷:當正則表達式包含分支選項(Alternation)且在解析失敗時,引擎會發生記憶體重複釋放,導致記憶體損壞。 https://www.ruby-lang.org/en/news/2026/10/23/regexp-fixes-for-gitlab-cves/ ◾樣式大小整數溢位(Integer Overflow):在計算編譯後正則表達式長度及內部資料結構大小時,因數值溢位而引發緩衝區錯誤。 ◾內部識別碼溢位:當樣式中包含大量重複比對結構時,會觸發內部 ID 計數溢位,進一步破壞記憶體配置。 本質上,Ruby 這四個嚴重漏洞與 GitLab 早前公布的漏洞完全相同,均是由 GitLab 觸發內嵌的 Ruby 底層 Onigmo 引擎解析與編譯缺陷所引致。當時 GitLab 已針對漏洞進行修復並獲分配 CVE 編號,包括 CVE-2026-89078 (9.9)、CVE-2026-93577 (9.9)、CVE-2026-97229 (10.0) 及 CVE-2026-110264 (10.0),因此 Ruby 並不打算另行為 Ruby 申請獨立的 CVE 識別碼。 如果用戶使用 GitLab Omnibus / Docker,並不需要手動升級 Ruby,只需升級 GitLab 本體即可,底層 Ruby 會自動綁定升級。 若使用 GitLab 原始碼安裝,則需要手動編譯並切換至新版 Ruby;如果使用獨立的 Ruby / Rails 伺服器,則需要透過 rbenv、rvm 或 Docker 映像檔更新執行環境。 Ruby 團隊強烈建議所有維運團隊儘速將執行環境升級至 4.0.9、3.4.12、3.3.13 或以上版本。若受限於部署架構短期內無法更新,開發人員應立即修改伺服器邏輯,嚴格避免直接動態編譯未經驗證的外部輸入,以降低被惡意利用的風險。
曝光 8 · 评论 0 · 点赞 0 · 书签 0
查看原帖