Crafted ImageMagick Uploads ile Sunucu Dosyalarına Yazım İmkanı Veren Kritik Ray Hatası
Ruby on Rails 'da ortaya çıkan kritik bir açıklık, uygulamanın yüklemeleri ImageMagick ile işlediği durumlarda, yetkisiz bir saldırganın sunucuda keyfi…

Ruby on Rails‘da ortaya çıkan kritik bir açıklık, uygulamanın yüklemeleri ImageMagick ile işlediği durumlarda, yetkisiz bir saldırganın sunucuda keyfi dosyalar yazmasına olanak tanıyabilir. Rails projesi açıklığı bir duyuru ile açıkladı ve 8.1.4.1 ile 8.0.5.2 sürümlerinde düzeltti.
Açıklık, Rails’in dosya yüklemelerini yönettiği bölüm olan Active Storage içinde bulunuyor. Bazı uygulamalar yüklenen dosyaları Active Storage’ın Disk hizmeti kullanarak, yani sunucunun diskine kaydederek saklıyor. Bu tür uygulamalarda bir saldırgan uygulamanın okuyabildiği herhangi bir dosyayı okuyabilir.
Rails’e göre bu dosyalar genellikle uygulamanın secret_key_base’si ve diğer sistemlere ait kimlik bilgilerini içeriyor. Bu dosyaları okumak, sırasıyla uzak kod çalıştırmasına ya da bu sistemlere doğru yatay harekete olanak verebilir.
Rails açıklığı CVSS ölçeğinde 10 üzerinden 9.8 olarak değerlendiriyor. GHSA-f3w6-w445-fwh9 olarak takip ediliyor ve henüz bir CVE kimliği yok.
ImageMagick, dosyanın içeriğine dayanarak bir biçim işlecini (coder) seçiyor. Bazı işleciler resmin kendisi yerine resmin içinde adlandırılan diğer dosyalar üzerinde işlem yapıyor. Active Storage, bir yüklemenin hangi işlecileri kullanabileceği konusunda bir sınır koymadığı için tek sınır sunucunun kendi ImageMagick politikasıydı.
Active Storage’daki ImageMagick analizörü bir dosya eklendiğinde çalışır. Yüklemeyi eklemek açıklığa ulaşmak için yeterlidir. Uzmananın bir varyant (resmin dönüştürülmüş bir kopyası) ya da önizleme oluşturması ya da analyze çağırması gerekmez.
Açıklığı düzelten commit’e göre, yüklenen bir SVG dosyası bu analizör üzerinden ImageMagick’in MSL işlecisine ulaştı. MSL, script’inin adlandırdığı dosyaları okuyan ve yazan bir script işlecidir.
Rails, bir saldırı zincirinin kendisine bildirildiğini söyledi ancak “var olan tek saldırı zinciri olduğunu varsaymıyoruz.” Duyuru, açıklığın sömürülüp sömürülmediğini belirtmiyor.
Açıklık, GMO Flatt Security’den araştırmacı RyotaK tarafından HackerOne üzerinden bildirildi.
Hangi Rails Uygulamaları Etkileniyor
Bir uygulama yalnızca aşağıdaki üç koşulun tümü doğruysa etkilenir:
- Active Storage görüntü işlemesi için ImageMagick kullanır. Bu, config.active_storage.variant_processor = :mini_magick ayarıdır; load_defaults 6.1 veya daha eski sürümlerdeki uygulamalar için varsayılan ayardır.
- ImageMagick güvenlik politikası, saldırıda kullanılan kodları şu anda engellememektedir. Rails, Debian ve Ubuntu’nun sağladığı politikaların da bunu yapmadığını belirtiyor.
- Güvenilmez kullanıcıdan dosya yüklemelerini kabul eder.
İlk koşulun sağlanıp sağlanmadığını kontrol etmek için config.active_storage.variant_processor ayarına bakın. Bu ayar ayarlanmamışsa, varsayılan load_defaults’a bağlıdır: 7.0’dan önce :mini_magick, 7.0’dan itibaren ise :vips. Aynı ayar, yüklemeleri analiz eden kütüphaneyi belirler; yalnızca varyant üreten kütüphaneyi değil.
8.0.5.2’den önceki tüm Active Storage sürümleri etkilenmiştir; 8.1’in 8.1.4.1’den önceki sürümleri de böyledir. 8.0’dan eski sürüm serileri artık desteklenmemektedir ve Rails bunlar için düzeltilmiş sürümler yayınlamayacaktır.
Temmuz ayında Rails, ImageMagick yerine libvips kullanan uygulamaları etkileyen farklı bir kritik Active Storage açığını, CVE-2026-66066’yı düzeltmişti. ImageMagick kullanan uygulamalar o açığın saldırı yolundan etkilenmiyordu, ancak şimdi bunun açıldığı yoldan etkilenebilirler.
Aynı sürümler, Rails’in yüksek olarak değerlendirdiği ve CVSS skoru 8.8 olan ikinci bir Active Storage açığını, GHSA-v924-7rp8-4mxh’yi dezeltmektedir. Active Storage, yüklenen dosyanın uzantısını koruyan geçici dosya adlarıyla yüklemeleri ImageMagick ve FFmpeg’e aktarıyordu.
Bu araçlar, bir dosyanın içeriği biçimini göstermediğinde uzantıdan bir kodlayıcı seçebilir. Bu nedenle, bir yüklemenin dosya adını seçip içerik türünü belirten bir saldırgan, onu işleyecek kodlayıcıyı seçebilir.
Sorun Ne Yapılmalı
Rails, mümkün olan en kısa sürede güncelleme yapılmasını şiddetle tavsiye ediyor. İki sürüm toplamda 21 güvenlik açığınızeltmektedir.
Düzeltilmiş sürümler bir ImageMagick güvenlik politikasıyla birlikte gelir. MiniMagick, Active Storage’ın ImageMagick’i çağırmak için kullandığı Ruby gem’idir. Varsayılan kurulumunda, MiniMagick’in çalıştırdığı her ImageMagick komutu politikanı uygular; yalnızca Active Storage’dan gelen komutlar değil.
Politika, MSL kodlayıcısını; görüntü dışında dosya okuyan veya silen kodlayıcıları; uzak veya yerel başvuruları çeken ya da bunları ekranda gösteren kodlayıcıları; Ghostscript ile desteklenen tüm kodlayıcıları ve gs temsilcisini; ayrıca @filename dolaylı yolunu engeller.
- 8.1.4.1 veya 8.0.5.2 sürümüne güncelleyin. :mini_magick kullanan uygulamalar ayrıca mini_magick 5.1 veya sonraki bir sürüme ihtiyaç duyar; aksi halde başlatmada hata verir. Rails 8.0, bakım politikası kapsamında 7 Kasım 2026’ya kadar yalnızca güvenlik düzeltmeleri alır.
- Uygulamanın yeni politikayı yüklediğini, Active Storage kılavuzunun açıkladığı gibi, bin/rails runner ‘puts MiniMagick.identify { |i| i.list “policy” }’ komutunu çalıştırarak doğrulayın.
- Gönderilen politikanın uygulamaya hiç olsun olsun ulaşıp ulaşmadığını kontrol edin. MiniMagick.cli_env’yi başlatmadan sonra değiştiren, ortamı MiniMagick.cli_prefix ile temizleyen veya kendi MiniMagick::Shell’ini kuran bir uygulama için böyle değildir; bu tür bir uygulama kuralları ImageMagick’in sistem politikasına koymalıdır.
- GraphicsMagick kullanan uygulamalar gönderilen politikadan korunmaz, çünkü GraphicsMagick ImageMagick politikalarını okumaz.
- Sunucunun kendi ImageMagick politikasını kontrol edin. Gönderilen politika bunu yerine geçirmek yerine üzerine ekler. Burada bir kodcu’ya izin veren, yıldız işareti gibi bir kalıp içeren pattern=”*” kuralı, o kodcuya yönelik gönderilen politikanın engelini geçersiz kılar.
- Ugulama PDF veya PostScript dosyalarını ImageMagick üzerinden işliyorsa, gs temsilcisini ve sunucunun policy.xml’inde kullandığı kodcuları yeniden izin verin.
- Henüz güncelleyemiyorsanız, gönderilen politikanın kurallarını, activestorage/lib/active_storage/image_magick/policy.xml dosyasını ImageMagick’in sistem politikasına, örneğin /etc/ImageMagick-7/policy.xml dosyasına kopyalayın. En azından MSL kodcusunu, Ghostscript coducularını ve gs temsilcisini engelleyin. Rails, düzeltmeyi ayrıca 8.1 ve 8.0 için yamalar olarak da yayımladı.
- 8.0’dan eski sürüm dizisindeki uygulamalar bu geçici çözümü kullanabilir veya 8.0 veya sonraki bir sürüme güncelleyebilir.
- Rails’in ikinci açığa yönelik geçici çözümleri yalnızca FFmpeg’in nasıl kullanılacağını değiştirir. Hiçbiri ImageMagick’i kapsamaz.
- Ugulama ekleri Disk hizmetiyle saklıyorsa, secret_key_base’yi ve uygulama sürecinin okuyabildiği her diğer sırrı değiştirin. Buna anahtar dahil, config/credentials.yml.enc’in içerdiği her şey, depolama ve veritabanı kimlik bilgileri ve üçüncü taraf belirteçleri dahildir. Maruz kalmış bir sırrı yedek olarak saklamayın.
Uyarı, bir uygulamanın zaten hedef alınıp alınmadığını nasıl kontrol edeceğinizini açıklamaz.
Ruby on Rails





[…] Çekebilir: Crafted ImageMagick Uploads ile Sunucu Dosyalarına Yazım İmkanı Veren Kritik Ray Hatası → Kaynak: Techfundingnews ↗ […]