Apache Software Foundation’ın en yaygın kullanılan iki ürününde keşfedilen kritik güvenlik açıkları, dünya genelinde geniş çaplı siber saldırılara yol açtı. Palo Alto Networks Unit 42 ekibinin yayınladığı derinlemesine analize göre, Apache Tomcat ve Apache Camel’daki uzaktan kod çalıştırma (RCE) açıkları Mart 2025’teki duyurularından bu yana 70’ten fazla ülkede 125.000’in üzerinde saldırı girişimine maruz kaldı. CVE-2025-24813 (Apache Tomcat), CVE-2025-27636 ve CVE-2025-29891 (Apache Camel) olarak tanımlanan bu zafiyetler, saldırganlara sistem yetkilerinde keyfi kod çalıştırma imkanı tanıyor.
Teknik Genel Bakış
Etkilenen Sistemler ve Versiyonlar
Apache Tomcat CVE-2025-24813:
- 9.0.0.M1 – 9.0.98
- 10.1.0-M1 – 10.1.34
- 11.0.0-M1 – 11.0.2
Apache Camel CVE-2025-27636 ve CVE-2025-29891:
- Middleware entegrasyon framework’ünün HTTP header filtreleme mekanizmalarını etkileyen versiyonlar
Zafiyet Mekanizmaları
Apache Tomcat’teki güvenlik açığı, HTTP PUT isteklerinin yanlış işlenmesinden kaynaklanıyor. Partial PUT ve session persistence özelliklerinin birlikte etkin olduğu konfigürasyonlarda, saldırganlar serialized session dosyalarının üzerine yazabilir ve deserialization sırasında kötü amaçlı kod çalıştırabilirler.
Apache Camel ise case-sensitive HTTP header filtrelemesindeki bir zayıflıktan muzdarip. Saldırganlar, CAmelExecCommandExecutable gibi başlıkları manipüle ederek uzaktan komut enjekte edebiliyorlar.
Saldırı Anatomisi: Tomcat Partial PUT Sömürüsü
İki Aşamalı Exploit Süreci
Aşama 1: Payload Yerleştirme
PUT /path/to/application HTTP/1.1
Host: target.com
Content-Type: application/octet-stream
Content-Range: bytes 0-1023/2048
Content-Length: 1024
[Serialized malicious Java object ending with .session extension]
Saldırgan, .session uzantılı bir dosya olarak görünen serialized kötü amaçlı nesneyi yükler. Tomcat’in session persistence mekanizması bu dosyayı iki konuma kaydeder:
- Normal cache dosyası:
webappsdizini altında - Geçici dosya:
workdizini altında nokta (.) ile başlayan isimle
Aşama 2: Kod Çalıştırma Tetikleme
GET /target/page HTTP/1.1
Host: target.com
Cookie: JSESSIONID=.[malicious_filename]
Özel hazırlanmış JSESSIONID cookie değeri, Tomcat’i cached malicious kodu deserialize etmeye ve çalıştırmaya zorlar.
Exploit Önkoşulları
- Readonly Parametresi: Devre dışı olmalı
- Session Persistence: Etkin olmalı
- Partial PUT: Desteklenmeli
- Content-Range Headers: İşlenmeli
Apache Camel Header Injection Zafiyeti
Case-Sensitivity Sömürüsü
Apache Camel’ın HTTP header filtreleme mekanizması, büyük-küçük harf duyarlılığı nedeniyle bypass edilebiliyor:
POST /camel/endpoint HTTP/1.1
Host: target.com
CAmelExecCommandExecutable: /bin/sh
camelExecCommandArgs: -c "malicious command"
Filtreleme mekanizması camelExecCommandExecutable için kontrol yaparken, CAmelExecCommandExecutable varyantını yakalayamıyor, bu da komut enjeksiyonuna olanak tanıyor.
Tehdit Manzarası Analizi
Saldırı İstatistikleri
Unit 42’nin telemetri verileri endişe verici bir tablo ortaya koyuyor:
- Toplam Saldırı Girişimi: 125.856
- Tomcat Hedefli Saldırılar: 7.859
- Etkilenen Ülke Sayısı: 70+
- Zirve Saldırı Dönemi: Mart 2025 ilk haftası
Saldırı Vektörleri ve Araçlar
Saldırıların büyük çoğunluğu Nuclei Scanner şablonlarını kullanıyor. Bu açık kaynaklı araç, hem güvenlik profesyonelleri hem de kötü niyetli aktörler tarafından kolayca erişilebilir durumda. Nuclei’nin hazır exploit şablonları, teknik bilgisi sınırlı saldırganların bile bu açıkları sömürmesini kolaylaştırıyor.
# Örnek Nuclei Template Yapısı
id: CVE-2025-24813
info:
name: Apache Tomcat RCE
severity: critical
requests:
- method: PUT
path:
- "{{BaseURL}}/exploit.session"
headers:
Content-Range: "bytes 0-1023/2048"
Tespit ve Önleme Stratejileri
Acil Güvenlik Önlemleri
1. Yama Yönetimi
- Apache Tomcat güvenli versiyonlarına derhal yükseltme
- Apache Camel güncellemelerini uygulama
- Tüm bağımlılıkları gözden geçirme
2. Konfigürasyon Sertleştirme
Tomcat için:
<!-- web.xml konfigürasyonu -->
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>readonly</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>input</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
Camel için:
// Header filtreleme güçlendirmesi
camelContext.getGlobalOptions()
.put("CamelExecCommandExecutable.disabled", "true");
3. Network Seviyesi Koruma
WAF kuralları örneği:
# Suspicious PUT requests with .session extension
SecRule REQUEST_METHOD "PUT" \
"chain,id:1001,\
deny,\
msg:'Potential Tomcat RCE attempt'"
SecRule REQUEST_URI "\.session$"
# Block suspicious Content-Range headers
SecRule REQUEST_HEADERS:Content-Range "@rx bytes \d+-\d+/\d+" \
"id:1002,\
deny,\
msg:'Suspicious Content-Range header'"
İzleme ve Log Analizi
Şüpheli Aktivite Göstergeleri (IoC):
- HTTP Method Patterns:
- PUT istekleri ile
.sessionuzantılı dosyalar - Content-Range header’lı PUT istekleri
- Anormal JSESSIONID cookie değerleri
- PUT istekleri ile
- Log Analizi Sorguları:
# Apache access logs
grep -E "PUT.*\.session|Content-Range.*bytes" access.log
# Tomcat catalina logs
grep -E "deserialize|ObjectInputStream" catalina.out
# Camel logs
grep -i "camelexec" application.log
- SIEM Korelasyon Kuralları:
event.action:"PUT" AND
url.path:*.session AND
http.request.headers.content-range:*
Incident Response Playbook
Tespit Aşaması
- Automated Scanning Detection:
- Nuclei Scanner imzalarını tanımlama
- Yüksek frekanslı PUT isteklerini izleme
- Anormal session ID pattern’lerini tespit etme
- Compromise Indicators:
/workdizininde nokta ile başlayan şüpheli dosyalar- Beklenmeyen Java process’leri
- Outbound network bağlantıları
Müdahale Prosedürleri
Immediate Actions:
- Etkilenen sistemleri izole etme
- Session persistence’ı devre dışı bırakma
- Readonly parametresini etkinleştirme
- WAF kurallarını devreye alma
Forensic Analysis:
# Session dosyalarını kontrol
find /path/to/tomcat/work -name ".*session" -type f
# Process analizi
ps aux | grep -E "java.*tomcat|suspicious_process"
# Network bağlantıları
netstat -anp | grep ESTABLISHED
Temizleme ve Kurtarma
- Malicious Dosya Temizliği:
# Şüpheli session dosyalarını temizle
find /path/to/tomcat -name "*.session" -mtime -7 -delete
- Sistem Güçlendirme:
- Güvenli konfigürasyonları uygulama
- Monitoring araçlarını güncelleme
- Backup stratejilerini gözden geçirme
Uzun Vadeli Güvenlik Önerileri
DevSecOps Entegrasyonu
1. CI/CD Pipeline Güvenliği:
# Örnek security scanning pipeline
stages:
- dependency-check
- vulnerability-scan
- configuration-audit
dependency-check:
script:
- mvn dependency-check:check
- check Apache components versions
2. Infrastructure as Code (IaC) Kontrolleri:
# Terraform güvenlik politikası örneği
resource "aws_security_group_rule" "block_tomcat_put" {
type = "ingress"
from_port = 8080
to_port = 8080
protocol = "tcp"
# PUT metodunu engelleyen WAF rule reference
description = "Block PUT requests to Tomcat"
}
Threat Intelligence Integration
Organizasyonlar, bu tip zero-day tehditlere karşı proaktif olmak için:
- CVE Feed Automation: Otomatik güvenlik açığı tarama ve bildirim sistemleri kurmalı
- Threat Hunting: Proaktif tehdit avcılığı programları geliştirmeli
- Purple Team Exercises: Düzenli kırmızı-mavi takım tatbikatları yapmalı
Sonuç ve Gelecek Perspektifi
Apache Tomcat ve Camel’daki bu kritik güvenlik açıkları, modern web uygulamalarının temelindeki sistemlerin bile sofistike saldırılara karşı savunmasız kalabileceğini gösteriyor. 125.000’i aşkın saldırı girişimi, threat actor’ların bu açıkları ne kadar hızlı weaponize edebildiğinin kanıtı.
Network güvenlik profesyonelleri için çıkarılacak dersler:
- Hızlı Yama Döngüsü: Kritik açıklar için 24-48 saatlik yama penceresi hayati önem taşıyor
- Defense in Depth: Tek bir güvenlik katmanına güvenmek yetersiz; çok katmanlı savunma şart
- Visibility: Kapsamlı logging ve monitoring olmadan, saldırıları tespit etmek neredeyse imkansız
- Automation: Manuel süreçler, modern tehdit hızına yetişemiyor
Bu olay, Java ekosistemindeki deserialization zafiyetlerinin hala ciddi bir tehdit oluşturduğunu ve organizasyonların application security posture’larını sürekli gözden geçirmeleri gerektiğini bir kez daha ortaya koyuyor. Güvenlik, bir destinasyon değil, sürekli bir yolculuktur.
