← Listeye dön

PHP2Shell patladı: CVSS 9.2, açılıştan önce gün ve iki delik 10 yıl boyunca koddaydı.

itadol5j

Birincisi, sonuç şu:PHP CVSS 9.2 için izinsiz bir uzaktan kod üretti, sayılar CVE-2026-109618 ve CVE-2026-109619, PHP2Shell ile. 20 Ekim'de halka açık ve 21 Ekim'de 1400 UTC yamaları serbest bırakıldı, Amazon'un bal konserleri 17 Ekim'de kaydedildi - açılıştan dört gün önce.

Bunun diğer şey olduğundan daha kötü olan şey: bu iki delik PHP 5.4'e girmek için ilkdir, yani...On yıldan fazla bir süredir koddaydılar.Bilmiyorum. Ve 2024 yılında, PHP çekirdeği geliştirici denetimi OOM'nin yolunu keşfettiğinde, ekip bunu nasıl düzelteceğini tartışmak için bir araya geldi.Kabul etmedik ve sonra bunu düzeltmedik.Bilmiyorum. Sebep, hiç kimsenin gerçekten kullanabileceğini düşünmemesidir.

Bu cümle şimdi özellikle ironik görünüyor. Bunu yapabilmenin nedeni de delik önemsiz değildir, ancak zincir insan araştırmacıların fiziksel kapasitelerinin ötesine geçmek için çok karmaşıktır. Sonra AI geldi ve yazdı.

PHP2Shell Hole Cover: Influence Scope and Exposure Host

İlk olarak, "çokulusal acil yanıt" kelimesini yoldan çıkarın. Bak.

Partinin en sevdiği kelime "küresel alarm" dir. Bu sefer abartmıyor, ama açık bir puan.

  • PHP Resmi PHP: 20 Ekim'de bir önceden bildirim yayınlandı, 21 Ekim'de 14:00 UTC'de ayrıntıların sızdırıldığı veya alanlanmış olup güvenli bir versiyonda serbest bırakılacağını belirtti. Sonuç olarak, CVE numarası aynı gün Hacker News'a bıçaklandı ve 22 Ekim için planlanan serbestlik bir güne zorlandı.
  • CERT-EU: sürüm danışmanlığı 2026-018 ve hem CVE'leri içerir.
  • Bulut21 Ekim'de, CTO Dane Knecht doğrudan "ilk saldırı ortaya çıktı" dedi ve WAF kuralları ücretsiz kullanıcılar da dahil olmak üzere tam olarak serbest bırakıldı. Ama kendini sadece durgap olduğunu ve gerçek çözümün bir yama olduğunu vurguladı.
  • Amazon tehdit bilgileri: MadPot bal 17 Ekim'de denemeye yakalandı ve 21 Ekim'de başka bir toplu yakalandı ve altyapı farklı saldırganlara işaret etti. phpshell2 " zaten yaygın olarak kullanılır".
  • Watch Towr: Her iki delik yeniden ortaya çıkıyor, her ikisini de kullanmaya çalışırken.

Bu yüzden " saldırısı bulundu" bir uygulama değil, bir gerçek. Ve Multinational Emergency Response bir darbe değil - sadece yanıtın ana konuları üreticileri, CDN'ler ve acil örgütler, ülkede hiçbir hükümet değil.

İki, iki delik, ölmenin iki tamamen farklı yolu.

Birçok insan iki sayı ile bir delik olduğunu düşünüyor, hayır. Bunlar saldırının iki ayrı yolu, her CVSS 9.2.

İki delik için teknik yollar karşılaştırması

CVE-2026-109618: bellek tükendiğinde bomba

Bir istek işleme PHP bellek dağılımı başarısız olduğunda kesintiye uğrar. Sorun şu:Bu noktada, iç istek verileri sadece yarı temelleştirilmiş olabilir ve sonraki temiz-up mantığı bu doğru veriler olarak kötü bir parça kullanırdı.

Uyarı yöntemi basittir: hafızayı tutuklamak için çok sayıda istek inşa etmek. Garip olan şey,İstekin büyüklüğü tavanınızı eşleştiriyor gibi görünüyor.Oluşturduğunuz maksimum boyut değil, şifre ve iç işlemenin tüketimi.

En kötüsü mod php. Başlangıç talep ettiğinde Apache için Mod php başarısız olduHala temizlenecek.Bu nedenle bu zincir herhangi bir geçerli kod koşmadan önce tamamlanabilir. PHP kodunuz çok temiz, döngü yok, durdurmuyor.

PHP-FPM, başlamadığı zaman işçiyi öldürecek, sadece zinciri kesmek için, bu yüzden resmi olarak mod php en yüksek risk. Ancak dikkat edin - bu FPM'nin güvenli olduğu anlamına gelmiyor.Başarılı bir başlangıç yaptıktan sonraHala sömürü olasılığı var.

CVE-2026-109619: İstekler Arasında Kirli Durum

Bu bir daha kötü. PHP, birden fazla istek işlemek için işçi sürecini yeniden sağlayacaktır. Son istek hafızayı serbest bırakmak için, nokta içsel durumda kalır; bir sonraki istek içeri girer,Normal başlangıç yapmadan önce boş adresi okuyun.Bilmiyorum.

Fatal hataları ( bellek, performans süresi hariç) devlet temizleniyor. Daha da kötüsü, kapatma sırasında bazı kesin olmayan tanı yanlış durumu değiştirirdi.Redo it.Bilmiyorum.

Resmi olarak doğrulanmış yol yolları şunları içerir: PHP 8.5 etkinleştirildiğinde RCE'ler Fatal hatası geri çekiyor (default açılış), ve seans yaşam döngüsü RCEs motor php ve FPM üzerinde.session.upload_progress Varsayılan olarak, bir dosya durumunda erken bir tüketici olarak hareket edebilirsiniz.Ve arama (s) için gerek yokBilmiyorum.

Bu delik hala bağlı.Memory sızıntıBilmiyorum. Ne sızdırıldı? Şifre, token, API anahtarı, süreç hafızasındaki diğer talepler için sertifika. Wiz doğrudan Heartbled ile karşılaştırıldı, bu çok fazla değil.

Timeline, daha fazla başlık görünümü.

PHP2Shell Event Timeline: 2024'ten 10-17 alana bir yana
Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman Zaman ZamanNe oldu?
Yıl 2024PHP çekirdeği geliştirici denetimi OOM'u buldu, bu boğa, takım yasa üzerinde bir fikir birliği yoktu, bunu tutun.
2026-08Ryan Austin of Calif, OpenAI GPT-5.6 Sol ile döngüleri tanımlar; Wiz Bağımsız Discovery
2026-10-17Amazon MadPot, bal, açılıştan dört gün önce bir girişim kaydedebilir.
2026-10-20CVE numarası Hacker News ve Social Media'da sızdırıldı, PHP
2026-10-2114:00 UTC Publication 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35

17 Ekim'de bekar olmalıdır.Halk günü 20'ydi, ancak saldırı 17'de gerçekleşti.Amazon teklifi basittir: başlangıç noktası açıklama tarihinde olmamalıdır, ancak en az 17 Ekim'de ilerlemek için.

Saldırıcıların önceden bilgi sahibi olduğu gibi, Amazon “ açık değil” dedi. Buna giremem ama bir gerçekliği kabul etmeniz gerekiyor.Açıklama günü hiçbir zaman saldırının günü değildi, ancak sonunda bildiğiniz gün.

Dört, bu sefer gerçekten AI.

Wiz'in blogu iki kez okuduğum bir cümle içeriyor: “Bu temel kusurları on yıllardır var, ancak kullanabileceklerini kanıtlamak için olağanüstü karmaşık bir adım zincirine ihtiyaç duyuyorlar, insan araştırmacıların marjlarında.Frontline AI modeli bu eşi önemli ölçüde azaltır.Bilmiyorum.

Özel: Ryan Austin, Calif'deki bir araştırmacı, GPT-5.6 Sol ile OpenAI projesinde bulundu. Wiz aynı sorunu bağımsız olarak buldu. Bunu kullanmak için, her hedefin bir hata zincirine ihtiyacımız var.Bellek düzeni defalarca kalibre edildiWiz, ön satırı modelinin, saat içinde farklı uygulamalar için kullanılabilir uygulamaları geliştirmelerini sağlar.

“AI tekrar kazandı” anlamına gelmez.Mesele şu ki, "komplex" moat başarısız.

Birçok eski döngü de son iki yılda dövülmüyor, çünkü ciddi değiller, ancak kullanım eşiği çok yüksek – üst araştırmacılar ve biraz şans. Bu yüzden onları "teoretik olarak riskli" sütununa koyarsınız. Şimdi bu çit gitti.

Sisteminizde yalan söyleyen on yaşındaki delikler ve "fikult ve işlenmemiş" olarak değerlendirilir.

Beş, hangi birine gitmelisin?

PHP'nin karşılaştırma versiyonları
ŞubeEtkilenen sürümDisposal
PHP 8.5< 8.5.128.5.12'ye gidin.
PHP 8.4< 8.4.278.4.27'ye gidin.
PHP 8.3< 8.3.368.3.36'ya yükseltin.
PHP 8.2< 8.2.358.2.35'e kadar.
PHP 7.4 / 8.0 / 8.1Bütün Bütün HepsiResmi olarak yayınlanmadı, kaynak seviyesi sadece
PHP 5.4 – 7.3Bütün Bütün HepsiEOL, hükümet bunu düzeltmez. Business Business Business

Birkaç gerçek hayat hatırlatması:

  • Linux Bülteni ve LTS SatışorBir yama önceden.Üreticinizin bir dağıtım paketi ile danışmanlık kontrol edin. Kaynak kodunu acele etmeyin.
  • Use Use Use Use Use Use rpms.remirepo.net Not: PHP, 21 Ekim'de kaynağı resmen belirtti.Güncelleme yokBöylece bir dağıtım paketine geçebilir veya kaynak kodundan yapabilirsiniz.
  • PHP 8.5 Windows ikilisi de resmi indirme sayfasında.
  • Konteynerte koşmanın iyi olduğunu düşünmeyin - konteyner aynasının PHP versiyonu kontrol edilmelidir.

Altı, bir yama alamıyorsanız, bu dört ilk yapın.

İlk devlet:Bunların hiçbiri sizi güvende yapmaz.Resmi PHP cümlesi "özel saldırı yollarına maruz kalıyor, ancak yüklemeleri daha güvenli yapmaz." Değerleri size yama almak için zaman vermek.

Dört dava önlemleri ve sınırlamaları

Set memory limit to -1

Amaç: Tahmin edilebilir PHP bellek kapağı başarısız olmak için, i.e. CVE-2026-109618 buna bağlı olan tetikleyici durumu doğruladı.

nokta,Nasıl?: Uygulamanın tamamlanmadığı yerlerde ayarlanmış olmak, FPM Pool gibi php_admin_value veya Apache Konsülasyonu. Limiti geri eklemek için pops, yönetmenler, uygulama ayarları olmadığını kontrol etmelisiniz.Sonra her işçiyi yeniden başlatın.

Fiyat açıktır: PHP'nin kendi hafıza çitinden uzaktasınız ve alt dağıtım başarısızlığı hala bu tehlikeli yolda olabilir. Bu yüzden kapağı sınırlandırmak için bir konteyner ya da bir cgrup olmak zorunda - ama sadece insanları etkileyecek bir strateji."Asla RLIMIT AS veya RLIMIT DATA kullanmaBu ikisi tam olarak döngü deliği yaratan dağıtım başarısızlıklarıdır.

İşlem max boyutunu azaltır

Dosya olmadan Siteler 32M'yi dosyalamak ve garantili upload_max_filesize Bundan daha az. Aynı zamanda, sınırlar web sunucusu veya proxy katmanına eklenir - istek hacmi kodlanmış, birçok alan, çok sayıda parça, baş sayısı, nestlerin derinliği.Bu kısıtlamalar, geçerli olmayan talepleri kapsamalıdır.Ya da etrafta gideceğiz.

3. Oturumu kapat.. süreci

session.upload_progress.enabled = 0

php.ini, FPM aracı veya sunucu konfigürasyonunda yazılır.İstekten önce etkili olması gerekir.Bilmiyorum. Use Use Use Use Use Use ini_set() Veya FPM. .user.ini Çok geçdi - kirliydi. Değişim aynı zamanda tüm işkeri yeniden başlatmaktır.

PHP 8.5 Bir tane daha single

fatal_error_backtraces = 0

Bu blok sadece ölümcül hataları geri doğruladı, başka hiçbir şekilde. Ayrıca yönetici seviye ayarları + yeniden işker gerektirir.

Ayrıca, resmi birçok kişinin göz ardı edeceğinden söz eder:Saldırganların zamanlarını tetikleyebildiği ve uygulayabileceği ölümcül hataları düzeltin.Geri yükleme, yükleme, ithalat işleme, temizlik başarısızlıkları da dahil. Ve...Bir istek üzerine dayatılan eski veya yasadışı konfigürasyonlar- Başlangıçtan önce teşhis bilgilerini casuslar ve sızıntıları besler.

Bu son cümle en kolay yanlış anlaşılır:Tanıyı hata raporlaması, görüntü hataları veya @ ile saklamaya çalışmaz.Bu gerçekleşmez.

VII. Gerçekten de bu

"Köpü kapat" yazarak bitirmek istemiyorum. Tabii ki bir yama. Bugün. Ancak bazı kararların değişmesi gerekiyor.

  1. “İhtiyacı kullanmak” terimi artık “önemli” olarak aynı değildir.PHP bu deliğin erişim zinciri, zaten yardımcı olan AI yardımına ihtiyaç duyan yeterince karmaşıktır. Varlık listenizdeki eski delikler "stor riski" yeniden uygulanmalıdır.
  2. Dil tek bir noktada çalışır.WordPress, Drupal Joomla, Magento, MediaWiki tüm PHP üzerinde çalışır, uygulama kod denetiminiz temizdir ve PHP çekirdeği sorun içindedir. altyapı katmanlarının adli ritmi, uygulama tabakaları ayrı ayrı.
  3. "Uygulama kodu koşmadan kırıldı." WAF sadece gecikebilir.Cloudflare kendini durdurduğunu söyledi. WAF'yi bir çözüm olarak koymak, hayat vermek için kural kapsamı verir.
  4. PHP kullanarak ülkede birçok eski site var.PHP 5.6/7.0 üzerinde çalışan bu istasyonlar uzun zaman önce keşfedilmemiş ve bulut ana çerçevede asılmıştı, bu 1.3 ila 1.9 milyon maruz kalmaktadır. Herhangi bir bildirim almayacaktır.

Data calibrations kaydedildi: W3Techs PHP'nin hizmete bilinen dillerin yüzde 69.3'ünü ve yüzde 70'i; maruz kalma ev sahipliği, güvenlik araştırmacısı Silas Cutler 1.3 milyondan fazla tahmin ediyor ve Henk Poley ' s Shodan arama 1.9 milyondan fazla. Bu sayılar farklı kalibrelerdir ve onları kesin değerler olarak kullanmaz, ancak ölçek aynı - aynıdır -Milyonlarca, küresel olarak.

Bir daha detay hatırlamaya değer: CVE numarası sızdırıldığında, ortaya çıkan CVSS puanları 10.0, PHP resmen doğrulandı.Bu puan yanlıştı.Aslında 9.2. Kimse bu detay hakkında hiçbir şey bilmiyordu, ancak her zaman dolaşımda olacak. Görme 10.0, ne dalga olduğunu biliyorsun.

10 yıllık bir delik, iki ay AI-assisted araştırma, dört günlük bir yama penceresi. Bu zaman ölçeği, takip eden tüm temel yazılımların normalidir.

Şimdi sürümü kontrol edin.php -vYa da etiketdeki konteyner aynalarına bakın. Yarın beklemeyin.