Siber Güvenlik

PHP beş günde ikinci kez Windows güncellemesi yayınladı, Brotli kod çalıştırma açığı kapatıldı

PHP beş günde ikinci kez Windows güncellemesi yayınladı, Brotli kod çalıştırma açığı kapatıldı

PHP, PHP 8.2'den 8.5'e kadar olan resmi Windows paketlerini yeniden derledi. Amacı CVE-2026-111497'yi kapatmak. Bu açık, paketlerin içinde bulunan Brotli sıkıştırma kütüphanesindeki bir kusur. Kusur, saldırganın belleği bozmasına ve potansiyel olarak kod çalıştırmasına izin verebiliyor.

PHP'ye göre açık, uzantı HTTP yanıtlarını otomatik olarak sıkıştırarak açtığında cURL uzantısı üzerinden erişilebiliyor. cURL bunu varsayılan olarak kapalı tutuyor, ancak uygulamalar ve HTTP istemci kütüphaneleri açabiliyor.

Yeniden derlenen paketlerin numaraları 8.5.12-1, 8.4.27-1, 8.3.36-1 ve 8.2.35-1. Bu paketler, iki PHP2Shell uzaktan kod çalıştırma açığını kapatan 21 Ekim tarihli sürümlerin üzerinden beş gün sonra geldi. Aynı PHP kaynağı kullanıldığı için söz konusu düzeltmeler yerinde kalıyor ve şimdi düzeltilmiş sürüm olan Brotli 1.2.1 içeriyorlar.

PHP her paketle birlikte içerideki bileşenlerin listesi olan bir yazılım malzeme listesi yayınlıyor. Geçen haftaki tüm dört sürümün x64 Non Thread Safe derlemeleri için bu listeler Brotli 1.2.0'ı gösteriyor; bu da etkilenen sürümlerden biri.

PHP Windows kullanıcılarına yeni derlemeleri indirme sayfasından yüklemelerini öneriyor. PHP sürümünün kendisi değişmediği için php -v komutu önce ve sonra aynı numarayı gösteriyor. Dosya adındaki -1 eki, örneğin php-8.5.12-1-nts-Win32-vs17-x64.zip, ve indirme sayfasında listelenen SHA-256 karması yeni derlemeyi belirliyor.

Otomatik sıkıştırma açma, cURL'ün sunucudan sıkıştırılmış yanıt istemesi ve onu açması anlamına geliyor. PHP kodunda CURLOPT_ENCODING seçeneği bunu açıyor ve boş bir değer cURL'ün desteklediği her biçimi kabul ediyor.

PHP HTTP istemci kütüphanesi Guzzle, cURL üzerinden gönderdiği istekler için varsayılan olarak bu boş değeri ayarlıyor. Bu durum 7.16.1 sürümündeki kodda ve 8.3.1'deki kodda görülüyor. Bu kod ve PHP'nin kendi açıklamasına göre, Guzzle'ın varsayılan ayarlarını koruyan bir uygulama geçen haftaki Windows derlemelerinde açığa ulaşma koşulunu sağlıyor. The Hacker News bunu Windows sisteminde test etmedi.

Saldırı, PHP uygulamasının temas ettiği bir sunucudan gelen hazırlanmış sıkıştırılmış bir yanıt şeklinde gerçekleşecek.

Google açığı CVSS 4.0 ölçeğinde 10 üzerinden 9.2, yani Kritik olarak değerlendiriyor. Red Hat ise CVSS 3.1 ölçeğinde 8.1, yani Önemli olarak sınıflandırıyor.

Imperva araştırmacıları kodu bir resmi Node.js derlemesinde açığın üzerinden çalıştırdı ve birkaç deneme gerekti. PHP'nin duyurusunda herhangi bir saldırıya değinilmiyor. CISA'nın 23 Ekim tarihli değerlendirmesinde istismar kaydı yok ve açık o günkü güncellemede Bilinen İstismar Edilen Açıklar kataloğunda yer almıyordu.

Açığı OpenAI'deki araştırmacılar buldu. Google, 21 Ekim'de ilk kez duyurulduğunda Brotli 1.2.1, 1.1.1 ve 1.0.10'da düzeltti. Node.js, Bun ve kendi Brotli kopyasını dağıtan diğer yazılımlar da düzeltme yayınladı.

PHP'nin duyurusunda henüz güncellenemeyen sistemler için bir geçici çözüm sunulmuyor. OpenAI, güncelleme kurulana kadar HTTP istemcilerinde otomatik Brotli sıkıştırma açmayı kapatmayı öneriyor ve Accept-Encoding başlığında Brotli'nin adı olan br'yi kaldırmaktan kaçınılması gerektiğini, bunun tek başına sunucunun göndermesini engellemediğini uyarıyor.

PHP kodunda bu tavsiyeyi uygulamak, CURLOPT_ENCODING ayarlanmaması anlamına geliyor, çünkü cURL bunu yapmadıkça yanıtları sıkıştırmayı açmıyor. Guzzle'da bu, decode_content istek seçeneğinin false olarak ayarlanması anlamına geliyor; bu da tüm otomatik kodlamayı durduruyor, böylece gzip yanıtları da sıkıştırılmış olarak geliyor.

Kaynak: The Hacker News

Paylaş:

Yapay zekâ asistanları için: bu haberin Markdown (.md) sürümü