Ruby on Rails'e Giriş
Ruby on Rails (Rails), Ruby ile oluşturulmuş tam yığın, Model-Görünüm-Denetleyici (MVC) web çatısıdır. "Piller dahil" olarak gelir ve geliştiricilere kutudan çıkar çıkmaz ihtiyaç duydukları her şeyi sunar: Nesne İlişkisel Eşleyici (Active Record), istek/yanıt ve görünüm katmanı (Action Pack/Action View), arka plan iş işleme, postalar, WebSocket desteği, dosya depolama ve yükleme (Active Storage) ve çok daha fazlası.
2004'teki ilk sürümünden bu yana Ruby on Rails, dünyada en yaygın olarak benimsenen web çerçevelerinden biri haline geldi. Bugün GitHub, Shopify, Airbnb, Basecamp ve Netflix gibi yüksek profilli platformlar da dahil olmak üzere milyonlarca web sitesi ve uygulamaya güç veriyor. Yapılandırma, geliştirici üretkenliği ve hızlı prototip oluşturma üzerine güçlü vurgusu ile Rails, hem yeni başlayanlar hem de büyük işletmeler için tercih edilen bir çerçeve haline geldi.
Birim 515 Araştırma: Rails'teki Kritik Güvenlik Açıklarının Ortaya Çıkarılması
Bağımsız araştırma sırasında, OPSWAT'ın Unit 515 ekibinin bir üyesi olan Thai Do, Ruby on Rails'de biri uzaktan kod çalıştırmaya (RCE) yol açabilecek iki güvenlik açığı tespit etti. Bu bulgular, OPSWAT 'in süreç boyunca koordine ettiği Rails güvenlik ekibine sorumlu bir şekilde ifşa edildi.
13 Ağustos 2025'te Rails ekibi halka açık tavsiyeler yayınladı ve her iki güvenlik açığını da ele alan yamalı sürümler yayınladı.
Etkilenen Sürümler ve Düzeltilen Sürümler
Bileşen | Etkilenen Sürümler | Sabit Sürümler |
---|---|---|
Aktif Depolama (CVE-2025-24293) | Rails ≥ 5.2.0 ve altı sabit sürüm | 7.1.5.2, 7.2.2.2, 8.0.2.1 |
Aktif Kayıt Günlüğü (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'te Belirlenen Güvenlik Sorunları
CVE-2025-24293 - Aktif Depolama Güvenli Olmayan Dönüştürme Yöntemleri
Bu güvenlik açığı, Rails sürüm ≥ 5.2.0'daki Aktif Depolamayı etkiler. Güvenli olmayan görüntü dönüştürme yöntemleri mini_magick'e aktarıldığında ortaya çıkar ve bu da doğrulanmamış kullanıcı girdisiyle birleştirildiğinde uzaktan kod yürütülmesine (RCE) yol açabilir. Rails, kusurun varsayılan yapılandırma altında istismar edilemeyeceğini belirtirken, dönüştürme seçeneklerini kullanıcılara sunan uygulamalar özellikle risk altındadır.
CVE-2025-55193 - Aktif Kayıt Günlüğünde ANSI Kaçış Enjeksiyonu
Bu güvenlik açığı, 7.1.5.2, 7.2.2.2 ve 8.0.2.1'den önceki tüm Rails sürümlerinde Active Record günlüğünü etkilemektedir. Saldırganlar, ANSI kaçış dizileri içeren özel olarak hazırlanmış tanımlayıcıları günlüklere enjekte ederek sorguların terminal çıktısında nasıl görüneceğini manipüle edebilir ve yanıltıcı veya bozuk günlüklere yol açabilir. Kusur doğrudan verileri açığa çıkarmasa veya kod yürütmeyi mümkün kılmasa da, izleme ve olay müdahale çabalarını engelleyebilir. Rails güvenlik ekibi sorunu aynı yamalı sürümlerde çözmüştür.
CVE-2025-24293 - Active Storage Uzaktan Kod Yürütme Teknik Analizi
Aktif Depolamaya Genel Bakış
Active Storage, dosya yüklemelerini işlemek için Rails'in yerleşik çerçevesidir. Geliştiricilerin Active Record modellerine dosya eklemesine ve bunları yerel olarak (geliştirme/test için) ya da Amazon S3, Google Cloud Storage veya Microsoft Azure gibi bulut hizmetlerinde depolamasına olanak tanır. Core özellikler arasında görüntü dönüşümleri gerçekleştirme, PDF'ler ve videolar gibi görüntü olmayan dosyalar için önizleme oluşturma ve yedekleme veya taşıma için yüklemeleri birden fazla hizmete yansıtma yer alır.
Görüntü Dönüşümleri Nasıl Çalışır?
Görüntü dönüşümleri, geliştiricilerin ekleri belirli boyutlarda veya biçimlerde sunmasını sağlar. Bu, bir görüntü ekinde variant() yöntemini çağırarak ve desteklenen işlemleri ileterek yapılır.
Bir istemci değişken bir URL istediğinde, Active Storage orijinal blobdan talep üzerine dönüşümü gerçekleştirir, sonucu yapılandırılmış hizmette depolar ve yeni oluşturulan dosyaya bir yönlendirme döndürür.
Rails görüntü dönüşümleri için iki işlemciyi destekler: Vips ve MiniMagick. Kullanılan işlemci config.active_storage.variant_processor aracılığıyla yapılandırılabilir.
Görüntü dönüşümlerinde desteklenen belirli işlemler image_processing gem tarafından belirlenir ve Rails uygulaması için yapılandırılan temel işlemciye bağlıdır.
CVE-2022-21831 için Eksik Düzeltme
Mart 2022'de Rails ekibi, Active Storage'ın görüntü dönüştürme özelliğinde kritik bir kod enjeksiyonu açığı olan CVE-2022-21831'i açıkladı. Yama, sorunu hafifletmek için varsayılan bir izin verilen dönüştürme yöntemleri listesi sundu.
Ancak, yama ve Rails kaynak kodunun daha derinlemesine incelenmesi sırasında, Thai DoOPSWAT Birim 515) orijinal düzeltmeyi eksik hale getiren bir bypass keşfetti. Bu bypass, saldırganların Uzaktan Kod Yürütme (RCE) elde etmeleri için bir yol sunarak CVE-2025-24293'ün ifşa edilmesine yol açtı.
image_processing Gemisindeki Kök Neden
Bir dönüşüm uygulandığında, Rails işlemi image_processing gem'ine devreder, bu da sonunda lib/image_processing/processor.rb dosyasında ImageProcessing::Processor#call çağrısını yapar
Yapılandırılan değişken işlemci MiniMagick ise, güvenlik açığı lib/image_processing/mini_magick.rb içindeki iki işlevde bulunur:
- load_image - **loader'dan onaylanmamış seçenekleri kabul eder.
-save_image - **saver öğesinden doğrulanmamış seçenekleri kabul eder.
load_image için, **loader 'daki page, geometry ve auto_orient dışındaki tüm anahtar-değer çiftleri **options'da korunur. Aynı durum, allow_splitting dışındaki anahtarların **options içinde kaldığı save_image için de geçerlidir. Bu seçenekler daha sonra Utils.apply_options(magick, **options)'a aktarılır, bu da onları MiniMagick CLI bayrakları (örneğin, -quality) olarak uygular.
Her ne kadar loader ve saver varsayılan izin listesine dahil edilse ve bu nedenle güvenli kabul edilse de, bu güven yersizdir. Dikkatlice hazırlanmış bir girdi ile, bir saldırgan kontrolleri atlamak için bu seçenekleri kullanabilir ve sonuçta Rails'in ana makinede keyfi sistem komutları yürütmesine neden olabilir.
Rails Uygulamalarında İstismar Senaryosu
Örneğin, bir uygulama doğrulanmamış kullanıcı girdisini doğrudan dönüştürme yöntemlerine geçirirse:
Bir saldırgan, yükleyici veya koruyucu seçeneklerini manipüle etmek için kötü amaçlı girdi oluşturabilir. Bu, izin listesini atlayabilir ve sunucuda rastgele komutlar çalıştırarak Uzaktan Kod Yürütme (RCE) ile sonuçlanabilir.
Kavram Kanıtı: Uzaktan Kod Yürütme
OPSWAT Unit 515, güvenlik açığı bulunan sürümleri ( 8.0.2.1, 7.2.2.2 ve 7.1.5.2'den önce) çalıştıran Rails uygulamalarında, doğrulanmamış dönüşüm girdisinin kabuk komutunun yürütülmesiyle sonuçlandığı bir istismar zincirini başarıyla göstermiştir.
Bu video PoC, CVE-2025-24293 'ün istismar edilebilirliğini göstermekte ve Rails uygulamaları üzerindeki gerçek dünya etkisini vurgulamaktadır:
Zarar Azaltma ve Profesyonel Sızma Testi Hizmetleri
Kuruluşlar, Ruby on Rails'i en son güvenlik sürümlerine (7.1.5.2, 7.2.2.2 veya 8.0.2.1) yükselterek CVE-2025-24293 ve CVE-2025-55193 'ü ele almalıdır. Acil yama mümkün değilse, geçici önlemler arasında görüntü dönüşümlerini önceden tanımlanmış ön ayarlarla kısıtlamak, kullanıcı girdisini doğrulamak ve sterilize etmek, ImageMagick politikalarını güçlendirmek ve günlüklerin ANSI kaçış dizilerini yorumlayamamasını sağlamak yer alır.
Ancak yamaların uygulanması modern web ortamlarındaki tüm riskleri ortadan kaldırmaz. Özel iş mantığı, üçüncü taraf entegrasyonları ve karmaşık dağıtım hatları genellikle satıcı tavsiyelerinin ötesine geçen istismara açık yollar yaratır. Bu nedenle web uygulaması sızma testleri çok önemlidir.
OPSWAT'ta Unit 515, otomatik tarayıcıların veya kontrol listesi denetimlerinin çok ötesine geçen özel web uygulaması sızma testi hizmetleri sunar. Ekibimiz, farklı sektörlerdeki büyük ölçekli uygulamaları test etme konusunda yılların deneyimine sahip tecrübeli saldırı güvenliği uzmanlarından oluşmaktadır. Sistematik, düşmanca bir metodoloji kullanarak, kimlik doğrulama akışları, girdi doğrulama, erişim kontrolü ve veri işlemedeki güvenlik açıklarını ortaya çıkarıyoruz - Ruby on Rails gibi tamamen yamalanmış çerçevelerde bile devam edebilen sorunlar.
Her bir görev, derin teknik uzmanlığı kurumsal kullanıma hazır raporlama ile birleştirerek, geliştirme ekiplerinin kusurları etkili bir şekilde gidermesini sağlayan net, eyleme geçirilebilir bilgiler sağlar. Kuruluşlar Unit 515 ile çalışarak, kritik uygulamalarının yalnızca gerçek dünyadaki saldırı tekniklerini simüle etmekle kalmayıp aynı zamanda düzeltmelerin açıkları gerçekten kapattığını doğrulayan uzmanlar tarafından test edildiğinin güvencesini elde eder. Bu uzmanlık, düzeltme çabalarını güçlendirir, kalan riski azaltır ve gelişen tehditlere karşı genel uygulama direncini yükseltir