PHP geliştiricileri, bugün saat 17:00'de (MSK) iki kritik güvenlik açığını giderecek acil durum yamalarının (8.5.12, 8.4.27, 8.3.36 ve 8.2.35) yayınlandığını duyurdu. Tüm PHP sunucu yöneticilerinin, yamaların yayınlanmasının hemen ardından sistemlerine yüklemeleri önerilir. Resmi ayrıntılar yalnızca yamalar yayınlandıktan sonra açıklanacaktır, ancak kamuya açık bilgilere göre, bu güvenlik açıkları CVE-2026-109618 ve CVE-2026-109619 olup, varsayılan yapılandırmada PHP komut dosyaları çalıştıran herhangi bir web sunucusunda uzaktan kod yürütülmesine potansiyel olarak izin vermektedir. Sorunlar, PHP 5.4'ten itibaren tüm sürümleri etkilemektedir.
Sistem zafiyetini test etmek için prototip istismarlar (1, 2) zaten çevrimiçi olarak ortaya çıktı. İstismarın notlarında, zafiyetlerin dosya indirme ilerleme izleme işleyicisinde zaten serbest bırakılmış belleğe erişimden kaynaklandığı iddia ediliyor. sunucu (session.upload_progress). Saldırı, sitede dosya yükleme işlevine ihtiyaç duymaz; PHP yorumlayıcısında "multipart/form-data" içerik işleyicisinin otomatik olarak etkinleştirilmesi yeterlidir. Başarılı bir istismar, her derlemeye özgü olan işlem bellek düzeninin belirlenmesini gerektirir (bu sorun, farklı dağıtımlardan paketler için önceden hesaplanmış ofsetler kullanılarak istismarın kaba kuvvet yöntemiyle denenmesiyle çözülebilir).
Geçici bir çözüm olarak, bazıları php.ini parametresinde "session.upload_progress.enabled = off" (veya PHP-FPM'de "php_admin_flag[session.upload_progress.enabled] = off") ayarını yapmayı önermektedir, ancak bir PHP proje temsilcisi ve ilk istismar prototipinin yazarı, bunun her iki güvenlik açığını da engellemek için yeterli olmadığını iddia etmektedir. İkinci istismar prototipinin notunda, yukarıda belirtilen php.ini ayarına ek olarak, yama uygulanmadan saldırıyı önlemek için "multipart/form-data" içerik türüne sahip isteklerin tamamen engellenmesi gerektiği belirtilmiştir.
Apache httpd'de, mod_rewrite içindeki aşağıdaki kural, çok parçalı istekleri engellemek için kullanılabilir:
RewriteCond %{HTTP:Content-Type} multipart [NC]
Yeniden Yazma Kuralı ^ — [F,L]
Nginx'te engellemek için:
if ($http_content_type ~* "multipart") {
403 dönmek;
}
Caddy'yi kilitlemek için:
@multipart header_regexp Content-Type (?i)multipart
@multipart 403'e yanıt ver
Güncelleme: PHP 8.5.12, 8.4.27, 8.3.36 ve 8.2.35 yamaları yayınlandı ve giderilen kritik güvenlik açıkları hakkında detaylı bilgi verildi. Güvenlik açıklarının detaylı analizi ve resmi olarak önerilen geçici çözümler ayrı bir haberde yer almaktadır.
Kaynak: opennet.ru
