29 Ekim 2026 - 11:25
PHP Windows Paketlerinde Brotli Güncellemesi: Sürüm Aynı, Paket Neden Değişti? Görseli
Siber Güvenlik

PHP Windows Paketlerinde Brotli Güncellemesi: Sürüm Aynı, Paket Neden Değişti?

0 Yorumlar

PHP'yi güncelledin, ertesi gün yeni bir Windows paketi görüyorsun. İçinde yine aynı PHP sürümü var. Peki ne değişti? Paketle birlikte gelen Brotli adlı sıkıştırma kütüphanesi yenilendi. Bu kütüphane, ağdan gelen sıkıştırılmış veriyi açarken kullanılabiliyor; yani uygulamanın güvenliği yalnız PHP dosyasının sürümüne bağlı değil.

PHP'nin 26 Ekim 2026 duyurusu, Windows için 8.5.12-1, 8.4.27-1, 8.3.36-1 ve 8.2.35-1 paketlerini açıklıyor. Bu paketler CVE-2026-111497 düzeltmesini içeren Brotli 1.2.1 ile yeniden oluşturulmuş. Buradaki -1, PHP çalışma zamanı sürümünün sonuna eklenmiş yeni bir dil sürümü değil, Windows paket revizyonu.

php -v neden değişmemiş olabilir?

Bir PHP dağıtımı yalnız php.exe dosyasından oluşmaz. Eklentiler ve onların kullandığı kütüphaneler de paketin parçasıdır. Aynı PHP kaynak sürümü, güncellenmiş bağımlılıklarla yeniden paketlenebilir. Bu nedenle güncellemenin kanıtı olarak yalnız PHP_VERSION değerine bakmak burada yeterli değil.

Resmi indirme sayfasındaki tam paket adını, revizyonu ve SHA-256 değerini birlikte kontrol et. Bir dizinde güncel ZIP durması, IIS veya Apache'nin o dizini kullandığını göstermez. Önce ilgili sitenin gerçek çalıştırıcısını belirle; terminal ile web tarafını karıştırıyorsan çalışma yollarını ayırdığımız rehberdeki mantık Windows'ta da geçerli. Panel adımları değil, ölçüm ayrımı ortak.

Brotli hangi yoldan devreye giriyor?

Brotli sıkıştırılmış veriyi açmak için kullanılan bir kütüphane. Bu CVE, çözücüde sınır dışına yazmaya yol açabilen bir hata ile ilgili; Brotli sürüm kaydı düzeltmenin kaynağıdır. PHP'nin Windows paketlerinde ilgili yol, cURL eklentisinin HTTP yanıtlarını otomatik açmasıyla erişilebilir olabiliyor.

libcurl'de otomatik açma varsayılan olarak kapalı. Uygulama veya HTTP istemci kütüphanesi bunu açabilir. “Kendi kodumda Brotli yazmıyor” demek bu yüzden yeterli bir kontrol değil. Özellikle bir paketin ağ istemcisi ayarlarını da incelemek gerekiyor.

libcurl belgesi, encoding seçeneğinin hem başlık hem otomatik çözme davranışını anlatıyor. Boş encoding dizesi desteklenen sıkıştırma yöntemlerinin tamamını istemek için kullanılabilir. Yalnız elle bir Accept-Encoding başlığı eklemekle otomatik açmayı etkinleştirmek ise aynı işlem değil.

Çalışan bağımlılığı kontrol et

Yetkili test ortamında, cURL eklentisi yüklü PHP ile şu bilgileri alabilirsin:

PHP
<?php
header('Content-Type: text/plain; charset=utf-8');
echo 'PHP: ', PHP_VERSION, PHP_EOL;
if (!extension_loaded('curl')) {
    echo 'cURL extension is not loaded', PHP_EOL;
    exit;
}
$info = curl_version();
echo 'libcurl: ', $info['version'] ?? 'unknown', PHP_EOL;
echo 'Brotli: ', $info['brotli_version'] ?? 'not reported', PHP_EOL;

curl_version() alanları derlemeye bağlıdır; bir alanın raporlanmaması tek başına “güvenli” sonucu vermez. Resmi yeni paket için Brotli 1.2.1 beklenir. Başka bir sağlayıcının derlemesinde düzeltmenin nasıl dağıtıldığını o sağlayıcının kayıtlarıyla doğrula; resmi Windows revizyonunu bütün Linux paketlerine eşik olarak uygulama.

Güncellerken dosyaları karıştırma

Önce mevcut PHP dizinini ve yapılandırmayı yedekle. Paketin x64/x86 seçimi ve TS/NTS türü mevcut web kurulumuyla uyumlu olmalı. TS, PHP'nin çok iş parçacıklı web sunucusu modülü olarak çalıştığı kurulumlara; NTS ise FastCGI gibi ayrı süreç üzerinden çalışan kurulumlara yöneliktir. Emin değilsen rastgele tür değiştirme; sağlayıcının önerisini ve mevcut entegrasyonu kontrol et. Yeni paketi ayrı dizine açmak, eski DLL kütüphane dosyalarıyla yenilerinin karışmasını önlemeyi kolaylaştırır. php.ini ayarlarını ve ek eklentileri hedef ortamda tek tek kontrol et.

Ardından IIS uygulama havuzu veya ilgili Apache/PHP süreçleri için desteklenen yeniden başlatma yolunu uygula; bu adım siteyi etkileyebilir, bakım planını önceden yap. Yeni bir terminal açmak web işçilerini değiştirmez. Aynı sitenin web bağlamında PHP ve Brotli bilgisini yeniden kontrol et, sonra API çağrıları ve sıkıştırılmış yanıt kullanan normal iş akışlarını dene. Saldırı örneği çalıştırmak gerekmiyor.

Bu konu PHP2Shell'in yeni adı değil. Farklı bileşeni ve farklı düzeltmesi olan bir açık. Yeni paketi yükledikten sonra uygulama kontrollerini de tamamla; ekranda aynı PHP numarasını görmek güncellemenin başarısız olduğu anlamına gelmeyebilir.

Not: Sürüm ve kütüphane bilgisi veren test dosyasını iş bitince kaldır.

Benzer Yazılar

Yorumlar (0)

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap