Sayfa başlığı dekoratif desen Sayfa başlığı dekoratif dalga

Apache HTTP/2 CVE-2026-23918 Kritik Açığı: Double-Free ile DoS ve RCE Riski — Acil Yama Rehberi (2026)

Ana SayfaHaberler › Apache HTTP/2 CVE-2026-23918 Kritik Açığı: Double-Fr...

Apache HTTP/2 CVE-2026-23918 Kritik Açığı: Double-Free ile DoS ve RCE Riski — Acil Yama Rehberi (2026)

01.06.2026 4 görüntülenme

Sunucunuzda Apache HTTP Server mı çalışıyor ve HTTP/2 açık mı? O zaman bu haberi sona kadar okuyun. CVE-2026-23918 kodlu yeni bir güvenlik açığı (Apache HTTP/2 vulnerability), tek bir kötü niyetli bağlantıyla web sunucunuzu çökertebiliyor — kimlik doğrulama bile gerekmiyor. Alesta Web olarak bu açığı, kimleri etkilediğini ve nasıl kapatacağınızı panik yaptırmadan, adım adım anlatacağız.

Kısa Özet: CVE-2026-23918 Nedir? (What is the Apache HTTP/2 Vulnerability?)

Çok kısa bir özetle: Apache HTTP Server'ın 2.4.66 sürümündeki mod_http2 modülünde bir double-free (çift serbest bırakma) hatası bulundu. Bu hata, saldırganın özel olarak hazırlanmış HTTP/2 paketleri göndererek sunucu işçi sürecini (worker process) çökertmesine olanak tanıyor. CVSS skoru 8.8, yani "kritik" seviyede.

İşin kötü tarafı şu: Saldırı için ne kullanıcı adı/şifre, ne özel bir URL, ne de özel bir başlık gerekiyor. Tek bir TCP bağlantısı ve iki HTTP/2 paketi yeterli. Bu yüzden Alesta Web ekibi olarak bu açığı acil müdahale gerektiren sınıfa koyuyoruz.

💡 Bilgi / Info:

Açık iki kişi tarafından raporlandı: Bartlomiej Dmitruk (Striga.ai) ve Stanislaw Strzalkowski (ISEC.pl). Sorun, Apache 2.4.67 sürümünde giderildi.

Açığın Teknik Detayı: Double-Free in mod_http2 (Technical Details)

Biraz teknik konuşalım ama merak etmeyin, sade tutacağız. Açık, mod_http2 modülünün stream temizleme (stream cleanup) kodunda, yani h2_mplx.c dosyasında yaşıyor.

Olay şöyle gelişiyor: İstemci (client), bir HTTP/2 HEADERS paketini gönderiyor ve hemen ardından aynı stream üzerinde sıfırdan farklı bir hata koduyla bir RST_STREAM paketi yolluyor. Üstelik bunu, multiplexer henüz o stream'i kaydetmeden (before the multiplexer has registered the stream) yapıyor.

Bu durumda nghttp2 kütüphanesinin iki callback'i art arda çalışıyor: on_frame_recv_cb ve on_stream_close_cb. İkisi de aynı temizleme fonksiyonunu çağırıyor ve aynı h2_stream işaretçisini (pointer) temizleme dizisine iki kez ekliyor. Sonuç: aynı bellek bloğu iki kez serbest bırakılıyor — klasik bir use-after-free / double free senaryosu.

Hata Tetikleyici Akış / Trigger Sequence

1. Client  -->  HEADERS frame        (stream X)
2. Client  -->  RST_STREAM frame     (stream X, error code != 0)
   # Multiplexer henüz stream X'i kaydetmedi
3. on_frame_recv_cb()   --> h2_stream pointer'ı temizlik dizisine ekler
4. on_stream_close_cb() --> AYNI pointer'ı tekrar ekler
   # => double free => worker process crash (DoS)
      

Alesta Web olarak şunu vurgulamak isteriz: Bu tür bellek hataları, sadece "çökme" ile sınırlı kalmayabiliyor. Aşağıda göreceğiniz gibi belirli koşullarda remote code execution (uzaktan kod çalıştırma) kapısını da aralıyor.

Kimler Etkileniyor? (Affected Versions and Real Impact)

Etkilenen ve Düzeltilen Sürümler / Affected & Fixed Versions

Etkilenen (Affected):   Apache HTTP Server 2.4.66
Düzeltilen (Fixed):     Apache HTTP Server 2.4.67
Etkilenmeyen:           MPM prefork yapılandırması
      

İki temel saldırı senaryosu (attack vector) var:

1) Hizmet Reddi / Denial of Service (DoS)

En kolay ve en yaygın senaryo bu. Araştırmacının ifadesiyle: "Tek TCP bağlantısı, iki paket, kimlik doğrulama yok, özel başlık yok, özel URL yok — ve worker çöküyor." Yani mod_http2 aktif olan ve çok iş parçacıklı (multi-threaded MPM, örneğin event ya da worker) çalışan varsayılan kurulumlar doğrudan risk altında.

2) Uzaktan Kod Çalıştırma / Remote Code Execution (RCE)

Bu senaryo daha zor ama mümkün. RCE için sunucunun Apache Portable Runtime (APR) ile mmap allocator kullanması gerekiyor — ki bu durum Debian tabanlı dağıtımlarda ve resmi Docker imajlarında varsayılan. Saldırı zinciri, Apache'nin sabit adreslerdeki "scoreboard" belleğini kullanarak ASLR korumasını atlatıyor (bypass ASLR).

⚠️ Dikkat / Warning:

Sadece "ben statik site yayınlıyorum" diye rahat olmayın. Açık, içeriğinizle değil, HTTP/2 protokol işlemenizle ilgili. mod_http2 yüklü ve etkinse, sitenizin ne sunduğundan bağımsız olarak savunmasızsınız. Alesta Web olarak müşterilerimizde en sık gördüğümüz hata, "benim sunucum küçük, kimse uğraşmaz" varsayımı oluyor — oysa bu tür açıklar otomatik botlarla taranıyor.

Etkilenip Etkilenmediğinizi Kontrol Etme (How to Check Your Version)

Önce sürümünüzü öğrenin. Sunucunuzda terminali açın ve şu komutu çalıştırın:

Apache Sürümünü Görüntüleme / Check Apache Version

# Çoğu dağıtımda
apachectl -v
# veya
httpd -v
# veya (Debian/Ubuntu)
apache2 -v

Çıktıda Apache/2.4.66 görüyorsanız etkilenmiş olabilirsiniz. Şimdi HTTP/2 modülünün yüklü olup olmadığını kontrol edin:

mod_http2 Aktif mi? / Is mod_http2 Loaded?

# Yüklü modülleri listele
apachectl -M 2>/dev/null | grep http2
# Çıktıda "http2_module (shared)" görürseniz modül aktiftir.

# MPM tipinizi öğrenin (prefork etkilenmez)
apachectl -M 2>/dev/null | grep mpm
💡 Bilgi / Info:

mpm_prefork_module görüyorsanız bu özel açıktan etkilenmezsiniz. Ancak mpm_event_module ya da mpm_worker_module + http2_module kombinasyonundaysanız güncelleme şart.

Çözüm: Apache 2.4.67'ye Güncelleme (The Fix — Upgrade Guide)

Kalıcı ve doğru çözüm tek: Apache HTTP Server'ı 2.4.67 ya da üstüne yükseltmek. Alesta Web olarak deneyimlerimize göre, paket yöneticisi üzerinden yapılan güncelleme en güvenli yöntem.

Debian / Ubuntu

sudo apt update
sudo apt install --only-upgrade apache2
# Güncelleme sonrası sürümü doğrula
apache2 -v
# Servisi yeniden başlat
sudo systemctl restart apache2

RHEL / AlmaLinux / Rocky / CentOS Stream

sudo dnf clean all
sudo dnf upgrade httpd
httpd -v
sudo systemctl restart httpd

Güncellemeden sonra mutlaka servisi tamamen yeniden başlatın (reload değil, restart). Çünkü bellekte hâlâ eski, açık barındıran worker süreçleri çalışıyor olabilir.

✅ Başarılı / Success:

Sürüm çıktısında Apache/2.4.67 (veya daha yüksek) gördüyseniz ve servis sorunsuz başladıysa, bu açık (this vulnerability) artık sizin için kapanmış demektir. Sitenizin hâlâ açıldığını da bir kez kontrol edin.

Hemen Güncelleyemiyorsanız: Geçici Önlemler (Temporary Mitigations)

Bazı durumlarda paket henüz dağıtıma düşmemiş ya da üretim sunucusunda hemen güncelleme yapamıyor olabilirsiniz. Bu durumda riski azaltmak için geçici bir önlem var: HTTP/2'yi geçici olarak devre dışı bırakmak.

HTTP/2'yi Geçici Kapatma / Temporarily Disable HTTP/2

# Apache yapılandırmanızda Protocols satırından h2/h2c'yi çıkarın:
# ESKİ:  Protocols h2 h2c http/1.1
# YENİ:  Protocols http/1.1

# Debian/Ubuntu'da modülü tamamen kapatmak için:
sudo a2dismod http2
sudo systemctl restart apache2
⚠️ YASAL UYARI / WARNING:

Bu yalnızca geçici bir önlemdir. HTTP/2'yi kapatmak performansı bir miktar düşürür (çoklu istek çoğullama kaybolur). Asıl çözüm 2.4.67 güncellemesidir; ilk fırsatta güncelleyip HTTP/2'yi geri açın. Alesta Web olarak sistemde yapacağınız değişiklik öncesi mutlaka yapılandırma yedeği almanızı öneririz.

Bunun yanında, önünüzde bir WAF (Web Application Firewall) veya reverse proxy varsa, HTTP/2 sonlandırmasını (termination) o katmana taşıyarak da arka uçtaki Apache'yi koruyabilirsiniz. Ama unutmayın, bunlar yara bandı; gerçek tedavi güncelleme.

Sık Sorulan Sorular / Frequently Asked Questions (FAQ)

CVE-2026-23918 uzaktan mı sömürülüyor?

Evet. Saldırgan, internet üzerinden tek bir TCP bağlantısı açarak iki HTTP/2 paketi gönderip worker process'i çökertebiliyor. Kimlik doğrulama (authentication) ya da yerel erişim gerekmiyor. Bu yüzden internete açık her Apache 2.4.66 + mod_http2 sunucusu doğrudan risk altında.

Sadece DoS mu, gerçekten RCE mümkün mü?

Çoğu kurulumda pratik risk hizmet reddi (denial of service), yani sunucunun çökmesi. Ancak APR mmap allocator kullanan sistemlerde (Debian tabanlı dağıtımlar ve resmi Docker imajları varsayılan olarak böyle) uzaktan kod çalıştırma (remote code execution) zinciri kuruldu. Yani "sadece DoS" diye hafife almak yanlış olur.

Nginx veya başka bir web sunucusu kullanıyorum, etkilenir miyim?

Hayır. Bu açık yalnızca Apache HTTP Server'ın mod_http2 modülüne özgü. Nginx, Caddy, LiteSpeed gibi sunucular bu CVE'den etkilenmez. Ancak her zaman kendi sunucu yazılımınızın güncel olduğundan emin olun.

MPM prefork kullanıyorum, güncellemem gerekir mi?

Bu özel açık MPM prefork yapılandırmasını tetiklemiyor. Yine de güvenlik güncellemelerini ertelemek doğru değildir; 2.4.67'ye geçmek en sağlıklı yoldur. Alesta Web olarak "etkilenmiyorum" diye güncellemeyi atlamamanızı öneririz.

Güncelleme sonrası bir şey bozulur mu?

2.4.66'dan 2.4.67'ye geçiş bir yama (patch) sürümüdür; davranış değişikliği beklenmez. Yine de üretim öncesi yapılandırma yedeği alıp sitenizi test etmek iyi bir alışkanlıktır.

📚 Kaynaklar ve Referanslar / Sources and References

Bu makaledeki bilgiler aşağıdaki güvenilir kaynaklardan derlenmiş ve Alesta Web ekibi tarafından doğrulanmıştır (verified by our team):

✅ Özetle: Riski Sıfırlayın (Problem Solved!)

Toparlayalım. CVE-2026-23918, Apache 2.4.66'daki mod_http2 double-free açığıdır; tek bağlantıyla DoS, bazı sistemlerde RCE riski taşır (denial of service and possible remote code execution). Çözüm net ve kolay: 2.4.67'ye güncelleyin.

Hızlı Özet / Quick Summary:

  • ✅ Apache sürümünü kontrol et (check version: apachectl -v)
  • mod_http2 ve MPM tipini doğrula
  • ✅ 2.4.67'ye güncelle (upgrade) ve servisi restart et
  • ✅ Güncelleyemiyorsan HTTP/2'yi geçici kapat (temporary mitigation)

Faydalı Linkler / Useful Links:

  • Alesta Web Ana Sayfa: alestaweb.com
  • Sunucu güvenliği ve web yazılımı çözümleri için: Alesta Web ekibiyle iletişime geçebilirsiniz.

Sunucu güvenliği yorucu bir iş, biliyoruz. Alesta Web olarak yıllardır onlarca sunucuyu bu tür açıklara karşı koruyoruz; bir sorun yaşarsanız alestaweb.com üzerinden bize ulaşın.

© 2026 Alesta Web — Tüm hakları saklıdır.

Görsel: BalticServers.com, Wikimedia Commons, CC BY-SA 3.0.

Etiketler: Haberler