Rails Active Storage 重大漏洞 CVSS 9.8:惡意上傳可寫入伺服器檔案,請更新至 8.1.4.1/8.0.5.2
原始來源: The Hacker News · 2026/11/04
Rails 於 2026/11/04 公布 Active Storage 重大漏洞 GHSA-f3w6-w445-fwh9(CVSS 9.8,尚無 CVE 編號)。使用 ImageMagick 處理上傳圖檔的應用,未經驗證的攻擊者只要上傳特製檔案,即可在伺服器寫入任意檔案;若以 Disk 服務儲存附件,還能讀取應用可讀的檔案,例如 secret_key_base 與其他系統憑證,進而可能遠端執行程式碼。修補版本為 8.1.4.1 與 8.0.5.2。
重點先看
Rails Active Storage GHSA-f3w6-w445-fwh9(CVSS 9.8)可讓未驗證者以惡意上傳寫入檔案並讀取密鑰。請升級至 8.1.4.1/8.0.5.2,使用 Disk 服務者須輪換密鑰。
發生了什麼
Rails 專案於 2026/11/04 發布安全公告 GHSA-f3w6-w445-fwh9,修補負責檔案上傳的 Active Storage 元件中一項重大漏洞,CVSS 9.8,目前尚無 CVE 編號。若應用以 ImageMagick 處理上傳,未經驗證的攻擊者上傳特製檔案即可在伺服器寫入任意檔案;若附件以 Active Storage 的 Disk 服務存放在伺服器磁碟,攻擊者還能讀取應用可讀取的任何檔案,通常包含 secret_key_base 與連往其他系統的憑證,進而可能遠端執行程式碼或橫向移動。 修補版本為 8.1.4.1 與 8.0.5.2。公告未說明是否已遭利用。
哪些應用受影響
必須同時符合三個條件: 1. Active Storage 使用 ImageMagick 處理圖片,也就是 config.active_storage.variant_processor 為 :mini_magick;load_defaults 6.1 或更早的應用預設即是如此(7.0 起預設為 :vips)。 2. 伺服器的 ImageMagick 安全政策未封鎖相關 coder;Rails 指出 Debian 與 Ubuntu 預設政策並未封鎖。 3. 接受不受信任使用者上傳檔案。 只要附加(attach)檔案就會觸發分析器,不需要產生縮圖或預覽。修補提交顯示,上傳的 SVG 會經由分析器觸達 ImageMagick 的 MSL coder,而 MSL 能讀寫腳本指定的檔案。8.0.5.2 之前的所有版本與 8.1.4.1 之前的 8.1 版皆受影響;8.0 之前的版本已不再支援。同批版本也修補另一項 Active Storage 高風險漏洞 GHSA-v924-7rp8-4mxh(CVSS 8.8)。
建議立即處置
使用 Rails Active Storage 的團隊請依序處理: 1. 升級至 Rails 8.1.4.1 或 8.0.5.2;使用 :mini_magick 者須搭配 mini_magick 5.1 以上,否則開機會報錯。 2. 以 bin/rails runner 執行 MiniMagick 的 policy 列表指令,確認新版內建的 ImageMagick 安全政策已載入;若應用自行替換 MiniMagick 環境設定,須把規則寫進系統政策。 3. 檢查伺服器自身的 ImageMagick policy.xml,避免以萬用字元等規則重新允許被封鎖的 coder。 4. 暫時無法升級時,將 Rails 提供的政策規則複製到系統 ImageMagick 政策,至少封鎖 MSL coder、Ghostscript coder 與 gs delegate。 5. 若以 Disk 服務存放附件,輪換 secret_key_base、master key、credentials 內所有內容、儲存與資料庫憑證及第三方權杖,不要保留外洩的舊值作為備援。
為什麼重要
檔案上傳是會員頭像、文件附件、客服表單等常見功能,攻擊者不需帳號就能直接觸發。一旦 secret_key_base 等密鑰外洩,影響範圍會從單一應用延伸到資料庫、雲端儲存與第三方服務。Rails 也表示回報的攻擊鏈「不一定是唯一一條」,且公告未提供檢查是否已遭攻擊的方法。 建議以 CloudCoffer UTDS 偵測惡意上傳檔案,並以 DevaEye 軟體安全檢測與 Checkmarx 檢查上傳流程與相依套件。
Cloudforce 可以協助哪些?
針對 Rails 上傳漏洞與密鑰外洩風險,可依下列方案對應: 1. CloudCoffer UTDS:以未知威脅偵測檢查上傳流量中的惡意檔案,例如夾帶腳本指令的特製 SVG 圖檔,在修補完成前降低被利用的機會。 2. DevaEye 軟體安全檢測:檢測應用的上傳流程、圖片處理設定與相依套件版本,確認修補與安全政策確實生效,並交付修補建議。 3. Checkmarx:以原始碼與套件組成分析,持續找出受影響的 Rails 與 mini_magick 版本,以及不安全的檔案處理寫法。 4. DevaEye MDR 託管防護:監看應用主機的異常寫檔、可疑程式執行與外連,協助判斷是否已遭利用。
常見問題
我的 Rails 應用是否受影響?
須同時符合:Active Storage 使用 ImageMagick(:mini_magick)、系統 ImageMagick 政策未封鎖相關 coder、接受不受信任的上傳。load_defaults 6.1 以前的應用預設使用 :mini_magick。
使用 libvips 就安全嗎?
此漏洞的攻擊路徑需要 ImageMagick;使用 :vips 的應用不受此漏洞影響,但 Rails 7 月曾修補另一項影響 libvips 的 Active Storage 漏洞,仍應保持最新版本。
升級後還需要輪換密鑰嗎?
若附件以 Disk 服務存放在伺服器上,Rails 建議輪換 secret_key_base 及應用可讀取的所有密鑰與憑證,因為無法確認先前是否已遭讀取。
無法立即升級怎麼辦?
可把 Rails 內建政策規則複製到系統 ImageMagick 政策,至少封鎖 MSL coder、Ghostscript coder 與 gs delegate;8.0 以前的舊版只能採此方式或升級。
CloudCoffer 能如何協助?
CloudCoffer UTDS 可在上傳流量中偵測惡意檔案,例如夾帶腳本的特製圖檔,補足修補完成前的空窗;DevaEye 軟體安全檢測與 Checkmarx 則協助確認版本與設定。
