Veri: 1 Kasım 2026 Son 7 günde 324 yeni kayıt, 19 kritik
Site sahibi için

WordPress kullanıcı rolleri ve açık riski, abone ile katkıcı neden önemli

5 dk okuma · Yayın 21 Ekim 2026 · Son kontrol 20 Ekim 2026 · 3 kaynak · Ücretli Tema ekibi

İçindekiler
  1. Varsayılan roller, WordPress’in kendi tanımıyla
  2. Kayıtlarda roller ne sıklıkla geçiyor
  3. Katkıcı neden bu kadar sık geçiyor
  4. Abone düzeyi, üyelik açıksa “girişsiz” sayılır
  5. Yönetici gerektiren açıklar neden yine de kayıt alıyor
  6. Rollere göre yapılacaklar
  7. Sitede rol etiketini nasıl kullanmalı

Bir açık kaydında “Contributor-level access” ya da “authenticated attackers with Subscriber-level access” yazıyorsa, açığı kullanmak için saldırganın sitenizde en az o rolde bir hesabı olması gerekir. Bu tek satır, açığın sizin sitenizde ne kadar gerçek bir tehlike olduğunu çoğu zaman puandan daha iyi anlatır. Son 12 ayda (20 Ekim 2026 itibarıyla) yayımlanan 6.630 WordPress kaydının yaklaşık yarısı hiçbir hesap gerektirmiyor; diğer yarısı ise belirli bir rol istiyor. Hangi rolün ne yapabildiğini bilmek, bu ikinci yarıyı doğru okumanın yolu.

Varsayılan roller, WordPress’in kendi tanımıyla

WordPress belgelerinde tek sitelik bir kurulumdaki beş rol şöyle tanımlanır:

Çoklu site (multisite) kurulumlarında bunların üstünde bir de Süper Yönetici vardır. Yeni kullanıcıların hangi rolle açılacağı Ayarlar › Genel sayfasında seçilir.

Rolleri ayıran ayrıntılar yetenek (capability) tablosunda. İki tanesi açık okurken işe yarar. Birincisi upload_files: ortam dosyası yükleme yeteneği yönetici, editör ve yazarda var, katkıcıda yok. İkincisi unfiltered_html: sayfa ve yazılara HTML, hatta JavaScript ekleyebilme yeteneği. Tek sitelik kurulumda yönetici ve editörde var; çoklu sitede yalnız süper yöneticide.

Kayıtlarda roller ne sıklıkla geçiyor

Sitedeki her kayıtta gösterdiğimiz rol etiketini, önce kayıt metnindeki rol ifadesinden, yoksa CVSS vektöründeki “gereken yetki” (PR) harfinden çıkarıyoruz. Son 12 ayın dağılımı:

Gereken rol Kayıt payı En sık açık türü
Hesap gerekmiyor yaklaşık %49 çeşitli
Abone yaklaşık %20 eksik yetki kontrolü
Katkıcı yaklaşık %16 kalıcı XSS
Yazar %3 XSS
Editör %1 XSS
Yönetici yaklaşık %10 XSS, SQL enjeksiyonu

Tabloda iki şey dikkat çekiyor. Katkıcı düzeyindeki 1.079 kaydın yaklaşık 800’ü siteler arası betik (XSS). Abone düzeyindeki 1.349 kaydın ise üçte biri eksik yetki kontrolü; yani bir eklentinin, en düşük rolde bile olsa giriş yapmış herkese yönetici işlevi açması.

Katkıcı neden bu kadar sık geçiyor

Katkıcı rolü yazı taslağı yazabilir. Taslağın içine kısa kod (shortcode) koyabilir; örneğin bir sayfa oluşturucu eklentisinin [buton renk="..."] gibi bir kodunu. Eklenti bu kısa kodun özelliklerini sayfaya basarken temizlemezse, katkıcı özelliğin içine betik yerleştirebilir. Taslak önizlendiğinde ya da editör yazıyı yayımlamak için açtığında betik çalışır. Çektiğimiz veride kalıcı XSS kayıtlarının üçte birinden fazlası açıklamasında kısa kod geçiyor.

Bunun önemli bir yanı var: katkıcı yayımlama yetkisi olmadığı için bir editörün ya da yöneticinin taslağı açmasını bekler. Betik o kişinin oturumuyla çalışırsa, katkıcının hiçbir zaman sahip olmadığı yetkiler devreye girer. Puan 6,4 civarında kalsa da, çok yazarlı sitelerde bu kayıtlar ciddiye alınmalı. Türün ayrıntısı için XSS açıkları yazımıza bakabilirsiniz.

Abone düzeyi, üyelik açıksa “girişsiz” sayılır

Abone rolü neredeyse hiçbir şey yapamaz. Ama sitenizde herkese açık üyelik varsa, bir saldırgan saniyeler içinde abone hesabı açabilir. Bu durumda abone düzeyinde bir açık, pratikte giriş gerektirmeyen bir açıktan farksızdır.

Üyelik şu sitelerde sık açıktır: WooCommerce mağazaları (müşteri hesabı), öğrenme yönetim sistemleri (öğrenci hesabı), forumlar, üyelik ve randevu eklentileri. Bu eklentilerin eklentiler listesinde üst sıralarda olması tesadüf değil: hem çok kod içerirler hem de abone ya da müşteri rolündeki kullanıcıların çağırabileceği çok sayıda uç nokta açarlar.

Üyeliğe ihtiyacınız yoksa Ayarlar › Genel sayfasındaki üyelik seçeneğinin kapalı olduğundan emin olun. Bazı eklentiler kendi kayıt formlarını getirir ve bu ayardan bağımsız çalışır; kayıt formu sunan bir eklenti kullanıyorsanız onun ayarlarına da bakın. Varsayılan rolün “Abone” olduğunu da kontrol edin; varsayılan rolü yanlışlıkla yükseltilmiş bir site, kaydolan herkese fazladan yetki verir.

Müşteri ve öğrenci rolleri

WooCommerce “Müşteri”, öğrenme yönetim sistemleri “Öğrenci” ya da “Eğitmen” gibi kendi rollerini ekler. Kayıtlarda “Customer-level access” gibi ifadeler görürseniz, bunları yetki açısından abone düzeyine yakın düşünün: kendi siparişini ya da dersini görebilen, yönetim paneline erişimi olmayan bir hesap. Sitemizde müşteri düzeyindeki kayıtları abone etiketiyle gösteriyoruz. Eğitmen ya da satıcı gibi eklentiye özel rollerin yetkisi ise eklentiden eklentiye değişir; kaydın metnindeki rol adına ve eklentinin belgelerine bakmak gerekir.

Yönetici gerektiren açıklar neden yine de kayıt alıyor

Kayıtların yaklaşık onda biri yönetici yetkisi istiyor. “Yönetici zaten her şeyi yapabilir, bu nasıl açık olur?” diye sorabilirsiniz. Cevap unfiltered_html yeteneğinde. Tek sitelik bir kurulumda yönetici zaten betik ekleyebildiği için, yönetici düzeyindeki XSS kayıtları çoğunlukla yalnız çoklu sitelerde ya da bu yeteneğin kapatıldığı kurulumlarda anlam taşır. Wordfence kayıtları bunu açıkça yazar; çektiğimiz veride 100’ü aşkın kayıtta “unfiltered_html devre dışı bırakılmış kurulumlar” notu var.

Yönetici düzeyindeki SQL enjeksiyonu ya da dosya okuma kayıtları ise başka bir senaryoya işaret eder: yönetici hesabı bir şekilde ele geçirildiğinde saldırganın veritabanına ya da sunucu dosyalarına uzanmasını kolaylaştırırlar. Bu yüzden düşük öncelikli ama tamamen göz ardı edilecek kayıtlar değildir.

Rollere göre yapılacaklar

Kullanıcılar sayfasını rol sütununa göre süzün ve şu soruları sorun:

  1. Kaç yönetici var? Her kullanıcıya işini görecek en düşük rolü verin. Ajans, eski geliştirici, artık çalışmayan biri için açılmış yönetici hesaplarını kaldırın ya da rolünü düşürün.
  2. Katkıcı ve yazarlar kim? Dışarıdan yazı alıyorsanız, bu kişilerin hesaplarının güçlü parolası olsun. Katkıcı düzeyindeki bir kaydı kullanmak için saldırganın ya böyle bir hesabı ele geçirmesi ya da size yazar olarak başvurması gerekir.
  3. Abone hesaplarına ihtiyaç var mı? Yüzlerce eski abone hesabı, abone düzeyi açıkların hepsi için hazır birer kapıdır. Kullanılmayan hesapları temizleyin.
  4. Editörlerin unfiltered_html yeteneği gerekli mi? Sıkılaştırma belgesindeki DISALLOW_FILE_EDIT sabiti panelden dosya düzenlemeyi kapatır; betik ekleme yeteneğini kısıtlamak ise ayrı bir karardır ve sitenizdeki iş akışına bağlıdır.

Sitede rol etiketini nasıl kullanmalı

Her kayıt satırında rol etiketi var: “Giriş gerekmiyor” kırmızı, diğerleri gri. Ürün sayfalarında ayrıca “abone hesabıyla kullanılabilen N kayıt” ve “katkıcı ya da yazar gerektiren N kayıt” gibi satırlar bulunur. Sitenizde üyelik kapalı ve tek yazar sizseniz, katkıcı ve abone kayıtları sizin için ikinci sıradadır; önce kırmızı etiketlere bakın. Üyelik açık bir mağaza işletiyorsanız, abone etiketli kayıtları kırmızıyla aynı sıraya koyun.

Her rolün en sık hangi açık türüyle eşleştiğini görmek için eksik yetki kontrolü ve XSS tür sayfalarındaki “saldırgan kim olmalı” grafiğine bakabilirsiniz.

Kaynaklar

  1. WordPress.org, Roles and Capabilities
  2. FIRST, CVSS v3.1 Specification Document (Privileges Required)
  3. WordPress Developer Resources, Hardening WordPress

Bu yazıyı Ücretli Tema ekibi hazırladı. Yazıda satış ortaklığı bağlantısı yoktur. Bir hata gördüyseniz bize yazın.

Devamını okuyun