Rails'te kritik Active Storage açığı: ImageMagick kullanan uygulamalarda dosya yazma riski, Rails 8.0 desteği bitti
Ruby on Rails 8.1.4.1 ve 8.0.5.2, aralarında CVSS 9.8 puanlı GHSA-f3w6-w445-fwh9'un da bulunduğu 21 güvenlik açığını kapatıyor. ImageMagick ile görsel işleyip dışarıdan dosya kabul eden uygulamalar risk altında; 7 Kasım'da güvenlik desteği biten 8.0 serisi için 8.0.5.2 son sürüm.
Ruby on Rails ekibi 4 Kasım'da 8.1.4.1 ve 8.0.5.2 sürümlerini yayımladı. Bu güvenlik sürümleri toplam 21 açığı kapatıyor. En ağırı, Active Storage'ın görsel analizinde rastgele dosya yazma ve okumaya izin veren GHSA-f3w6-w445-fwh9. Açığın CVSS puanı 9.8 ve henüz bir CVE kimliği atanmadı. Sorunu GMO Flatt Security'den RyotaK HackerOne üzerinden bildirdi.
Açık, ImageMagick'i (mini_magick) kullanan ve kullanıcılardan dosya kabul eden uygulamaları etkiliyor. Rails'e göre dosyanın uygulamaya eklenmesi yeterli; ayrıca variant, preview ya da analyze çağrısı gerekmiyor. Debian ve Ubuntu'nun hazır ImageMagick policy dosyaları ilgili coder'ları engellemiyor. Şu ana kadar aktif istismar ya da kamuya açık PoC bildirilmedi ve açık KEV'de değil. Rails ise kendisine bir saldırı zinciri bildirildiğini, bunun tek yol olduğunu varsaymadığını belirtiyor.
Etkilenen ve düzeltilmiş sürümler
| Ürün | Etkilenen | Düzeltilmiş sürüm |
|---|---|---|
| Rails / Active Storage 8.1 | 8.1.4.1 öncesi | 8.1.4.1 |
| Rails / Active Storage 8.0 | 8.0.5.2 öncesi | 8.0.5.2 (serinin son sürümü) |
| 8.0 öncesi seriler | Etkileniyor | Düzeltme yok (destek dışı) |
Diğer önemli düzeltmeler: Active Storage video ve uzantı işleme açığı GHSA-v924-7rp8-4mxh (8.8), Strong Parameters atlatması GHSA-wm3x-v3qw-4jh3 ve yalnızca 8.1'i etkileyen Forwarded başlığıyla IP spoofing açığı GHSA-2gff-2mmg-m73p. Tam liste resmi duyuruda.
Beni etkiliyor mu?
Uygulamanızın kök dizininde Rails sürümüne ve görsel işleyiciye bakın:
grep -E "^ (rails|activestorage|mini_magick) " Gemfile.lockArdından uygulamanın application.rb ve ortam dosyalarında variant_processor ve load_defaults satırlarına bakın.
Sunucuda ImageMagick mi GraphicsMagick mi kurulu olduğunu paket yöneticinizin kurulu paket listesinden kontrol edin.
variant_processor ayarı :mini_magick ise ya da ayar yokken load_defaults 6.1 veya daha eskiyse uygulama ImageMagick kullanıyor demektir. Kullanıcı yüklemesi kabul eden her uygulama bu durumda risk altındadır. GraphicsMagick kullananları Rails'in hazır policy dosyası korumaz.
Ne yapılmalı?
- 8.1 kullananlar 8.1.4.1'e geçmeli. 8.0 serisinin güvenlik desteği 7 Kasım'da bitti; 8.0.5.2'yi kurduktan sonra 8.1'e göç planlanmalı. Basına göre
:mini_magickkullanan uygulamalar mini_magick 5.1 veya üstünü istiyor, yoksa açılışta hata veriyor. - Hemen güncelleyemeyenler için workaround: Rails'in Active Storage ile gelen ImageMagick policy kurallarını sunucunun sistem policy dosyasına taşımak. En azından MSL coder'ı, Ghostscript coder'ları ve gs delegate'i engellenmeli. Sistem policy'sinde bir coder'a izin veren kural, Rails'in engelini geçersiz kılar.
- Disk servisi kullanılıyorsa Rails,
secret_key_baseve uygulamanın okuyabildiği tüm kimlik bilgilerinin yenilenmesini öneriyor. - 8.1 kullananlar, IP spoofing açığına karşı istemciden gelen Forwarded başlıklarını reverse proxy'de temizlemeli.
- Güncelleme, olağan change management sürecinde test ortamında yükleme akışları denenerek yayına alınmalı.