YENİ: 2025 SANS ICS/OT Siber Güvenlik Raporu Yayınlandı

Rapor Al
Site çevirileri için yapay zeka kullanıyoruz ve doğruluk için çaba göstersek de her zaman %100 kesin olmayabilir. Anlayışınız için teşekkür ederiz.

CVE-2025-32432: Craft CMS'de Kimlik Doğrulaması Yapılmamış Uzaktan Kod Yürütme

tarafından OPSWAT
Bu Gönderiyi Paylaş
OPSWAT Altyapı Siber Güvenlik Yüksek Lisans Burs Programı'ndan iki araştırmacı mavi arka plan üzerinde

Nisan 2025'te Orange Cyberdefense, bir olay soruşturması sırasında Craft CMS'de kritik bir güvenlik açığı keşfetti. Bu güvenlik açığı şu anda CVE-2025-32432 olarak takip ediliyor. Bu güvenlik açığı, NVD (Ulusal Güvenlik Açığı Veritabanı) tarafından maksimum ciddiyet derecesi CVSS v3.1 puanı 10,0 (Kritik) olarak değerlendirilen, kimlik doğrulaması yapılmamış RCE (uzaktan kod yürütme) işlemlerine olanak tanıyor.

OPSWAT Altyapı Siber Güvenlik Yüksek Lisans Burs Programı kapsamında, bursiyerlerimiz bu güvenlik açığını kapsamlı bir şekilde inceledi. Bu inceleme, güvenlik açığının yeniden üretilmesi, etkisinin doğrulanması, organizasyonel risklerin değerlendirilmesi ve önerilen koruma stratejilerinin analizini içeriyordu.

Bu blog, CVE-2025-32432'yi kapsamlı bir şekilde derinlemesine inceleyerek, temel nedenini, istismar akışını ve daha geniş güvenlik etkilerini analiz ederken, kuruluşların bu tehdide karşı savunma yapmaları için uygulanabilir kılavuzlar sunar.

CVE-2025-32432 Giriş

CVE-2025-32432, Craft CMS sürümleri 3.0.0-RC1 ile 3.9.14, 4.0.0-RC1 ile 4.14.14 ve 5.0.0-RC1 ile 5.6.16'yı etkiler. CWE-94: Kod Enjeksiyonu olarak sınıflandırılan bu kusur, güvenilmeyen girdilerin yanlış işlenmesinden kaynaklanır ve sonuçta kimlik doğrulaması yapılmamış RCE'yi mümkün kılar.  

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığı için CVSS 3.x ölçütleri kritik temel puanlar gösteriyor

Craft CMS ve Yii Çerçevesi

Craft CMS, geliştiricilerin ve içerik ekiplerinin katı, önceden tanımlanmış şablonlara bağlı kalmak yerine esnek, tamamen özelleştirilmiş web siteleri oluşturmalarını sağlayan modern bir içerik yönetim sistemidir. Dünya çapında 46.000'den fazla web sitesinde kullanılması nedeniyle, hem yaygın olarak kullanılmakta hem de yüksek etkili güvenlik açıkları arayan saldırganların sık sık hedef aldığı bir sistemdir.

Craft CMS, modern web geliştirme için tasarlanmış hızlı ve güçlü bir PHP çerçevesi olan Yii Framework üzerine kurulmuştur. Yii temel yapı ve araçları sağlarken, Craft CMS bunu esnek bir içerik yönetim sistemi sunmak için genişletir.

Craft CMS ve Yii Framework logoları yan yana, CVE-2025-32432 uzaktan kod yürütme güvenlik açığı ile ilgili

Yii çerçevesinin temel özelliklerinden biri, Bağımlılık Enjeksiyonu (DI) konteyneridir. Bağımlılık Enjeksiyonu, bileşenlerin bu kaynakları kendileri oluşturmalarını gerektirmek yerine, ihtiyaç duydukları kaynakları sağlayan bir tasarım modelidir. Yii'nin DI konteyneri oldukça esnektir ve nispeten basit yapılandırma kuralları ile karmaşık nesneler oluşturabilir.

Ancak bu esneklik risk de beraberinde getirir. CVE-2025-32432 vakasında, DI konteyneri güvenilmeyen kullanıcı girdileriyle birlikte yanlış kullanılmış ve uzaktan kod yürütme için bir yol açmıştır. Bu vaka, güvenli ve güçlü çerçeve özelliklerinin bile, güvenlik etkileri tam olarak anlaşılmadan entegre edildiğinde tehlikeli hale gelebileceğini göstermektedir.

CVE-2025-32432'ye Derinlemesine Bakış

Craft CMS, sunucuda doğrudan yeniden boyutlandırılmış görüntüler oluşturarak performansı optimize etmek için tasarlanmış Image Transforms adlı bir özellik içerir. Craft CMS, 300×300 küçük resim olarak görüntülemek için 4,5 MB boyutundaki büyük bir görüntüyü sunmak yerine, otomatik olarak daha küçük, optimize edilmiş bir sürüm oluşturur ve sunar. Bu yaklaşım, bant genişliği kullanımını azaltır ve sayfa yükleme hızını önemli ölçüde artırır.

Bu işlevselliği yaygın olarak kullanılabilir hale getirmek için Craft CMS, kimlik doğrulama gerektirmeden actions/assets/generate-transform uç noktasını açığa çıkarır. Bu, hem kimliği doğrulanmış hem de anonim kullanıcıların optimize edilmiş görüntülerden yararlanabilmesini sağlarken, aynı zamanda herkesin uygulamaya özel olarak hazırlanmış girdiler sağlayabileceği, herkese açık bir saldırı yüzeyi de ortaya çıkarır.

CVE-2025-32432 güvenlik açığıyla ilgili allowAnonymous mantığını gösteren Craft CMS AssetsController kod parçacığı

Bu iş akışını ayrıntılı bir şekilde analiz eden araştırmacılarımız, açık uç noktaya bir POST isteği gönderildiğinde AssetsController::actionGenerateTransform yönteminin çağrıldığını tespit etti. Bu işlev, handle parametresini doğrudan istek gövdesinden alır ve bir sonraki aşamada daha fazla işlenmek üzere aşağı akışa iletir.

CVE-2025-32432 uzaktan kod yürütme güvenlik açığı analiziyle ilgili Craft CMS PHP kodunun ekran görüntüsü

Bir sonraki adımda, ImageTransforms::normalizeTransform() yöntemi çağrılır. Bu yöntem, kullanıcı tarafından sağlanan tanıtıcı parametresini alır ve onu bir ImageTransform nesnesine dönüştürür. Nesne doğrudan güvenilmeyen girdiden oluşturulduğundan, bu durum yürütme akışında kritik bir risk noktası oluşturur.

CVE-2025-32432 uzaktan kod yürütme güvenlik açığı analiziyle ilgili Craft CMS'den PHP kod parçacığı

Bu işlem sırasında, kullanıcı tarafından kontrol edilen $transform dizisindeki (handle parametresinden kaynaklanan) tüm anahtar-değer çiftleri bir yapılandırma dizisine birleştirilir. normalizeTransform yöntemi daha sonra bu diziyi, yeni bir ImageTransform nesnesini oluşturmaktan sorumlu olan Craft::createObject() yöntemine aktarır.

CVE-2025-32432 uzaktan kod yürütme güvenlik açığıyla ilgili Craft CMS mantığını gösteren kod parçacığı

Bu güvenlik açığı, Craft::createObject() ( Yii'nin Yii::createObject() işlevini saran) işlevinin yapılandırma dizilerini işleme biçiminden kaynaklanmaktadır. Bu mekanizma, DI konteynerini kullanarak doğrulanmamış diziden doğrudan nesneleri oluşturup yapılandırdığı için, saldırganlar nesne oluşturma sürecini kontrol altına alabilirler.

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığıyla ilgili createObject işlevini gösteren vurgulanmış PHP kodu

Kötü amaçlı bir yük aktarıldığında, nesnenin yapıcı işlevi ( Model sınıfından miras alınmış) App::configure() yöntemini çağırır.

CVE-2025-32432 uzaktan kod yürütme güvenlik açığıyla ilgili Craft CMS oluşturucu mantığını gösteren vurgulanmış PHP kodu

Bu yöntem, saldırganın kontrolündeki dizideki her bir özelliği yineler ve bunları yeni nesneye atar.

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığıyla ilgili bir yapılandırma işlevini gösteren PHP kod parçacığı

When App::configure() assigns properties from the attacker-controlled configuration array, most keys are mapped directly onto the object. However, if a key begins with the prefix as, the assignment is routed through Component::__set, Yii’s magic setter. This method interprets as <name> as an instruction to attach a behavior (mixin) to the object.

Böyle bir kötü amaçlı yük, Component::__set'in as önekli özellikleri işleme şeklini istismar etmek için oluşturulabilir, örneğin exploit:

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığı için istismar yükünü gösteren kod ekran görüntüsü

Analizimize göre, Component::__set uygulamasında bir güvenlik önlemi bulunmaktadır: böyle bir özellik aracılığıyla bir davranış eklendiğinde, çerçeve yapılandırma dizisinde belirtilen sınıfın yii\base\Behavior sınıfının geçerli bir alt sınıfı olduğunu doğrular. Bu kontrol, rastgele sınıfların bileşenlere doğrudan eklenmesini önlemek amacıyla yapılmaktadır.

Craft CMS'den CVE-2025-32432 uzaktan kod yürütme güvenlik açığıyla bağlantılı mantığı gösteren vurgulanmış PHP kodu

Ancak, bu güvenlik önlemi göründüğü kadar etkili değildir. Bu zayıflık, Yii::createObject'in yapılandırma dizilerini işleme biçiminden kaynaklanmaktadır.

Bir nesneyi örneklendirirken, Yii::createObject özel __class parametresine öncelik verir. Bu anahtar mevcutsa, değeri örneklendirme için hedef sınıf olarak kullanılır ve yapılandırma dizisindeki standart sınıf anahtarı yok sayılır.

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığı ile ilgili nesne oluşturma mantığını gösteren PHP kod parçacığı

Saldırgan, iki anahtar içeren bir yükü istismar davranışı olarak oluşturabilir:

  1. 'class' => '\craft\behaviors\FieldLayoutBehavior' - yii\base\Behavior sınıfını genişleten geçerli bir sınıf. Bu değer, Component::__set içindeki is_subclass_of kontrolünü karşılamak için vardır ve hata oluşturmadan yürütmenin devam etmesini sağlar.
  2. '__class' => '\yii\rbac\PhpManager' - Saldırganın asıl hedefi. Bu, saldırganın örneklendirmek istediği "gadget" sınıfıdır.

Kod çalıştırıldığında, Component::__set yalnızca sınıf anahtarını denetlediği için güvenlik kontrolünden geçer. Ancak, çerçeve daha sonra davranışı eklemek için Yii::createObject'i çağırdığında, __class'a öncelik verir ve bunun sonucunda saldırganın seçtiği \yii\rbac\PhpManager nesnesinin örneği oluşturulur.

\yii\rbac\PhpManager kullanımı kasıtlıdır. Yalnızca bir nesne oluşturmak istismar için yeterli değildir; RCE elde etmek için silah olarak kullanılabilecek yan etkileri olan bir gadget sınıfı gerekir. PhpManager, başlatma akışı nedeniyle POI (PHP Nesne Enjeksiyonu) saldırılarında yaygın bir hedeftir. Örnekleme sırasında, init() yöntemi load() yöntemini çağırır ve bu da loadFromFile($this->itemFile) yöntemini çağırır. $this->itemFile üzerinde kontrol sahibi olan bir saldırgan, uygulamayı kötü amaçlı bir dosyayı yüklemeye zorlayarak nesne oluşturmayı kod yürütmeye dönüştürebilir.

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığını gösteren, dosya dahil etme ile ilgili vurgulanmış PHP kod akışı

Tehlike, loadFromFile yönteminde yatmaktadır. PHP'de, require hedef dosyayı kod olarak çalıştırır, bu nedenle saldırgan dosya yolunu kontrol ederse, rastgele kod çalıştırmayı tetikleyebilir.

Saldırgan, sunucuya kötü amaçlı kod yerleştirmek için PHP oturum dosyalarını kullanır. Craft CMS, bir istek parametresine PHP enjekte ederek, yönlendirme işlemi sırasında yükü bir oturum dosyasına kaydeder. Daha sonra, PhpManager bu dosyayı yüklediğinde, saldırganın kodu çalıştırılabilir.

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığı istismar sürecini gösteren akış şeması

Tam saldırı zinciri üç aşamada çalışır. İlk olarak, saldırgan, Craft CMS'nin bir oturum dosyasına kaydettiği özel olarak hazırlanmış bir URL göndererek kötü amaçlı PHP yerleştirir. Ardından, görüntü dönüştürme uç noktasındaki __class bypass'ı kullanarak PhpManager gadget'ını yükler ve onu zehirlenmiş oturum dosyasına yönlendirir. Son olarak, PhpManager dosyayı yüklediğinde, saldırganın yükü çalıştırılır ve genellikle bir webshell veya ters shell aracılığıyla RCE ve sunucunun tam kontrolü sağlanır.

CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığını gösteren akış şeması, istismar JSON ve saldırı adımları
CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığı için istismar adımlarını gösteren terminal çıktısı
CVE-2025-32432 Craft CMS uzaktan kod yürütme istismarını www-data kullanıcısı olarak kabuk erişimi ile gösteren terminal

Etki Azaltma ve İyileştirme

CVE-2025-32432 ile ilişkili riskleri etkili bir şekilde azaltmak için, kuruluşların açık kaynak bileşenleri üzerinde görünürlük ve kontrol sahibi olması gerekir. Bileşenlerin net bir envanteri olmadan, yama uygulaması tahminlere dayalı bir iş haline gelir.

MetaDefender® platformunun tescilli bir teknolojisi olan OPSWAT , kullanılan tüm yazılım bileşenleri, kütüphaneler, Docker konteynerleri ve bağımlılıkların bir envanterini sunarak bu ihtiyacı karşılar. Kuruluşların bileşenlerini proaktif olarak izlemelerine, güvenliğini sağlamalarına ve güncellemelerine olanak tanır.

CVE-2025-32432 azaltımı için kritik güvenlik açıkları bulunan engellenmiş Craft CMS arşivini gösteren güvenlik tarama kullanıcı arayüzü
CVE-2025-32432 Craft CMS uzaktan kod yürütme güvenlik açığı ve düzeltme ayrıntılarını gösteren güvenlik panosu

Yukarıdaki örnekte, MetaDefender daki SBOM teknolojisi, CVE-2025-32432 güvenlik açığını içeren nginx-ingress-controller paketini taradı. Sistem, sorunu otomatik olarak Kritik olarak işaretledi ve mevcut düzeltilmiş sürümler hakkında rehberlik sağlayarak, ekiplerin güvenlik açığı istismar edilmeden önce hızlı bir şekilde önceliklendirip yamalamasına olanak tanıdı.

OPSWAT şu platformlarda mevcuttur MetaDefender Core ve MetaDefender Software Chain™'de mevcuttur vegüvenlik ekiplerinin güvenlik açıklarını daha hızlı tespit etmelerini ve bunlara daha hızlı müdahale etmelerini sağlar. OPSWAT ile güvenlik ekipleri şunları yapabilir:

  • Güvenlik açığı bulunan bileşenleri hızlıca bulun - Deserialization saldırılarından etkilenen açık kaynak bileşenleri anında belirleyin. Bu, güvenlik açığı bulunan kütüphaneleri yamalamak veya değiştirmek için hızlı bir şekilde harekete geçmenizi sağlar. 
  • Proaktif yama ve güncellemeler sağlayın - OPSWAT aracılığıyla açık kaynak bileşenleri sürekli olarak izleyerek deserializasyon güvenlik açıklarının önüne geçin. OPSWAT , güncel olmayan veya güvenli olmayan bileşenleri tespit ederek zamanında güncelleme yapılmasını ve saldırılara maruz kalma riskinin azaltılmasını sağlar. 
  • Uyumluluk ve raporlamayı sürdürün – OPSWAT , düzenleyici çerçevelerin yazılım tedarik zincirlerinde şeffaflığı giderek daha fazla zorunlu hale getirmesi nedeniyle kuruluşların uyumluluk gereksinimlerini karşılamasına yardımcı olur.

Yazılım tedarik zincirinizi yeni ortaya çıkan tehditlere karşı güçlendirmeye hazır mısınız?

Etiketler:

OPSWAT ile Güncel Kalın!

En son şirket güncellemelerini almak için bugün kaydolun, hikayeler, etkinlik bilgileri ve daha fazlası.