PHP, Windows için derlenen 8.2 ile 8.5 arasındaki tüm sürümlerini yeniden paketleyerek Brotli sıkıştırma kütüphanesindeki bellek bozulmasına ve uzaktan kod çalıştırmaya yol açabilecek CVE-2026-111497 açığını giderdi.
Yazılım ve Uygulamalar
Admin7 okunma

PHP, Windows Paketlerinde Kritik Brotli Güvenlik Açığını Kapattı

PHP, Windows için derlenen 8.2 ile 8.5 arasındaki tüm sürümlerini yeniden paketleyerek Brotli sıkıştırma kütüphanesindeki bellek bozulmasına ve uzaktan kod çalıştırmaya yol açabilecek CVE-2026-111497 açığını giderdi.

PHP, Windows Paketlerinde Kritik Brotli Güvenlik Açığını Kapattı

Haber detayı

PHP, beş gün önce yayımladığı Windows derlemelerini bir kez daha yenilemek zorunda kaldı. Bu kez gerekçe, PHP kaynak kodunun kendisinde değil, paketlerin içinde gönderilen Brotli sıkıştırma kütüphanesinde bulunan bir güvenlik açığı. CVE-2026-111497 olarak kayıt altına alınan bu açık, saldırganın belleği bozmasına ve potansiyel olarak kod çalıştırmasına olanak tanıyabiliyor. PHP, 8.5.12-1, 8.4.27-1, 8.3.36-1 ve 8.2.35-1 numaralı yeni derlemeleri indirme sayfasında yayımladı.

Açık Nasıl Tetikleniyor?​

PHP'nin açıklamasına göre güvenlik açığına cURL eklentisi aracılığıyla ulaşmak mümkün. cURL, HTTP yanıtlarını otomatik olarak açarken bu kusurlu koda dokunuyor. cURL bu özelliği varsayılan olarak kapalı tutuyor; ancak uygulamalar ve HTTP istemci kütüphaneleri bunu etkinleştirebiliyor. PHP kodunda CURLOPT_ENCODING seçeneği otomatik açmayı devreye sokuyor; boş bir değer atandığında cURL'ün desteklediği her sıkıştırma biçimi kabul ediliyor.
Popüler PHP HTTP istemci kütüphanesi Guzzle bu noktada öne çıkıyor. 7.16.1 ve 8.3.1 sürümlerinin kaynak koduna göre Guzzle, cURL üzerinden gönderdiği isteklerde bu boş değeri varsayılan olarak ayarlıyor. PHP'nin kendi açıklamasıyla birlikte değerlendirildiğinde, Guzzle'ın varsayılan ayarlarını koruyan bir uygulama geçen haftanın Windows derlemelerinde açığa ulaşma koşulunu karşılıyor. The Hacker News'in belirttiğine göre bu durum Windows ortamında bizzat test edilmedi.

Etkilenen Sürümler ve Yeni Derlemeler​

Yeni derlemeler, 21 Ekim'de yayımlanan ve PHP2Shell uzaktan kod çalıştırma açıklarını kapatan sürümlerle aynı PHP kaynak kodunu kullanıyor; dolayısıyla o düzeltmeler de geçerliliğini koruyor. Fark şu: önceki paketler Brotli 1.2.0 içeriyordu; yeni derlemeler ise açığın kapatıldığı Brotli 1.2.1 sürümüne geçiş yaptı. PHP her paketi için bileşen listesi niteliğinde bir yazılım malzeme listesi (SBOM) yayımlıyor. Geçen haftanın x64 Non Thread Safe derlemelerine ait bu listeler, etkilenen sürümlerden biri olan Brotli 1.2.0'ı gösteriyordu.
PHP sürümünün kendisi değişmediğinden php -v komutu güncelleme öncesi ve sonrasında aynı numarayı gösteriyor. Yeni derlemeyi tanımlamanın yolu dosya adındaki -1 son ekine bakmak; örneğin php-8.5.12-1-nts-Win32-vs17-x64.zip gibi. İndirme sayfasında yayımlanan SHA-256 karma değeri de yeni derlemenin doğrulanmasını sağlıyor.

Saldırı Senaryosu ve Risk Değerlendirmesi​

Olası bir saldırı, PHP uygulamasının iletişim kurduğu bir sunucudan gelen özel olarak hazırlanmış sıkıştırılmış bir yanıt biçiminde gerçekleşebilir. Açığı bulan araştırmacılar OpenAI bünyesinde çalışıyor. Google, Brotli 1.2.1, 1.1.1 ve 1.0.10 sürümlerini açığın ilk kez kamuoyuyla paylaşıldığı 21 Ekim'de yayımladı. Node.js, Bun ve Brotli'nin kendi kopyasını barındıran diğer yazılımlar da düzeltme yayımladı. Imperva araştırmacıları, açığı resmi bir Node.js derlemesinde birden fazla deneme sonucunda çalıştırmayı başardı.
Güvenlik açığı, CVSS 4.0 ölçeğinde Google tarafından 10 üzerinden 9,2 ile Kritik; CVSS 3.1 ölçeğinde ise Red Hat tarafından 8,1 ile Önemli olarak derecelendiriliyor. CISA'nın 23 Ekim tarihli değerlendirmesi o güne kadar herhangi bir istismar kaydedilmediğini ortaya koyuyor ve açık, o günkü güncelleme itibarıyla Bilinen İstismar Edilen Güvenlik Açıkları kataloğunda yer almıyordu. PHP'nin duyurusunda henüz gerçekleşmiş bir saldırıdan söz edilmiyor.

Güncelleyemeyenler İçin Öneriler​

PHP, sistemi henüz güncelleyemeyecek kullanıcılar için herhangi bir geçici çözüm sunmuyor. OpenAI ise güncelleme kurulana dek HTTP istemcilerinde otomatik Brotli açmayı devre dışı bırakmayı öneriyor ve Accept-Encoding başlığından yalnızca br değerinin kaldırılmasının sunucunun Brotli göndermesini engellemediği konusunda uyarıyor. PHP kodunda bu tavsiyeyi uygulamanın yolu CURLOPT_ENCODING seçeneğini hiç ayarlamamak; çünkü cURL bu seçenek olmadan yanıtları açmıyor. Guzzle kullananlar için ise decode_content istek seçeneğini false olarak ayarlamak tüm otomatik açmayı durduruyor; bu durumda gzip yanıtları da sıkıştırılmış biçimde geliyor.

Sıkça Sorulan Sorular​

CVE-2026-111497 açığı hangi PHP sürümlerini etkiliyor?​

Açık, PHP'nin resmi Windows derlemelerinin 8.2, 8.3, 8.4 ve 8.5 sürümlerini etkiliyor. Yeni derlemeler sırasıyla 8.2.35-1, 8.3.36-1, 8.4.27-1 ve 8.5.12-1 olarak yayımlandı.

Açığın Brotli ile bağlantısı nedir?​

PHP'nin Windows paketleri, Brotli sıkıştırma kütüphanesini doğrudan içinde barındırıyor. Geçen haftanın derlemeleri açık içeren Brotli 1.2.0'ı kullanıyordu; yeni derlemeler bu açığın kapatıldığı Brotli 1.2.1 sürümüne geçiş yaptı.

Guzzle kullanan uygulamalar bu açıktan nasıl etkileniyor?​

Guzzle, 7.16.1 ve 8.3.1 sürümlerinde cURL üzerinden gönderdiği isteklerde CURLOPT_ENCODING seçeneğini boş değerle varsayılan olarak etkinleştiriyor. Bu durum, Guzzle'ın varsayılan ayarlarını koruyan bir uygulamanın açığa ulaşma koşulunu karşıladığı anlamına geliyor.

Yeni derleme kurulduğunda php -v komutu farklı bir sürüm numarası gösterir mi?​

Hayır. PHP sürümünün kendisi değişmediğinden php -v komutu güncelleme öncesi ve sonrasında aynı numarayı gösteriyor. Yeni derlemeyi tanımlamak için dosya adındaki -1 son ekine veya indirme sayfasındaki SHA-256 karma değerine bakılması gerekiyor.

Güncelleme yapılamıyorsa ne yapılabilir?​

PHP resmi bir geçici çözüm sunmuyor. OpenAI, güncelleme kurulana dek HTTP istemcilerinde otomatik Brotli açmayı devre dışı bırakmayı öneriyor. PHP kodunda CURLOPT_ENCODING seçeneği ayarlanmamalı; Guzzle'da ise decode_content seçeneği false olarak belirlenebilir.

Etiketler

Yorumlar (0)

Yorum yapmak için giriş yapmalısınız.

Geri
Üst