Araştırmacılar, Java platformu için açık kaynaklı bir framework olan Spring’de, CVE-2022-22965 kodlu, kritik bir güvenlik açığı keşfettiler. Ne yazık ki, daha güvenlik açığıyla ilgili resmi duyuru ve yamalar yayınlanmadan güvenlik açığına ilişkin ayrıntılar kamuoyuna sızdırıldı.
Güvenlik açığı, birçok web uygulaması için ciddi bir potansiyel tehdit oluşturması nedeniyle bilgi güvenliği uzmanlarının hemen dikkatini çekti. Yeni güvenlik açığı, çokca konuşulan Log4Shell‘e benzer şekilde, Spring4Shell olarak adlandırıldı.
VMware Spring çerçevesinin yaratıcıları, güvenlik açığı bulunan uygulamaları düzeltmek için yamalar yayınladı, bu nedenle Spring Framework sürüm 5.3 ve 5.2 kullanan tüm şirketlerin derhal 5.3.18 veya 5.2.20 sürümlerine yükseltmelerini öneriyoruz.
Spring4Shell nedir ve bu güvenlik açığı neden bu kadar tehlikeli?
Spring4Shell, RCE sınıfına ait yani bir saldırganın uzaktan kötü amaçlı kod yürütmesine izin veren bir güvenlik açığıdır. Şu an güvenlik açığının önem seviyesi CVSS v3.0 hesaplayıcısına göre 10 üzerinden 9,8. Güvenlik açığı, Java Development Kit 9 veya üzeri sürümler altında çalışan Spring MVC ve Spring WebFlux uygulamalarını etkiliyor.
Araştırmacılar, keşfedilen güvenlik açığını Salı gecesi VMware’e bildirmişlerdi ki Çarşamba günü güvenlik açığıyla ilgili kavram kanıtı (PoC) GitHub’da yayınlandı. PoC hızla kaldırılsa da güvenlik uzmanları (bazıları güvenlik açığının tehlikesini doğruladı) tarafından fark edildi. Ve bu kadar güçlü bir güvenlik açığının siber suçlular tarafından fark edilmemesi de pek olası değil.
Spring Framework’ü, Java geliştiricileri arasında oldukça popülerdir, bu da potansiyel olarak birçok uygulamanın savunmasız olabileceği anlamına geliyor. Bleeping Computer tarafından paylaşılan bir gönderiye göre, Spring4Shell’e karşı savunmasız olan Java uygulamaları, çok sayıda sunucunun güvenliğinin ihlal edilmesine neden olabilir. Ayrıca aynı gönderiye göre, güvenlik açığı hali hazırda saldırganlar tarafından aktif olarak kullanılıyor.
Spring4Shell güvenlik açığının istismar edilmesi için gereken koşullar
Yayınlandığı tarihte bilinen tek Spring4Shell istismar yöntemi için belirli koşulların bir araya gelmesi gerekiyor. Güvenlik açığı istismarının başarılı olması için saldırıya uğrayan tarafta aşağıdaki bileşenlerin kullanılması gerekiyor:
- Java Geliştirme Kiti sürüm 9 veya üzeri,
- Bir sunucu uygulaması kapsayıcısı olarak Apache Tomcat,
- Varsayılan JAR yerine WAR (Web Uygulama Kaynağı) dosya formatı,
- Spring-webmvc veya spring-webflux bağımlılıkları,
- Spring çerçevesinin 5.3.0’dan 5.3.17’ye, 5.2.0’dan 5.2.19’a kadar veya daha eski sürümleri.
Bununla birlikte, henüz bilinmeyen istismar seçeneklerinin olması ve aynı güvenlik açığından başka bir şekilde yararlanılması da oldukça olası.
Kendinizi Spring4Shell’e karşı nasıl korursunuz?
Spring çerçevesini kullanan herkes için ana tavsiye, kullanılan sürümün, güvenli olan 5.3.18 veya 5.2.20 sürümlerine yükseltilmesidir.
Aynı zamanda Apache Software Foundation, Tomcat tarafında saldırı vektörünün kapatıldığı Apache Tomcat 10.0.20, 9.0.62 ve 8.5.78’in yamalı sürümlerini yayınladı.
Spring geliştiricileri de, Spring Framework 5.3.18’in yamalı sürümüne bağlı olan Spring Boot 2.5.12 ve 2.6.6 uzantılarının yamalı sürümlerini yayınladı.
Herhangi bir nedenle yukarıdaki yazılımı güncelleyemiyorsanız, resmi Spring internet sitesinde yayınlanan geçici çözümlerden birini kullanmalısınız.