WordPress.org'un sürüm duyurusuna göre kimliği doğrulanmamış bir saldırgan, sayfa şablonu çözümleme mekanizmasını manipüle ederek etkin tema dizinlerinin dışında kalan ve sunucuda okunabilir durumdaki seçtiği bir yerel PHP dosyasını dahil ettirebiliyor. Belirli sunucu ve tema koşulları bir araya geldiğinde bu durum uzaktan kod çalıştırmaya (RCE) kadar ilerleyebiliyor. Açığı güvenlik araştırmacısı Robert Ressl sorumlu açıklama yoluyla bildirdi.
Açık nerede ve nasıl çalışıyor?
Patchstack'in analizine göre sorun, WordPress'in sayfa şablonunu belirleyen get_page_template() fonksiyonunda bulunuyor. Açık bir dizin geçişi (path traversal) hatası olarak başlıyor ve yerel dosya dahil etmeye (LFI), koşullar uygunsa da uzaktan kod çalıştırmaya dönüşüyor. Saldırılarda pagename parametresine yüzde kodlamalı %2e%2e ya da çift kodlanmış %252e%252e dizileri yerleştiriliyor ve bu parametre geçerli bir page_id ile birlikte gönderiliyor.
Açık her kurulumda uzaktan kod çalıştırmaya imkân vermiyor. Patchstack'e göre bunun için üç koşulun birlikte bulunması gerekiyor:
- Etkin temanın üst düzeyde page- ile başlayan bir dizin içermesi,
- RCE aşaması için PHP'de register_argc_argv ayarının açık olması,
- İstekteki page_id değerinin sitede gerçekten var olan bir sayfayı göstermesi.
Bir WordPress temasının functions.php dosyasından PHP kodu. Fotoğraf: Ron23545, Wikimedia Commons, CC BY-SA 4.0. Olayın kendisine ait bir kare değildir.
Etkilenen ve yamalı sürümler
Patchstack, açığın WordPress 4.7.0 ile 7.1.1 arasındaki sürümleri etkilediğini bildiriyor. WordPress ekibi düzeltmeyi 7.1.2 ile yayımladı ve güvenlik yamasını 4.7'ye kadar uzanan tüm uygun sürüm dallarına geriye dönük olarak uyguladı.
| Sürüm dalı | Güvenli sürüm |
|---|---|
| 7.1 | 7.1.2 |
| 7.0 | 7.0.6 |
| 6.9 | 6.9.9 |
| 6.8 | 6.8.10 |
| 4.7 | 4.7.37 |
Otomatik arka plan güncellemeleri açık olan siteler yamayı kendiliğinden alıyor. WordPress.org, açığın kritik düzeyde olması nedeniyle sitelerin hemen güncellenmesini öneriyor.
Saldırılar yamadan saatler sonra başladı
Patchstack'in paylaştığı zaman çizelgesine göre saldırıların ilerleyişi şöyle:
- 22 Eylül 2026: WordPress 7.1.2 ve güvenlik bildirimi yayımlandı.
- 22 Eylül, 11:49 UTC: Çekirdek dosyaları yoklayan ilk istismar denemesi görüldü ve engellendi.
- 22 Eylül, 15:34 UTC: PEAR'ın pearcmd.php betiği üzerinden ilk dosya yazma denemesi kaydedildi.
- 23 Eylül 2026: Herkese açık bir Nuclei şablonu yayımlandı; saldırı hacmi aynı gün UTC öğle saatlerinde zirveye çıktı.
Saldırganlar önce wp-links-opml.php ve wp-cron.php gibi zararsız çekirdek dosyalarını kodlanmış dizin geçişi dizileriyle çağırarak açığın çalışıp çalışmadığını test ediyor. İkinci aşamada PEAR'ın pearcmd.php betiğinin standart kurulum yollarında erişilebilir olup olmadığını +config-show komutuyla yokluyor. Son aşamada ise +config-create parametresiyle /tmp ve /var/tmp dizinlerine PHP dosyaları yazmaya çalışıyor.
Saldırı göstergeleri
Patchstack'in paylaştığı göstergeler şunlar:
- User-Agent: cve-2026-87902-poc/1.0 ve nuclei-cve-2026-87902/1.0
- Dosyalar: wp-pear-rce-flag.php, poc87902.php ile luci_ ve zeta_ önekli, rastgele adlı PHP dosyaları
- İstek kalıbı: pagename parametresinde %2e%2e veya %252e%252e; pagename ile page_id parametrelerinin birlikte kullanılması
- Örnek kaynak IP'ler: 43.250.53.42, 180.251.159.243, 195.178.110.247, 107.189.14.87, 45.61.184.170, 92.246.130.76
Site yöneticileri ne yapmalı?
- WordPress'i hemen 7.1.2 sürümüne ya da kullandığınız dalın yamalı sürümüne güncelleyin.
- Güncelleme hemen yapılamıyorsa WAF veya sunucu kurallarıyla pagename parametresindeki kodlanmış dizin geçişi dizilerini engelleyin ve PHP'de register_argc_argv ayarını kapatın.
- Erişim günlüklerinde kodlanmış traversal dizilerini, pearcmd, config-show ve config-create izlerini arayın.
- /tmp ve /var/tmp dizinlerinde beklenmeyen PHP dosyalarını kontrol edin. Patchstack'e göre bu dosyaların varlığı sitenin ele geçirildiğini gösteriyor; bu durumda yalnızca yama yapmak yeterli değil, olay müdahalesi başlatılmalı.
Kaynaklar: WordPress.org 7.1.2 duyurusu, Patchstack, The Hacker News, SecurityWeek
Kapak fotoğrafı: WordCamp Europe 2017'nin Paris'teki açılış oturumu. Fotoğraf: olivier gobet, Wikimedia Commons, CC BY 2.0. Olayın kendisine ait bir kare değildir.
TR Siber Ekibi