AI 驅動的網路攻擊:如何偵測、預防及抵禦智慧型威脅

立即閱讀
我們利用人工智慧進行網站翻譯,雖然我們力求準確性,但它們可能並不總是 100% 精確。感謝您的理解。

OPSWAT Unit 515 發現 Ruby on Rails 中的 CVE-2025-24293 危機 - 主動儲存 RCE

by OPSWAT 發布
分享此文章

Ruby on Rails 簡介

Ruby on Rails (Rails) 是使用 Ruby 建立的全堆疊、模型-視圖-控制器 (MVC) 網頁框架。它「內含電池」,為開發人員提供所需的一切:物件關聯映射器 (Active Record)、請求/回應和檢視層 (Action Pack/Action View)、背景工作處理、郵件、WebSocket 支援、檔案儲存和上傳 (Active Storage) 等等。

Ruby on Rails 自 2004 年首次發行以來,已發展成為全球最廣泛採用的 Web 框架之一。今天,它已經為數百萬個網站和應用程式提供支援,包括 GitHub、Shopify、Airbnb、Basecamp 和 Netflix 等知名平台。Rails 強調Convention Over Configuration、開發人員生產力和快速原型設計,因此已成為初創公司和大型企業的首選架構。

單元 515 研究:揭露 Rails 中的關鍵漏洞

在獨立研究過程中,OPSWAT的515小組成員Thai Do 發現了 Ruby on Rails 中的兩個漏洞,其中一個可能會導致遠端程式碼執行 (RCE)。這些發現已負責任地披露給 Rails 安全團隊,OPSWAT 在整個過程中都與 Rails 安全團隊進行協調。

2025 年 8 月 13 日,Rails 團隊發佈了公開公告,並發佈了修補版本來解決這兩個漏洞。

受影響的版本和修正版本

組件
受影響的版本
固定版本
主動式儲存 (CVE-2025-24293)
Rails ≥ 5.2.0 及以下的固定版本
7.1.5.2, 7.2.2.2, 8.0.2.1
主動記錄記錄 (CVE-2025-55193)
Rails < 7.1.5.2, < 7.2.2.2, < 8.0.2.1
7.1.5.2, 7.2.2.2, 8.0.2.1

在 Rails 中發現的安全問題

CVE-2025-24293 - 主動儲存不安全的轉換方法

此漏洞會影響 Rails ≥ 5.2.0 版本中的 Active Storage,當不安全的影像轉換方法傳送到mini_magick 時會發生,當結合未驗證的使用者輸入時,可能會導致遠端程式碼執行 (RCE)。雖然 Rails 指出在預設的組態下,此漏洞並不會被利用,但將轉換選項暴露給使用者的應用程式會特別有風險。

CVE-2025-55193 - 主動記錄日誌中的 ANSI Escape 注入

此漏洞會影響 7.1.5.2、7.2.2.2 及 8.0.2.1 之前所有 Rails 版本的 Active Record 日誌。攻擊者可在日誌中注入包含 ANSI 轉義序列的特製識別符,可能會操控查詢在終端機輸出中的顯示方式,並導致誤導或損毀的日誌。雖然此漏洞不會直接暴露資料或執行程式碼,但可能會妨礙監控與事件回應工作。Rails 安全團隊在相同的修補版本中解決此問題。

CVE-2025-24293 - Active Storage 遠端執行程式碼的技術分析

主動式儲存概觀

Active Storage 是 Rails 處理檔案上傳的內建框架。它使開發人員能夠將檔案附加到 Active Record 模型,並將它們存儲在本地(用於開發/測試)或雲服務(如Amazon S3、GoogleCloud Storage 或 Microsoft Azure)上。Core 功能包括執行影像轉換、為 PDF 和視訊等非影像檔案產生預覽,以及鏡像上傳至多個服務以進行備援或遷移。

影像轉換如何運作

圖片轉換可讓開發人員以特定尺寸或格式傳送附件。這可透過在圖像附件上呼叫variant()方法並傳入支援的操作來完成。

當用戶端要求變體 URL 時,Active Storage 會按需從原始 blob 執行轉換,將結果儲存於已設定的服務上,並將重定向回傳至新產生的檔案。

Rails 支援兩種影像轉換處理器:VipsMiniMagick。使用的處理器可透過config.active_storage.variant_processor 設定

圖像轉換支援的特定操作由image_processinggem 決定,並取決於為 Rails 應用程式設定的底層處理器。

CVE-2022-21831 的不完整修正

2022 年 3 月,Rails 團隊揭露了CVE-2022-21831,這是 Active Storage 影像轉換功能中的一個重要程式碼注入漏洞。修補程式引入了轉換方法的預設允許清單,以緩和此問題。

然而,在深入檢閱修補程式和 Rails 原始碼的過程中,Thai DoOPSWAT Unit 515) 發現了一個繞道,使得原本的修補程式變得不完整。這個繞過重新提供了攻擊者達成遠端執行程式碼 (RCE) 的路徑,導致 CVE-2025-24293 的洩露。

image_processing Gem 中的根本原因

當應用轉換時,Rails 會將操作委託給image_processinggem,最終在lib/image_processing/processor.rb中呼叫ImageProcessing::Processor#call

如果設定的變體處理器是MiniMagick,漏洞存在於lib/image_processing/mini_magick.rb 內的兩個函式:

-load_image- 從**loader接受未驗證的選項。

-save_image- 接受來自**saver的未驗證選項。

對於load_image**loader中除了page、geometryauto_orient以外的任何關鍵值對都會保留在**options 中。同樣的情況也適用於save_image,除了allow_splitting以外的關鍵值都會保留在**options 中。這些選項稍後會傳給Utils.apply_options(magick,**options),它會以 MiniMagick CLI 旗標 (例如 -quality)來應用這些選項。

雖然loadersaver都包含在預設的 allow-list 中,因此被認為是安全的,但這種信任是錯誤的。透過精心製作的輸入,攻擊者可以利用這些選項繞過檢查,最終導致 Rails 在主機上執行任意的系統指令。

Rails 應用程式中的攻擊情境

如果應用程式直接將未驗證的使用者輸入傳入轉換方法,例如:

攻擊者可以製造惡意輸入來操縱載入器或儲存器選項。這會繞過允許清單,在伺服器上執行任意指令,導致遠端執行程式碼 (RCE)。

概念驗證:遠端執行程式碼

在執行易受攻擊版本 (8.0.2.1、7.2.2.2 及 7.1.5.2 之前) 的 Rails 應用程式中,OPSWAT Unit 515 成功展示了一個攻擊鏈,未經驗證的轉換輸入會導致 shell 指令執行。

此視訊 PoC 展示CVE-2025-24293的可利用性,並強調其對 Rails 應用程式的實際影響:

緩解與專業滲透測試服務

組織應將 Ruby on Rails 升級至最新的安全版本(7.1.5.2、7.2.2.2 或 8.0.2.1),以處理CVE-2025-24293CVE-2025-55193。如果無法立即修補漏洞,臨時的防護措施包括將影像轉換限制為預先定義的預設值、驗證並濾除使用者輸入、加強 ImageMagick 政策,以及確保日誌無法解釋 ANSI 轉義序列。

然而,套用修補程式並不能消除現代網路環境中的所有風險。自訂業務邏輯、協力廠商整合以及複雜的部署管道通常會創造出超出供應商建議範圍的攻擊途徑。這就是Web 應用程式滲透測試 非常重要的原因。

在OPSWAT,Unit 515提供專業的Web 應用程式滲透測試服務,遠遠超越自動掃描程式或檢查清單稽核。我們的團隊由經驗豐富的攻擊性安全專家組成,他們擁有多年測試各產業大型應用程式的經驗。我們使用系統化的攻擊性方法,找出驗證流程、輸入驗證、存取控制和資料處理的漏洞,這些問題即使在 Ruby on Rails 等已完全修補的架構中也可能持續存在。

每項委聘都結合了深厚的技術專業知識與企業就緒的報告,提供清晰、可行的洞察力,使開發團隊能夠有效地修復缺陷。透過與Unit 515 合作,組織可確保其關鍵應用程式由專家進行測試,這些專家不僅會模擬真實世界的攻擊技術,還會驗證修補措施是否能真正彌補漏洞。這些專業知識可強化修復工作、降低殘餘風險,並提升整體應用程式的復原能力,以對抗不斷演化的威脅。

標籤:

隨時瞭解OPSWAT 的最新資訊!

立即註冊,即可收到公司的最新消息、 故事、活動資訊等。