Kaynaklar 22 Ekim 2026 itibarıyla kontrol edildi. A Dinleyiciler: PHP uygulama operatörleri, güvenlik müdahale görevlileri ve özel PHP yapılarının bakımını yapan mühendisler.

Bu makalede PHP2Shell güvenlik açığının nedeni, etki kapsamı, resmi onarım süreci, geçici etki azaltma önlemleri ve resmi yama uygulaması özetlenmektedir. Ana metin S1; tüm kaynak bağlantıları metnin sonundaki ekte listelenmiştir. Yapılandırma parçası, gerçek sürüme, iş kapasitesine ve yapılandırma devralma ilişkisine göre ayarlanması gereken bir dağıtım şablonudur.

TL;DR: Onarım adımları ve öneriler

  1. PHP çalışma zamanını yükseltin: ilgili dalı en az 8.2.35, 8.3.36, 8.4.27 veya 8.5.12’ye yükseltin. Dağıtım paketleri için satıcının her iki CVE’yi de düzelttiğini onayladığı tam paket sürümünü kullanın. S1S10
  2. Tüm eski süreçleri değiştirin: Yükseltme sonrasında her PHP worker, barındırma hizmetini ve kapsayıcıyı yeniden başlatın veya devredin ve eski örneklerden çıkıldığını doğrulayın.
  3. Gerçek Web istek yolu aracılığıyla doğrulayın: Web SAPI’yi, tam paket sürümünü ve çalışan örneği kontrol edin. php -v’nin tek başına kontrol edilmesi, canlı hizmetin sabit olduğunu göstermez.
  4. İş regresyon kontrollerini çalıştırın ve kaynak bütçelerini normale döndürün: oturum açmayı, oturum yönetimini, yüklemeleri, içe aktarmaları ve hata işlemeyi test edin. PHP bellek sınırı geçici olarak kaldırıldıysa, yama uygulamasından sonra uygun bir sınırlı bütçeyi geri yükleyin.
  5. Anında yükseltme imkansızsa: güvenilmeyen trafiği PHP’ye ulaşmadan önce kısıtlayın. Yükleme ilerlemesini ve PHP 8.5 ölümcül geri izlemeleri Bölüm 5’te açıklandığı şekilde devre dışı bırakmayı değerlendirin. Yapılandırma azaltımları ve WAF kurallarının kapsamı sınırlıdır ve yükseltmenin yerini tutamaz. S1S2S3

1. Güvenlik Açığı Genel Bakışı ve Risk Değerlendirmesi

Bu makaledeki PHP2Shell, 21 Ekim 2026’da PHP tarafından resmi olarak açıklanan iki Critical düzeyindeki güvenlik açığına atıfta bulunmaktadır. Her ikisi de PHP motorunun bellek ve istek yaşam döngüsü yönetimiyle ilgilidir ve kimliği doğrulanmamış uzaktan kod yürütme riski oluşturur. S1S2S3

ProjeCVE-2026-109618CVE-2026-109619
resmi adRCE via OOM corruptionRCE via stale global state
temel sorunlarYetersiz bellek anormal bir atlamaya neden olur ve henüz başlatmayı tamamlamamış bir durum bırakır.Worker’da kalan genel durum, serbest bırakılan istek belleğine işaret eder.
Tipik oluşma zamanıMevcut isteğin başlatılması, yürütülmesi veya temizlenmesi süreciÖnceki istek durumu terk eder ve sonraki istekler durumu önceden tüketir.
OOM gerekli bir koşul mudur?Güvenlik açığının temel tetikleme mekanizmasına aittirHayır; diğer ölümcül hatalar ve teşhis sonrası temizleme de söz konusu olabilir
Temel onarım yönüTahsis Hatalarını ve Talep Sonlandırmalarını Güvenle Ele AlınDurum sahipliğini, temizleme zamanlamasını ve erken başlatmayı düzeltin
Bertaraf gereklilikleritamir edilmeliaynı anda onarılması gerekir

Temel: İki resmi güvenlik bülteni ve düzeltme gönderimi. S2S3S4

1.1 Etkilenen dağıtımları anlama

PHP resmen düşünüyor Tümü PHP dağıtımların işlenmesi Web istekler risk altında olanlar da dahil PHP-FPM , Apache mod_php , php-cgi , FrankenPHP , Ve LiteSpeed . Gösterilen mod_php Saldırı, uygulama kodu çalıştırılmadan önce gerçekleşebilir; dolayısıyla oturum açma kontrolleri, çerçeve ara yazılımı ve uygulama yükleme doğrulaması bu yolu kapsayamaz. S1

“Konuşlandırmanın düzeltilmesi gerekiyor” ile “belirli bir saldırı zincirinin tamamen kanıtlandığı” arasında ayrım yapmak gerekiyor. CVE-2026-109618 duyurusu: FPM, istek başlatma başarısız olduktan sonra alt süreçten çıkacak ve başlatma hatasından sonra mod_php’nin karşılık gelen temizleme yolunu engelleyecektir; ancak başarılı başlatmanın ardından OOM yolu hala risk altındadır. Duyuruda ayrıca bu CVE için tam FPM istismarının henüz gösterilmediği belirtiliyor. Bu kısıtlama FPM’nin güvenli olduğu sonucuna varmak için kullanılamaz, özellikle CVE-2026-109619 göz ardı edilemez. S2S3

Başarılı bir kullanım için anında izin sınırları, PHP’yi barındıran işlemin kimliğine ve erişimi olan kaynaklara bağlıdır. Genel olarak web sitesi koduna, yükleme dizinine, veritabanı kimlik bilgilerine, hizmet belirteçlerine ve dahili ağ erişim özelliklerine dikkat edilmelidir; “uzaktan kod yürütme”, doğal olarak kök izinleri elde etmek anlamına gelmez. Buradaki sonuç kararı süreç izin modeline dayanmaktadır ve gerçek etkinin dağıtım izinleriyle birlikte değerlendirilmesi gerekmektedir.

Sıradan tek seferlik CLI komut dosyaları aynı HTTP girişine sahip değildir; ancak CLI’de veya yerleşik modda harici görevleri uzun süre yürüten işlemlerin yine de çalışma zamanı ve yaşam döngüsü envanterine dahil edilmesi gerekir. Yalnızca CMS, çerçeve veya Composer bağımlılıkları güncellenir ve temeldeki PHP motoru otomatik olarak değiştirilmez.

2. Sebep analizi

2.1 Öncelikle iki yaşam döngüsünü anlayın

PHP worker genellikle birden fazla isteği arka arkaya işler. İstek sırasında tahsis edilen bellek, isteğin sonunda eşit şekilde serbest bırakılabilirken, işçinin kendisi ve bazı küresel alanları varlığını sürdürür.

Bu nedenle motor iki kısıtlamayı korumalıdır:

  • Başlatma kısıtlaması: Diğer kodlar tarafından görülebilen veriler güvenli bir şekilde okunabilecek, üzerinden geçilebilecek ve yok edilebilecek bir durumda olmalıdır.
  • Yaşam döngüsü kısıtlaması: istek belleği serbest bırakıldığında, daha uzun ömürlü alanlar bu bellekteki adresleri geçerli durum olarak değerlendirmeye devam etmemelidir.

Bu iki kısıtlama, iki güvenlik açığı grubunun ana hata modlarına karşılık gelir. Aşağıdaki süreç, duyuruları ve yama derlemesini birleştiren bir mekanizma açıklamasıdır. Bu, her dağıtımın tam olarak aynı erişilebilir yola sahip olduğu anlamına gelmez. S2S3S5

2.2 CVE-2026-109618: OOM, tamamlanmamış bir durum güncellemesini kesintiye uğrattı

Eski uygulama, OOM’yi işlemek için longjmp() türünde yerel olmayan bir atlama kullanır ve ilgili yol, mevcut yürütme bağlamından zend_bailout() aracılığıyla çıkar. Buradaki tehlike, C kodunun bir parçasının başka bir koda yeni bir nesne, dizi veya istek durumu yayınlamış olması ancak alan başlatma işleminin tamamını henüz tamamlamamış olmasıdır; bu sırada ilgili zamandaki herhangi bir tahsis hatası normal kapanış adımlarının atlanmasına neden olabilir. S2

Başarısızlık süreci dört adıma ayrılabilir:

  1. İsteğin iç yapısını oluşturun veya güncelleyin ve erişilebilir hale getirin.
  2. Sonraki bellek tahsisi başarısız olur ve OOM tetiklenir.
  3. Yürütme akışı geçerli işlevden atlar ve başlatmayı tamamlamak veya durumu geri yüklemek için orijinal olarak kullanılan kod yürütülmez.
  4. İstek temizleme işlemi bu yapıları işlemeye devam eder ve geçersiz içerikleri geçerli alanlar veya adresler olarak ele alır.

Sorun, belleğin tükenmesinin her zaman RCE’ye neden olması değildir. Aksine, bellek tükenmesi kontrol akışını değiştirir ve motorun geçerli yapılara ilişkin varsayımlarını ihlal eder. Başarısız tahsisin, sonuçta yanlış okunan yapıyı doğrudan içermesi gerekmez. S2

Neden daha küçük isteklerin de belleği tükenebilir?

İstek gövdesindeki bayt sayısı ile ayrıştırma sonrasındaki yığın kullanımı aynı şey değildir. A alanı, PHP içindeki birden çok dizeye, dizi öğesine ve meta veri nesnesine karşılık gelebilir; girdi yapısal karmaşıklığı hafıza amplifikasyonunun derecesini etkileyecektir.

Resmi duyuruda çok parçalı olarak listelenen sorunlar arasında şunlar yer alıyor: mevcut bildirim uzunluğu eksik olduğunda ilk boyut kontrol boşluğu, tek bir parça için başlık sayısı yeterince sınırlı değil ve boş dosya kontrolleri hala meta veriler üretiyor ve iç içe adlar dizi iş yükünü daha da artırıyor. Uygulamanın kendi girdi çözme, kod çözme veya yeniden atama işlemleri de OOM kaynağı olabilir. S2

Bundan iki koruyucu sonuç çıkarılabilir:

  • PHP’ye girmeden önce istek gövdesi kısıtlamaları mümkün olduğunca uygulanmalı ve gerçek okuma uzunluğu ve yapısal karmaşıklık dikkate alınmalıdır.
  • Dosya boyutunun ve dosya sayısının ayrı ayrı sınırlandırılması veya yalnızca bir yükleme portalının kapatılması, tüm OOM kaynaklarını kapsayamaz.

Uygulama kimlik doğrulaması neden çok geç olabilir?

mod_php’de istek gövdesi, istek başlatma aşaması sırasında otomatik olarak ayrıştırılabilir; başlatma başarısız olsa bile ilgili istek temizliği yine de gerçekleştirilecektir. Bu nedenle, onaylanmış saldırı yolları uygulama kodundan önce gerçekleşebilir. Bu aşamada riske maruz kalmayı azaltmak için ters proxy’ye, Web sunucusuna veya PHP istek işlemeden önce gelen diğer sınırlara kısıtlamalar getirilmesi gerekir. S1S2

2.3 CVE-2026-109619: İstek belleği serbest bırakıldı, genel referans hala hayatta

Bu sorun hata, oturum, nesne veya uzantı durumunu içerir: alan, çalışanın uzun vadeli erişim konumunda depolanır, ancak alanın referans verdiği veriler tek bir isteğe aittir. Referans, istek yığını serbest bırakılmadan önce düzgün bir şekilde temizlenmediği sürece, sonraki istekler, serbest kullanım sonrası kullanım oluşturacak şekilde sarkan bir durumla karşılaşabilir. S3

Resmi analiz, sömürü koşullarını “üreticiler” ve “tüketiciler” olarak ikiye ayırıyor:

rol veya koşulanlamKorumaya yönelik çıkarımlar
devlet yapımcısıBu isteğin sahip olduğu durumu daha sonra erişilebilecek bir konuma yerleştirinAnormal çıkıştan sonra ilgili temizliğin tamamlanıp tamamlanmadığını kontrol etmek için
Durum kalırTemizlenmedi ya da geç bir operasyonla temizlenip yeniden dolduruldu.Daha önceki kapatma aşamasında yalnızca bir kez temizlemek yeterli olmayabilir
işçinin yeniden kullanımıAynı çalışan sonraki talepleri işlemeye devam ediyorBirden fazla çalışan yalnızca bir planlama farkıdır, bellek güvenliği garantisi değildir
peşin tüketiciİlgili durum normal şekilde başlatılmadan önce artık değeri okuyun, serbest bırakın veya belirleyin.Başlatmadan önce INI, oturum ve diğer yollar kontrol edilmelidir

Bu koşulların bir arada karşılanması gerekir; herhangi bir hata günlüğü tek başına güvenlik açığından başarıyla yararlanıldığını kanıtlamaz. S3

Gerekli bir ön koşul olarak OOM gerektirmez

Önemli hatalar, eşleştirilmiş durumun yayınlanmasını ve geri yüklenmesini kesintiye uğratabilir. Derleme veya ayrıştırma hataları, yakalanmamış hatalar, require hataları ve yürütme zaman aşımları belirli durumları geride bırakabilir. Temizleme işleminin sonlarında yapılan ölümcül olmayan tanılamalar, önceden temizlenmiş olan hata bilgilerini de yeniden doldurabilir. S3

Bu nedenle memory_limit’yi sınırsız olarak değiştirmek bu güvenlik açıklarını kapsamaz.

”Başlatmadan önce” ayrı olarak ele alınmalıdır

İki tür onaylanmış tüketicinin zamanlaması farklıdır:

  • Erken INI tanılama: İstek üzerine uygulanan bazı yapılandırmalar, normal yürütücü başlatmadan önce uyarı, bildirim veya kullanımdan kaldırma sorunu çıkarır ve tanılama işlemi eski hata durumuna erişebilir.
  • Oturum yükleme ilerlemesi: oturum, istek gövdesi ayrıştırma işlemi sırasında önceden işlenebilir, ancak normal modül RINIT henüz tamamlanmamıştır; uygulama açıkça session_start()’yi çağırmadığından yolun var olmadığı sonucu çıkarılamaz. S3

Tüm INI yapılandırmaları aynı risk zamanlamasına sahip değildir. FPM ön uç tarafından iletilen mod_php ve PHP_VALUE / PHP_ADMIN_VALUE’nin dizin düzeyinde yapılandırmasının, sıradan php.ini, FPM pool başlangıç ​​yapılandırmasından ve FPM .user.ini’den ayırt edilmesi gerekir. İkincisi, farklı konfigürasyon zamanlamasına sahiptir ve toplu olarak aynı erken tüketiciler olarak adlandırılamaz. S3

display_errors, log_errors’nin kapatılması, error_reporting’nin azaltılması veya @’nin kullanılması yalnızca teşhisin görünürlüğünü etkiler; Günlüğün çıktısının alınıp alınmayacağına karar verilmeden önce ilgili dahili duruma erişilmiş olabilir. S3

3. Onarım sürümü ve yama seçimi

3.1 Resmi yukarı akış düzeltme temeli

Mevcut PHP şubesiBu resmi düzeltmeyi içeren ilk sürümÖneriler
8.28.2.35Bu sürüme veya aynı düzeltmeleri içeren sonraki bir sürüme yükseltin
8.38.3.36Yukarıdakiyle aynı
8.48.4.27Yukarıdakiyle aynı
8.58.5.12Yukarıdakiyle aynı
8.1 ve önceki sürümlerYukarı akış genel desteği sona erdiDesteklenen şubelere geçişe öncelik verin; kısa vadeli kontrol yayını veya LTS üretici desteği

Sürüm ve destek durumu, PHP’nin resmi duyurusuna dayanmaktadır ve zaman aralığı 22 Ekim 2026’dır. S1

Bunlar Şubeye özgü düzeltme eşikleri’dir. Bunlar, 8.5.12’nin altındaki her sürümün güvenlik açığına sahip olduğunu belirten bir ifadeyle değiştirilemez: diğer dallardaki 8.2.35 ve 8.4.27 gibi sürümler zaten düzeltmeleri içermektedir.

3.2 Tam dağıtım paketi sürümünü kontrol edin

Dağıtımlar genellikle eski yukarı akış sürümlerini temel alan güvenlik düzeltmeleri ekler. Kabulde ayrıca yayın sürümü, depo kaynağı, tam paket sürümü ve güvenlik bülteni de kontrol edilmelidir.

Örneğin, Ubuntu USN-8948-1 için listelenen Ubuntu 24.04 LTS düzeltme paketi sürümü şöyledir:

8.3.6-0ubuntu0.24.04.13

Yukarı akış kısmı hala 8.3.6’dir, ancak bu dağıtımın tam paket sürümü bu düzeltme duyurusuna dahil edilmiştir. Bu sonuç yalnızca ilgili dağıtım ve paket kaynağı için geçerlidir ve 8.3.6 görüntüleyen herhangi bir yapıya genelleştirilemez. S10

3.3 Doğru yamayı seçme

sahneÖncelik planıKabul için önemli noktalar
PHP dağıtım paketini kullanmaÜretici tarafından yayımlanan güvenlik güncellemelerini yükleyinDuyuru hem CVE’yi; tam paket sürümü doğru
Resmi PHP kapsayıcısını veya kendi oluşturduğunuz görüntüyü kullanınTemel çalışma zamanını güncelleyin, yeniden oluşturun ve dağıtınÇalışan örnek yeni görüntüyü kullanır; tüm eski kopyalardan çıkıldı
Kendi kendine derlenen desteklenen dallarBu dalın resmi güvenlik sürümünü veya tam resmi yama setini kullanınDal eşleştirme, bağımlılık tamamlama, uzantı uyumluluğu ve regresyon geçişi
7.4, 8.0, 8.1’ye tabidirSatıcı desteğine öncelik verin; gerekirse resmi acil durum kaynak kodu dalını değerlendirinDavranış değişikliklerini belirleyin ve desteklenen sürümlere geçişi planlayın

Resmi yamalar yayınlandı ve gerçek düzeltmeler bu yamalardan başlamalı. Bölüm 6’daki kod parçacıkları, tasarımı ve gözden geçirilen önemli noktaları göstermeyi amaçlamaktadır ve bağımsız olarak uygulanabilecek eksiksiz bir yama oluşturmamaktadır. S1S4S6

4. Resmi onarım süreci

4.1 İstekleri fiilen işleyen çalışma zamanının envanteri

En azından aşağıdakileri kaydetmek için kısa bir defter oluşturulması tavsiye edilir:

  • Giriş alan adı veya hizmeti, ters proxy arka ucu, PHP SAPI.
  • PHP şubesi, tam paket sürümü veya görüntü özeti, derleme kaynağı.
  • FPM pool, gerçek hizmet birimi, konteyner veya Pod, kopya sayısı.
  • Uzantılar, ana konfigürasyon ve ek konfigürasyon dosyaları yüklendi.
  • Doğrudan erişilebilen başka PHP sürümleri, eski dağıtım kopyaları veya kaynak portalları var mı?

Bunlar, “yükseltilmiş” ifadesinin her gerçek trafik girişine karşılık gelebilmesi için uygulama önerileridir. Özellikle PHP ve Web PHP komut satırlarının farklı sürümler kullanıp kullanmadığını, görüntünün oluşturulduğunu ancak eski kapsayıcının hala çalıştığını, havuzun bir kısmının veya kopyanın değiştirilmediğini vb. kontrol edin.

4.2 Doğru güncellemeyi seçin ve dağıtın

Tercihen mevcut bir güvenilir paket kaynağı veya kontrollü yapı zinciri kullanarak düzeltme sürümünü Bölüm 3’e göre onaylayın. Güncelleme kapsamı, FPM paketi, Apache PHP modülü, CGI ikili dosyası veya PHP’nin gömülü olduğu hizmet yapısı gibi, isteği gerçekten barındıran bileşeni içermelidir.

Yükseltmeden önce yapılandırmayı ve paket listesini saklayın ve üretim ortamına benzer bir ortamda başlangıç ve anahtar hizmetlerini doğrulayın. Kendi kendine bakımı yapılan uzantılar için, PHP sürümüne karşılık gelen derleme ve çalıştırma uyumluluğunu kontrol edin. Sadece başka bir şubeden görünüşte alakalı bir taahhüt seçmek, tüm düzeltmelerin uygulandığını garanti etmez.

4.3 Çalışan örnekleri yeniden başlatın veya devredin

Bir dosya yüklemek ve bir işleme yeni kod yüklemek iki farklı şeydir. İlgili hizmet yeniden başlatılmalı veya yuvarlanma değişimi tamamlanmalı ve eski çalışanın ve eski konteynerin çıktığı doğrulanmalıdır.

mod_php için modülü barındıran Apache işlemini yeniden başlatın. PHP’yi içeren hizmetlerin barındırma işlemlerinin değiştirilmesi gerekiyor. FPM için OPcache’nin temizlenmesi, çalışma zamanının güncellenmesinin ve eski çalışanların emekliye ayrılmasının yerini almaz.

Zarif anahtarlamayı kullanırken, eski nesil sürecin hala uzun bağlantıları veya bekleyen istekleri işleyip işlemediğini kontrol etmeniz gerekir. Kabul kaydı, eski örneğin gerçek hizmetini, dağıtım sürümünü, değişikliğin tamamlanma süresini ve çıkış sonuçlarını içermelidir.

4.4 Gerçek Web istekleri aracılığıyla doğrulama

Yalnızca tek bir komut sürümüne güvenmek yerine aşağıdaki kanıt parçalarının birleştirilmesi önerilir:

kanıtNe kanıtlanabilir?Tek başına hiçbir şeyi kanıtlayamam
Paket yöneticisi veya görüntü meta verileriKurulum kaynakları ve tam sürümlerTrafik bu örneğe değiştirildi
İşlem ve dağıtım durumuişçi veya konteyner değiştirmeyi tamamlıyorDış giriş ona yönlendirilmelidir
Gerçek portal üzerinden erişilen kısıtlı teşhis sonuçlarıGerçek Web SAPI ve çalışan yapılandırmaSürüm destek portunun iki CVE’yi kapsayıp kapsamadığı
Satıcı duyurusu veya tam yama kaydıBu hata düzeltmesi bu yapıya dahil edilmiştirTüm kopyalar dağıtıldı

PHP_VERSION, PHP_SAPI, yüklenen yapılandırma dosyaları ve acil durum yapılandırmaları, mevcut dahili tanılama yetenekleri veya geçici ve erişim kontrollü tanılama portalları aracılığıyla kontrol edilebilir. İsteğin doğrudan CDN veya sayfa önbelleği tarafından döndürülmediğinden emin olun; tamamlandığında geçici tanı girişini kaldırın.

php -v genellikle yalnızca halihazırda kabuk tarafından seçilen CLI ikili dosyasını gösterir; php-fpm -i gibi komutlar, trafik alan mevcut çalışanın doğrulanmasına eşdeğer değildir. phpinfo() sayfasının tamamını uzun süre genel ağa maruz bırakmayın.

4.5 İş regresyon kontrolleri ve acil durum ayarlarının kaldırılması

Bu değişiklikten etkilenen işlevlerde normal oturum açma, oturum okuma ve yazma, form ve yükleme, içe aktarma, hata işleme ve çalışan kararlılığını doğrulayın. Hata oranının, yanıt gecikmesinin, bellek zirvesinin, işlem çıkışının ve yeniden oluşturma sıklığının anormal olup olmadığını kontrol edin.

memory_limit=-1 geçici olarak ayarlanırsa iş kapasitesine uygun sınırlı bütçe, resmi yama yürürlüğe girdikten sonra geri yüklenecektir; pm.max_requests=1 ayarlandıysa, kapasite değerlendirmeli yaşam döngüsü yapılandırması onarım onaylandıktan sonra geri yüklenecektir. Giriş boyutu sınırları ve kaynak erişim kontrolleri, iş ihtiyaçlarının gerektirdiği şekilde muhafaza edilebilir.

Yükseltme sırasında uyumluluk sorunları ortaya çıkarsa, etkilenen portalın askıya alınmasına, harici erişiminin kısıtlanmasına veya geri dönmeden önce uygulamanın ayarlanmasına öncelik verilmelidir. Onarılmamış çalışma zamanının doğrudan genel ağa hizmet vermesine izin vermek orijinal riski yeniden açacaktır.

5. Hemen yükseltmenin mümkün olmadığı durumlarda azaltıcı önlemler

Bu bölüm, maruziyetin kısa vadede azaltılması veya kullanılabilirliğin iyileştirilmesi için tasarlanmıştır. Her önlem yalnızca belirli bir yolu kapsar ve birden fazla önlemin birleşimi tam bir onarım anlamına gelmez. S1S2S3

5.1 PHP’den önce trafik kontrollerine öncelik verin

Hizmet izin veriyorsa, hassas uç noktaları geçici olarak güvenilir kaynaklarla sınırlayın veya PHP’den önce erişim kontrolünü zorunlu kılın. Yükleme iş yükleri için istek gövdesi boyutunu, alan sayılarını, parça sayılarını, parça başına başlıkları ve yerleştirme derinliğini sınırlayın. Çok parçaya ihtiyaç duymayan hizmetler ön uçta bunu reddedebilir. S2

Bu kısıtlamalar PHP’ye tüm girişleri kapsayacaktır. Yalnızca “upload” adlı URL’nin ele geçirilmesi, istek gövdesinde PHP tarafından otomatik olarak ayrıştırılan diğer girişleri kaçıracaktır. Parçalanmış aktarımlar, beyan edilen uzunluğun bulunmaması vb. gibi durumlarda sınır, gerçek okuma boyutuna dayanmalıdır; içeriğin sıkıştırmasını açarken veya tekrar genişletirken uygulamanın kendi çıktı boyutu bütçesine de sahip olması gerekir.

5.2 FPM pool yapılandırma şablonu

FPM pool yapılandırma bölümüne aşağıdaki ayarları, php.ini’de kelimesi kelimesine değil, gerçekte isteklere hizmet eden yerleştirin. 8M ve 4M değerleri iş yüküne göre ayarlamaya yönelik örneklerdir. POST isteğinin tamamını sınırlandırırken form alanları ve çok parçalı sınırlar için yer bırakın. S11S12

; Temporary mitigation: evaluate capacity before applying.
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 4M
php_admin_flag[session.upload_progress.enabled] = off

Yalnızca PHP 8.5, artı:

php_admin_flag[fatal_error_backtraces] = off

Her birinin işlevleri ve sınırları aşağıdaki gibidir:

Yapılandırmabeklenen etkiKorunması gereken kısıtlamaların açıklaması
memory_limit=-1Tahmin edilebilir PHP istek belleği üst limit tetikleme koşulunu kaldırınTemel tahsisat hatasını engellemez; Orijinal bütçenin iptal edilmesi hafızanın tükenmesi ve hizmet kesintisi riskini artırabilir.
Daha küçük post_max_sizeAyrıştırma işlemine giren verilerin boyutunu azaltınSabitlenmemiş ayrıştırıcının bilinen bir boşluğu vardır; Bellek amplifikasyonu bağımsız olarak önlenemez
upload_max_filesize < post_max_sizeTek dosya boyutunu sınırlayın ve istek ek yükünü ayırınTüm alanları, meta verileri veya uygulama içi tahsisleri kısıtlamaz
Yükleme ilerlemesini kapatOnaylanan oturumla ilgili yolu engelleDiğer küresel durum değişkenlerini kapsamaz
PHP 8.5 ölümcül geri izlemeyi kapatOnaylanmış ilgili durum üreticilerini engelleOturum gibi diğer yolları kapsamaz

Tedbir sınırları resmi duyurudan alınmıştır; havuz sözdizimi ve yönetim düzeyinde yapılandırma semantiği için PHP kılavuzuna bakın. S1S2S3S11

Yönetim düzeyindeki php_admin_* ayarları, ini_set() aracılığıyla uygulamalar tarafından geçersiz kılınamaz. Gerçek isteklerdeki değerlerin beklendiği gibi olduğunu doğrulamak için tüm havuz, dizin düzeyi ve ön uç gelen yapılandırmaların yine de incelenmesi gerekir. Değişiklikten sonra, mevcut süreçlerin eski durumunu korumaya devam etmesini önlemek için tüm çalışanları yeniden oluşturun.

php.ini’yi doğrudan değiştirmeyi seçerseniz söz dizimi şu şekilde değiştirilmelidir:

memory_limit = -1
post_max_size = 8M
upload_max_filesize = 4M
session.upload_progress.enabled = Off

Havuzdaki php_admin_value’den farklı olarak, php.ini’de yalnızca memory_limit=-1’yi ayarlamak uygulamanın onu tekrar değiştirmesini engellemez. Sınırlı değeri sıfırlayıp sıfırlamadıklarını görmek için çerçeve, uygulama kodu ve diğer yapılandırmalar kontrol edilmelidir; uygulama gerektiğinde mevcut SAPI için uygun yönetim düzeyi ayarlarını kullanın ve gerçek etkin değeri kontrol edin. S11S12

fatal_error_backtraces = Off’yi yalnızca PHP 8.5 için ekleyin. Yükleme ilerlemesini devre dışı bırakmak için uygulama düzeyindeki ini_set()’yi geçici çözüm olarak kullanmayın ve istek ayrıştırmadan önce bunun etkili olması için FPM .user.ini’ye güvenmeyin. S1S3

5.3 PHP bellek sınırlarını kaldırmanın maliyetini yönetin

memory_limit=-1, sabitlenmemiş ortamlar için geçici bir yol azaltımıdır ve uzun vadeli varsayılan yapılandırma olarak kopyalanmamalıdır. Bir uygulama veya istek kontrolden çıktığında ana bilgisayarın belleğinin daha fazlasını kullanabilir. Bu nedenle, kullanımdan önce eşzamanlılık sayısını, en yüksek tek çalışanı ve toplam hizmet kapasitesini değerlendirmeli ve ön uç giriş sınırlarını dağıtmalısınız. S2

Konteyner veya grup bellek sınırları, kullanılabilirlik sınırları sağlayabilir ancak ayırmaların hiçbir zaman başarısız olmayacağını garanti etmez; Limit tetiklendiğinde konteynerin tamamı, ana ve tüm çalışanlar da sonlandırılabilir. Yalıtım ayrıntı düzeyi ve sonlandırma stratejilerinin dağıtımla birlikte değerlendirilmesi gerekir ve bu iki CVE için tam koruma olarak adlandırılamaz. S2

Yukarıdaki stratejileri RLIMIT_AS, RLIMIT_DATA veya karşılık gelen işlem adresi alanı kısıtlamalarıyla değiştirmeyin; doğrudan temel tahsisin hâlâ sorunlu olan OOM yolunda başarısız olmasına neden olabilirler. S2

5.4 Nginx Yapılandırma Örneği

Nginx’nin istekleri PHP-FPM’ye ilettiği dağıtım için geçerlidir. Gerçek barındırma hizmetinin yapılandırma düzeyinde ayarlanabilir:

client_max_body_size 8m;
fastcgi_request_buffering on;

client_max_body_size istek gövdesi boyutunu sınırlar; fastcgi_request_buffering on, Nginx’nin önce istek gövdesinin tamamını okumasını ve ardından onu FastCGI arka ucuna göndermesini sağlar. Belirli bir server’de mi yoksa location’de mi geçerli olacağı, mevcut miras ve kapsam ilişkileriyle birlikte kontrol edilmelidir. S13S14

Yalnızca işletmenin çok parçalı parçaya ihtiyacı olmadığında, ilgili hizmet girişine bir ret kuralı ekleyebilirsiniz:

if ($http_content_type ~* "multipart/form-data") {
    return 403;
}

Bu, ayrıştırıcı güvenlik açıklarına yönelik genel bir filtreleme kuralı değil, if ve return kullanan basit bir giriş kısıtlama şablonudur. Dağıtımdan önce yapılandırma sözdizimini ve normal istekleri doğrulayın ve özel error_page’nin 403 isteği PHP’ye yönlendirip yönlendirmediğini kontrol edin. Dize eşleştirme, tüm ayrıştırma farklılıkları konusunda tam garanti sağlamaz. S15

Ayrıca, bu yapılandırmalar veri miktarını, alan sayısını veya uygulama tarafından sıkıştırılmış PHP nesnelerinin sayısını otomatik olarak sınırlamaz; Yükleme yapması gereken işletmeler, isteklerinin yapısını anlayan ek kısıtlamalar kullanmalıdır.

5.5 İsteğe bağlı azaltım: FPM çalışanı başına bir istek

Genel giderleri karşılayabilecek FPM dağıtımları için kısa vadeli kurulumlar değerlendirilebilir:

pm.max_requests = 1

Ve mevcut işçiyi yeniden inşa edin. Tanımlanan çapraz istek zincirini çalışanın yeniden kullanımı düzeyinde engeller, ancak süreç oluşturma ve başlatma yükünü artıracaktır; aynı zamanda aynı OOM isteğini ve CVE-2026-109618 temizleme sorunlarını onaramaz. Değer 1’den küçük ancak 1’den büyük olduğunda hâlâ bir istek yeniden kullanım penceresi vardır. S3S11

5.6 WAF ve Cloudflare kapsama sınırları

Cloudflare, Free planı da dahil olmak üzere PHP2Shell’ye karşı koruma için dağıtım düzenlemelerini duyurdu. Hizmetlerini kullanırken, gerçek trafiğin proxy üzerinden geçip geçmediğini, koruma kurallarının etkin olup olmadığını ve kaynak sitenin doğrudan atlanıp atlanamayacağını kontrol etmelisiniz; ücretli planlar için ilgili Yönetilen Kuralların yapılandırmasını ve istisnalarını da kontrol etmeniz gerekir. S16

Satıcı tarafından açıklanan algılamaların bazıları yanıt sinyallerini kullanır; dolayısıyla tüm korumalar “her saldırı PHP’ye ulaşmadan engellenir” şeklinde yorumlanamaz. WAF, maruziyetin azaltılmasına yardımcı olabilir ve gözlemsel bilgiler sağlayabilir, ancak PHP’ye yönelik sürekli yükseltmeler hala gereklidir. S16

5.7 Ortak önlemler neden yetersiz?

önlemler veya hükümlereksiklikler
Yalnızca file_uploads’yi kapatınÇok parçalı işlemlerin tümü kapsanamaz ve kendi OOM yolu uygulanamaz
enable_post_data_reading=Off’nin ayarlanmasıPOST/FILES’ı otomatik olarak doldurma davranışını değiştirin; istek gövdesi uygulama tarafından hâlâ okunabilir ve normal işleri aksatabilir
Hata görüntülemeyi kapatın, günlüğe kaydedin veya @ kullanınDahili tanılama işlemi hala bekleme durumuna erişebilir
İşçi miktarını artırınGüvenli durum temizleme mekanizması oluşturmayın veya tek bir çalışanın yeniden kullanımını ortadan kaldırmayın
Yalnızca disable_functions veya open_basedir’yi yapılandırınBu sınırlamalar C motor katmanı bellek bozulmasını düzeltmez
Bir sürümü veya tek bir kopyayı yalnızca bir kez kontrol edinTüm girişlerin ve çalışan örneklerin değiştirildiği kanıtlanamaz
İstisna günlüğü görünmüyorBu güvenlik açığının mevcut olmadığını veya daha önce istismar edilmediğini kanıtlayamaz.

Bunlar arasında, PHP’nin yapılandırma ve güvenlik açığı mekanizmasının temeli S2S3S12’de bulunabilir; kapsam, kabul ve izin sınırlarına ilişkin yargılar bu mekanizmaların ortaya koyduğu uygulama önerilerine dayanmaktadır.

6. Resmi yamanın uygulama fikirleri ve inceleme noktaları

6.1 Doğru dal için tam düzeltmeleri kullanın

PHP 8.5 için temsili resmi başvuru şöyledir:

31c0ea7d7ff1d1fccb6492e52dab544011628065
Avoid state corruption via bailout

Taahhüt, hem OOM çıkış mekanizmasını ayarlamak hem de başlatma aşamasında erişilebilecek genel durumu düzeltmek için iki CVE’yi açıkça ilişkilendirir. Tam farkı içeren sayfayı gönderin, bkz. S4S5. Diğer şubeler kendi resmi güvenlik sürümlerini veya eşleşen yamaları kullanmalıdır ve 8.5’de yapılan değişikliklerin herhangi bir eski sürüme doğrudan uygulanabileceği varsayılamaz.

6.2 OOM Onarım: önce işlenebilir durumu geri yükleyin ve ardından isteği sonlandırın

Resmi uygulama, yumuşak ve sert OOM işlemenin iki düzeyini sunar: Yumuşak sınıra ulaşıldığında bekleme durumu kaydedilir ve VM gibi güvenli bir konumda kontrollü bir çıkış gerçekleştirilir; Arızalı tahsis arayüzü, arayanın arızayı açıkça ele almasına olanak tanır. Doğrudan başarısızlıkla sonuçlanamayan tahsisler için, daha yüksek bir sabit eşiğin aşılması bekleniyorsa, isteklerin güvenli olmayan bir ara durumda işlenmesine devam edilmesini önlemek için süreç doğrudan sonlandırılacaktır. S2S5

Aşağıda, bekleyen OOM’yi işaretlemek için kullanılan 8.5 farkındaki anahtar kodun bir alıntısı bulunmaktadır:

EG(delayed_oom).state = ZEND_OOM_STATE_PENDING;
zend_atomic_bool_store_ex(&EG(vm_interrupt), true);

VM kesinti yönetimi ve diğer güvenli konumlar daha sonra zend_handle_delayed_oom()’yi arayın. Kullanıcı kodu yürütme bağlamı kontrollü bir çözme yolu kullanır; zor OOM yolu _exit(137)’yi çağırır. S5

Tasarım açısından bakıldığında, önemli değişiklikler şunlardır: Yapı bir ara durumdayken C çağrı yığınını keyfi olarak geçmekten kaçınır ve çıkışı, durum kısıtlamalarını koruyabilen bir konumuna yerleştirir. Yumuşak limit tetiklendikten sonra işlemi tamamlamak için ek hafızaya ihtiyaç duyulabilir, dolayısıyla yeni yumuşak eşik, prosesin toplam hafızası için mutlak bir üst limit olarak anlaşılamaz.

“PHP tüm zend_bailout()’yi sildi” şeklinde de özetlenemez. Yama hala belirli bağlamlarda ilgili mekanizmaları kullanıyor; sabit olan tehlikeli çıkış zamanlaması ve buna eşlik eden durum yönetimidir. S5

6.3 Tahsis arayanları ve çok parçalı ayrıştırmayı birlikte güncelleyin

Bir ayırma işlevini yalnızca “başarısızlık durumunda NULL döndür” olarak değiştirirseniz ve orijinal arayan kişi hala geçerli bir işaretçinin her zaman döndürüldüğünü varsayarsa, yeni boş işaretçi erişimleri veya eksik temizleme sunacaksınız. Yamadaki arızalı tahsis arayüzünün, arayan kontrolü ve istisna yayılımı ile birlikte gözden geçirilmesi gerekir. S5

çok parçalı ilgili düzeltmeler ayrıca gerçek okuma hacmine dayalı kümülatif kontrollerin gerçekleştirilmesini, gereksiz veya yinelenen başlıkların işlenmesini azaltmayı ve OOM beklemedeyken tutarlı çıkış ve temizleme mantığının benimsenmesini içerir. Bu değişiklikler hem kaynak amplifikasyonunu azaltır hem de ayrıştırıcının yeni OOM protokolüyle uyumlu olmasını sağlar. S5

Kendi şubelerine sahip ekipler için aşağıdaki konuların kod incelemesinin odak noktası olması önerilir:

  • Durum tamamen başlatılmadan önce dış dünyaya görünür mü?
  • Tahsis hatası veya geri arama istisnasından sonra sahiplik hala benzersiz ve net mi?
  • Yarıda başarısız olursanız birleşik temizleme çıkışına ulaşabilir misiniz?
  • Temizleme işlevi başlatılmamış veya serbest bırakılmış alanları tanıyabilir mi?
  • Ayrıştırma bütçesi yalnızca güven isteği taleplerine değil, gerçek işlem hacmine mi dayanıyor?
  • Yeni hata dönüş değeri tüm arayanlar tarafından ele alındı mı?

Bunlar düzeltme mekanizmasına göre özetlenen inceleme sorularıdır ve sağlanmayan bir kod tabanı için tamamlanmış bir denetimin sonucu değildir.

6.4 Çapraz istek düzeltmesi: başlatma daha erken, son temizleme daha sonra

CVE-2026-109619’ye karşılık gelen yama, aynı anda birden fazla yaşam döngüsü sınırlarını ayarlar. Aşağıda listelenen dosyalar ve işlemler örnek olarak PHP 8.5 resmi farkını almaktadır. S5

konumyön değiştirSorun çözüldü
Zend/zend_execute_API.c vb.Hatalar, istisnalar, işleyiciler, nesneler vb. gibi yürütücü durumunu sıfırlayın.İstek sona erdikten sonra, bir sonraki isteğin erişebileceği eski referanslar hala mevcuttur.
main/main.c’nin başlangıç yoluSAPI etkinleştirilmeden önce php_basic_early_rinit()’yi arayınErken tüketici oluştuğunda, ilgili temel durum henüz başlatılmamıştır.
main/main.c yolunu kapatHTTP globals’yi yok edin ve tanımsız olarak işaretleyinSerbest bırakılan değer hâlâ geçerli bir nesne olarak kabul ediliyor
istek yığını nihayet serbest bırakılmadan önceSon hata mesajını tekrar temizleyinGeç temizleme tanılamaları hata durumunu yeniden doldurur
ext/session/session.cyükleme ilerlemesi Erken yol, ilk oturum genel öğelerine başlatılırNormal modül RINIT daha önce eski duruma erişti
Serileştirmeyle ilgili kodErken işlemlerde sınıf ayrıştırmayı ve kullanıcı geri aramalarını sınırlayınBaşlatma tamamlanmadığında ek kullanıcı kodunu yürütün

Örneğin, başlatma sırası şunları içerir:

zend_activate();
php_basic_early_rinit();
sapi_activate();

HTTP globals yok edildikten sonra durum hatası işaretini ekleyin:

zval_ptr_dtor(&PG(http_globals)[i]);
ZVAL_UNDEF(&PG(http_globals)[i]);

Bu alıntılar iki prensibi göstermektedir: Mümkün olan en erken tüketiciden önce başlat ve durumu yeniden oluşturabilecek son işlemden sonra son temizlemeyi gerçekleştir. Bir işaretçiyi yalnızca normal RINIT sırasında veya daha önceki bir kapatma aşamasında sıfırlamak, önceki veya sonraki erişimleri kaçırabilir. S5

6.5 Neden kendi “tek hat onarımınızı” yapmanız önerilmez?

Tüm zend_bailout()’yi _exit() ile değiştirmek veya yalnızca belirli bir girişe boş işaretçi denetimi eklemek, çok sayıda farklı yürütme bağlamını kapsayacaktır. Diğer durum alanlarını atlayabilir veya imhayı, genişletilmiş geri aramaları, işlem barındırmayı ve istek sonu semantiğini değiştirebilirler.

Desteklenen sürümler için, daha önce yayınlanmış olan tam düzeltmeler önceliklidir. Kendi şubelerinin geçişi, yamaların kaynağını, geçerli temel çizgileri, çatışma yönetimini ve davranış değişikliklerini kaydetmeli ve ilgili yukarı akış regresyon kullanım örneklerini ve bu iş sürecinin doğrulanmasını kullanmalıdır. Buradaki öneriler, ayırıcı, VM, oturum ve istek yaşam döngüsü değişiklikleri genelinde yamanın kapsamının analizinden gelmektedir. S4S5

7. PHP 7.4, 8.0, 8.1’nin acil durum desteği

PHP, ciddiyetine bağlı olarak üç eski dalın minimum kaynak kodu desteğini resmi olarak sağlar. Şube isimleri şunlardır:

PHP-7.4-CVE-2026-109618-109619
PHP-8.0-CVE-2026-109618-109619
PHP-8.1-CVE-2026-109618-109619

Şube bağlantıları için bkz. S7S8S9. Bunlar, bu güvenlik açığına yönelik acil durum teslimatlarıdır ve eski şube için düzenli yukarı akış desteğine dönüşü temsil etmez veya diğer güvenlik güncelleştirmelerinin yerine geçmez. S1

7.1 Örnek olarak PHP 8.1 destek portunu alın

PHP 8.1 için ilgili gönderimler şunlardır:

1d7dec178a094e6e75b229ce22754045f8c6070a

Stratejisi hızlı arızayı tercih eder: karşılık gelen OOM yolunda teşhis çıktısı aldıktan sonra _exit(1)’yi çağırmak ve genel durumu ve diğer ilgili düzeltmeleri dahil etmek; oturum yükleme ilerlemesinin ilgili işlenmesini dahili olarak devre dışı bırakırken. İlgili kaynak kodu gönderimi için bkz. S6.

Bu, desteklenen daldaki daha eksiksiz gecikmeli OOM tasarımından davranışsal bir farklılıktır. Yapılandırmanın hâlâ yükleme ilerlemesinin açık olduğunu göstermesi, bu destekten sonraki dahili işleme davranışının değişmeden kalacağı anlamına gelmez.

7.2 Dağıtım sırasında kabul etmeniz gereken fiyat

İşlemden doğrudan çıkmak, mevcut isteğin başarısız olmasına, normal PHP kapatma geri çağrılarının ve uygulamanın kapatılmasının bir kısmının atlanmasına neden olabilir; Ana bilgisayar bir iş parçacığı modelini benimserse, tüm ana bilgisayar işlemi çıkışının diğer eşzamanlı işler üzerindeki etkisini de değerlendirmek gerekir. Süreç yöneticisinin değiştirme sürecini zamanında başlatıp başlatamayacağı da doğrulamaya dahil edilmelidir.

Bu nedenle, eski sürümlerin kullanıcıları sırasıyla şunları dikkate almalıdır:

  1. Desteklenen PHP şubesine ve sabit sürümüne geçiş yapın.
  2. Hem CVE hem de LTS üretici güncellemesini açıkça kapsayan bir sürüm kullanın.
  3. Gerçekten kaynak kodun eski sürümüne tabiyse, tüm değişiklikleri ve uyumluluğu doğrulamak ve sonraki geçişi ayarlamak için eşleşen sürümün resmi acil durum destek raporunu kullanın.

Buradaki “minimum destek”, yetkili tarafından seçilen uyumluluk ve uygulama kapsamını açıklamaktadır ve otomatik olarak “bilinen eksik güvenlik açığı düzeltmeleri” olarak yorumlanmamalıdır. İlgili branşın kaynak koduna ve üreticinin duyurusuna göre karar vermeli, destekleyici değişiklikleri kendi başınıza silmemelisiniz. S1S6

8. Kabul kriterleri ve takip muayeneleri

Bu onarımın tamamlanması için aşağıdaki sonuçların temel olarak kullanılması önerilir:

Kabul öğeleriTamamlama standartları
güvenlik açığı kapsamıDerleme veya satıcı duyurusu, CVE-2026-109618 ve CVE-2026-109619’yi açıkça düzeltir
Dağıtım kapsamıTüm portallar, havuzlar, hizmetler ve replikalar onarılan çalışma zamanını kullanır
Süreç yürürlüğe giriyorEski işçi, eski ana bilgisayar işlemi ve eski kapsayıcının tümü çıkar
Orijinal istek doğrulamasıOnaylanmış SAPI, önbellek yanlış yönlendirmesini ortadan kaldırmak için gerçek Web bağlantısıyla oluşturulmuş ve yapılandırılmıştır
iş kullanılabilirliğiOturum, yükleme, içe aktarma ve hata işleme gibi temel işlevler normal şekilde geri döndü.
Geçici önlemlerin sona ermesiSınırsız bellek ve aşırı çalışan geri dönüşüm yapılandırmaları, kapasite planına göre geri yüklendi veya açık bir saklama nedeni var
Değişimin kanıtıPaket sürümünü veya görüntü özetini, güncelleme kapsamını, tamamlanma süresini ve doğrulama sonuçlarını kaydedin

Yukarıdakiler uygulamaya yönelik önerilerdir. OOM davranışını, anormal çıkışı veya özel yamaları doğrulamanız gerekiyorsa bir kabul yöntemi olarak üretim ortamında tekrar tekrar bellek tükenmesi oluşmasını önlemek için yalıtılmış bir ortamda yukarı akış regresyon testini veya kontrollü hata eklemeyi kullanmalısınız.

Ayrıca güncelleme öncesinde ve sonrasında PHP ölümcül, çalışan kazası, anormal yeniden başlatma, istek hatası oranı ve WAF olaylarını da kontrol edin. Günlükler yalnızca araştırma ipuçları sağlayabilir: OOM’nin ortaya çıkması, istismar edildiği anlamına gelmez ve alarmların olmaması, herhangi bir istismarın meydana gelmediğini kanıtlamaz. Yükseltme, gelecekte ulaşılabilecek güvenlik açığı yollarını düzeltir; Dosyada tahrifat yapılması veya kimlik bilgilerinin sızması gibi anormallikler bulunursa ayrı olay incelemeleri yapılmalıdır.

Ek: Alıntılanan kaynaklar ve bağlantılar

Tüm kaynak bağlantıları aşağıda toplanmıştır. Öneriler, yamalar ve satıcı kılavuzları, 22 Ekim 2026 itibarıyla yapılan kontrolleri yansıtmaktadır; sonraki dağıtımlar satıcı güncellemelerini kontrol etmelidir. Metindeki numaralı alıntılar bu girişlere atıfta bulunmaktadır.

S1 — PHP resmi güvenlik bülteni ve onarım sürümü

  • Kaynak: Project PHP, 21 Ekim 2026.
  • Amaç: Eski şubeler için risk kapsamı, dört resmi onarım versiyonu, resmi geçici önlemler ve acil durum destek talimatları.
  • Kaynak: PHP 2026 This security bulletin yıllık bülten arşivindedir

S2 — CVE-2026-109618 Resmi Teknik Bülten

  • Kaynak: php/php-src GitHub Security Advisory, 21 Ekim 2026.
  • Tanımlama: GHSA-w8hw-w9fx-j79w.
  • Amaç: OOM için kapsama sınırı, çok parçalı amplifikasyon, SAPI farkı ve hafifletme.
  • Kaynak: RCE via OOM corruption

S3 — CVE-2026-109619 Resmi Teknik Bülten

  • Kaynak: php/php-src GitHub Security Advisory, 21 Ekim 2026.
  • Tanımlama: GHSA-6wmf-4rv5-p3rp.
  • Amaç: Çapraz istek sarkma durumu, üreticiler ve tüketiciler, erken başlatma, konfigürasyon azaltma.
  • Kaynak: RCE via stale global state

S4 — PHP 8.5 resmi düzeltme gönderimi

  • Kaynak: php/php-src.
  • Gönder: 31c0ea7d7ff1d1fccb6492e52dab544011628065.
  • Amaç: İki güvenlik açığını aynı anda düzeltmek için resmi gönderimi onaylayın ve genel değişiklik yönünü açıklayın.
  • Kaynak: Avoid state corruption via bailout

S5 — PHP 8.5 Resmi olarak restore edildi ve fark tamamlandı

  • Kaynak: aynı resmi sunumdan farklı.
  • Amaç: Ayırıcının, VM, HTTP globals, oturumun, serileştirmenin ve istek yaşam döngüsünün özel uygulamasını kontrol edin.
  • Kaynak: official complete diff

S6 — PHP 8.1 resmi acil durum destek raporu gönderimi

S7 — PHP 7.4 resmi acil durum destek şubesi

S8 — PHP 8.0 resmi acil durum destek şubesi

S9 — PHP 8.1 resmi acil durum destek şubesi

S10 — Ubuntu Güvenlik Bülteni USN-8948-1

  • Kaynak: Canonical / Ubuntu, 21 Ekim 2026.
  • Amaç: Destek raporunu yayınlayın ve paket sürümü örneklerini tamamlayın.
  • Kaynak: USN-8948-1: PHP vulnerabilities

S11 — PHP-FPM Configuration Kılavuzu

  • Kaynak: PHP resmi belge.
  • Amaç: php_admin_value, php_admin_flag, pm.max_requests vb. gibi yapılandırma anlambilimi.
  • Kaynak: PHP-FPM Configuration

S12 — PHP Core INI Yapılandırma Kılavuzu

  • Kaynak: PHP resmi belge.
  • Amaç: İstek gövdesinin, yüklemenin, belleğin ve otomatik POST okuma yapılandırmasının tanımı ve kapsamı.
  • Kaynak: Description of core php.ini directives

S13 — Nginx gövde boyutu sınırını talep ediyor

S14 — Nginx FastCGI istek arabelleği

S15 — Nginx Durum ve iade talimatları

S16 — Cloudflare PHP2Shell Koruma Talimatları