Craft CMS'te CVSS 9,8 açık: craft.search kullanan sitelerde kimliksiz SQL injection, yönetici hesabına yükselme mümkün
Craft CMS'te CVE-2026-115934, ön yüzde craft.search ile arama yapan her sitede oturum açmamış bir saldırganın veritabanına okuma ve yazma erişimi kazanmasına, oradan da yönetici yetkisi almasına izin veriyor. Yalnızca MySQL/MariaDB kullanan kurulumlar etkileniyor. Düzeltme 4.18.9 ve 5.11.2 sürümlerinde.
CVE-2026-115934PHP tabanlı içerik yönetim sistemi Craft CMS için kritik bir açık kaydı yayımlandı. CVE-2026-115934 9 Kasım gece yarısına doğru NVD'ye ve GitHub Advisory veritabanına girdi; CVSS 3.1 puanı 9,8 (AV:N/AC:L/PR:N/UI:N). Açık CISA KEV kataloğunda yok ve şu an için aktif istismar bildirimi yok. Ancak açık kimlik doğrulama gerektirmiyor ve ön yüzde, yani herkese açık sayfalarda tetiklenebiliyor. Bu nedenle düzeltmenin kısa sürede uygulanması gerekiyor.
Bildirime göre sorun, şablonlarda craft.search ile arama yapan sitelerde ortaya çıkıyor. Arama isteğindeki attribute parametresi sorguya temizlenmeden ekleniyor. PDO "emulated prepares" modunda çalıştığı için birden fazla SQL ifadesi art arda çalıştırılabiliyor. Sonuç, oturum açmamış bir saldırganın uygulama veritabanında hem okuma hem yazma yapabilmesi. Bildirimde araştırmacının bu yazma yetkisiyle bir kullanıcı hesabını yönetici olarak işaretleyebildiği belirtiliyor. Aynı yolla herhangi bir hesabın parola özeti de değiştirilebiliyor.
Açık yalnızca MySQL ve MariaDB veritabanıyla çalışan kurulumları etkiliyor; PostgreSQL kullanan siteler bildirime göre kapsam dışında. Craft için bu ay ikinci kritik bildirim bu. 9 Kasım'da yazdığımız GraphQL kapsam atlatma açığı farklı bir CVE ve farklı bir bileşendi.
Etkilenen ve düzeltilmiş sürümler
| Ürün | Etkilenen | Düzeltilmiş sürüm |
|---|---|---|
| Craft CMS 4.x | 4.18.9 öncesi | 4.18.9 ve sonrası |
| Craft CMS 5.x | 5.11.2 öncesi | 5.11.2 ve sonrası |
Etkilenen sürümlerin alt sınırı bildirimde ayrıca belirtilmiyor. Ayrıntılar için üretici bildirimindeki listeye bakın.
Beni etkiliyor mu?
Üç koşul birlikte varsa siteniz risk altında: Craft sürümü yukarıdaki düzeltilmiş sürümlerden eski, veritabanı MySQL ya da MariaDB, ön yüz şablonlarında craft.search kullanılıyor. Aşağıdaki komutlar yalnızca okuma yapar:
grep -A2 "\"name\": \"craftcms/cms\"" composer.lock
grep -rn "craft.search" templates/
grep -n "DB_DRIVER" .envSürüm, kontrol panelindeki Ayarlar sayfasında ve "Utilities > System Report" ekranında da görünür. templates/ dizininde craft.search geçmiyorsa açığın bildirilen yolu sitenizde kullanılmıyor demektir; yine de eklentilerin kendi şablonları olabileceğini unutmayın ve güncellemeyi ertelemeyin.
Ne yapılmalı?
- Craft CMS'i 4.x dalında 4.18.9'a, 5.x dalında 5.11.2'ye ya da daha yeni bir sürüme yükseltin. Güncellemeyi önce test ortamında deneyin, ardından canlıya alın.
- Hemen yükseltemiyorsanız üreticinin önerdiği workaround'u uygulayın: sorgu dizesinde
attributeparametresi taşıyan ön yüz isteklerini (köşeli parantezli ve URL kodlanmış biçimleriyle) WAF ya da ters proxy katmanında engelleyin. Kuralı devreye almadan önce meşru arama sayfalarınızın bozulmadığını test edin. - Web sunucusu loglarında ön yüz arama sayfalarına gelen,
attributeparametresi içeren istekleri geriye dönük tarayın. - Kontrol panelinde yönetici yetkisine sahip hesapları listeleyin ve beklenmedik bir yönetici ya da yakın dönemde parolası değişen bir hesap olup olmadığını kontrol edin. Şüphe varsa tüm yönetici parolalarını yenileyin ve aktif oturumları sonlandırın.
- Veritabanı kullanıcısının yetkilerini gözden geçirin. Uygulama hesabının yalnızca Craft veritabanına erişmesi, hasarın sınırlanmasına yardım eden temel bir hardening adımıdır.