漏洞修補2026 年 10 月 24 日(六)

Ruby Onigmo記憶體損壞風險:更新執行環境並檢查外部輸入

Ruby原廠發布4.0.9、3.4.12與3.3.13,修正Onigmo正規表示式編譯缺陷。使用外部輸入動態建立正規表示式的應用,應儘速更新執行環境並檢查輸入處理。

01

內文

Ruby原廠於 2026/10/23 發布 Ruby 4.0.9、3.4.12 與 3.3.13,修正正規表示式引擎 Onigmo 的四項編譯缺陷。當應用程式將攻擊者可控制的字串送進Regexp編譯流程時,可能觸發記憶體損壞。請優先檢查接受外部樣式的搜尋、篩選與規則設定功能。

攻擊路徑:外部字串進入Regexp編譯

攻擊流程可能的攻擊鏈,必須先符合外部輸入編譯條件
  1. 01

    送入特製字串

    攻擊者能將可控制的字串送到會建立正規表示式的功能

  2. 02

    應用程式編譯樣式

    程式將該內容傳入Regexp.new、Regexp.union、Regexp.compile或樣式插值

  3. 03

    觸發Onigmo缺陷

    特定樣式造成重複釋放或整數溢位,可能破壞程序記憶體

  4. 04

    依應用路徑造成影響

    可能使程序崩潰;GitLab已確認其產品路徑可達遠端程式碼執行

觸發前提:應用程式動態編譯攻擊者可控制的正規表示式。

修補版本與四項缺陷

  • CVE-2026-89078:樣式解析失敗後可能重複釋放。Ruby 4.0系列修補版為4.0.0,3.4系列為3.4.12,3.3系列為3.3.13。
  • CVE-2026-93577與CVE-2026-97229:編譯後樣式大小計算整數溢位。Ruby 4.0系列修補版為4.0.8,3.4系列為3.4.12,3.3系列為3.3.13。
  • CVE-2026-110264:大量重複項目造成內部識別碼溢位。Ruby 4.0系列修補版為4.0.9,3.4系列為3.4.12,3.3系列為3.3.13。

Ruby原廠建議升級至 Ruby 4.0.9、3.4.12、3.3.13 或後續修補版本,這三個版本都包含上述四項修正。無法立即升級時,避免把不受信任的內容編譯成正規表示式;Regexp.timeout或單純限制樣式長度都不能可靠排除問題。

行動建議:從外部邊界查到內部核心

應變流程盤點執行環境、確認輸入路徑,再升級複驗
  1. 01

    盤點所有Ruby環境

    涵蓋對外服務、內部系統、委外應用、容器映像、CI與內嵌Runtime

    看看能怎麼應對2項資源

    TWISA 會員方案

    盤點所有Ruby環境

    以Qualys VMDR盤點主機與軟體資產,配合DVM彙整弱點與修補進度,找出Ruby服務及維護負責人。

  2. 02

    找出可控輸入路徑

    檢查是否以外部輸入動態建立Regexp,優先確認搜尋、篩選與規則設定功能

  3. 03

    更新並重建部署

    依Ruby分支升級至原廠修補版,重建映像與執行環境,確認執行中的版本

  4. 04

    授權測試後複驗

    在測試環境驗證輸入處理、錯誤回應、程序穩定度與日誌,保留更新紀錄

    看看能怎麼應對2項資源

    TWISA 會員方案

    授權測試後複驗

    委託滲透測試服務,將搜尋、篩選及規則輸入納入測試範圍,在測試環境檢查動態Regexp路徑與更新後行為。

防禦架構從入口輸入處理到Ruby執行環境的分層防護

外部、內部、委外、容器與內嵌Ruby版本及Regexp使用位置

業務連線依授權放行,各層分別落實防護

  1. 01

    外部入口

    網站、API與批次匯入的外部字串

    看看能怎麼應對3項資源

    TWISA 會員方案

    外部入口

    SkyCloud 資安防護包提供TWISA企業客戶優惠;SkyWAF可限制接受樣式輸入功能的來源IP與請求方法。F5 Advanced WAF可為特定URL及參數設定輸入政策。首次導入企業完成並繳交導入前後檢測報告後,可取得協會專屬折扣碼;活動至2026/12/31。Ruby仍須更新並限制不可信樣式編譯。

    限制動態樣式關閉或改寫接受外部樣式的功能;網站路徑限制來源、請求方法與輸入政策

  2. 02

    應用與Runtime

    Ruby服務、Gem、容器與內嵌執行環境

    查看處理指引1項資源

    應對方式與指引

    應用與Runtime

    部署原廠修補版並確認實際執行版本

    更新Runtime部署原廠修補版並確認實際執行版本

  3. 03

    內部核心

    服務帳號可讀取的資料與憑證

    看看能怎麼應對2項資源

    TWISA 會員方案

    內部核心

    以Imperva DBF/Bridge模式或IBM Guardium for Database的阻斷政策,限制Ruby服務帳號的異常大量讀取、額外授權與資料變更,縮小程序受侵後可取得的資料範圍。

    限制資料庫權限與操作服務帳號只讀取必要資料表與欄位,針對異常讀取及管理操作設定阻斷

  4. 04

    敏感欄位與明文

    Ruby後台業務需要的個資與機密欄位

    看看能怎麼應對1項資源

    TWISA 會員方案

    敏感欄位與明文

    Thales CipherTrust提供欄位與應用層加密、代碼化及遮罩,將內部Ruby後台能讀取的明文資料縮減到必要範圍。

    加密與遮罩以欄位保護與解密權限分離,讓服務只取得必要明文

各層日誌與流量,送往監控與應變流程

  1. 應用日誌與程序事件關聯輸入功能、Regexp錯誤、程序崩潰與部署版本,確認異常後續影響。

WAF只能協助管理經過網站入口的請求,不能替代Runtime更新,也不能涵蓋內部呼叫、批次輸入或本機程序。

延伸閱讀

歡迎洽詢各會員,取得更詳細的產品與服務介紹及說明。

TWISA 會員方案
TWISA 會員方案:緩解風險與保護核心資料

通報更新日期:2026/10/24。產品支援與修補狀態以原廠最新資料為準。