PHP2Shell vybuchl: CVSS 9.2, den před otevřením, a obě díry byly v kódu po dobu 10 let.
Za prvé, závěr je, že:PHP vytvořil neautorizovaný vzdálený kód pro CVSS 9.2, čísla CVE- 2026- 109618 a CVE- 2026- 109619, s názvem PHP2Shell. Dne 20. října, byl zveřejněn a 21. října na 1400 UTC záplaty byly zveřejněny, zatímco Amazon medové kanystry byly zaznamenány 17. října - čtyři dny před otevřením.
Co je horší, je ta druhá věc: tyto dvě díry jsou první, kdo se dostane do PHP 5.4, což znamená...Už je to přes deset let.Nevím. A v roce 2024, kdy audit hlavního vývojáře PHP objevil cestu OOM, se tým sešel, aby prodiskutoval, jak ji opravit.Nesouhlasili jsme a pak jsme to nespravili.Nevím. Důvodem je, že si nikdo nemyslel, že by se to opravdu dalo použít.
Tato fráze teď vypadá obzvlášť ironicky. Důvodem, proč to není možné, není to, že by díra byla bezvýznamná, ale že řetězec je příliš složitý na to, aby překročil fyzickou kapacitu lidských výzkumných pracovníků. Pak přišel Al a napsal to.
Za prvé, dejte z cesty slovo "mezinárodní nouzová reakce". Podívej.
Oblíbené slovo titulní strany je "globální alarm". Tentokrát to není přehnané, ale je to jasné skóre.
- Úřední PHP: Dne 20. října bylo vydáno předběžné oznámení, v němž se uvádí, že dne 21. října ve 14: 00 bude UTC vydáno v zabezpečené verzi, pokud budou údaje uniklé nebo vyhozené. V důsledku toho bylo číslo CVE pobodáno do Hacker News ve stejný den a vydání plánované na 22. října bylo nuceno o den dříve.
- CERT- EU: uvolnění poradenství 2026-018 a zahrnují oba CVEs.
- Cloudflame21. října CTO Dane Knecht přímo řekl, že se objeví "časný útok", a pravidla WAF byla vydána v plném rozsahu, včetně svobodných uživatelů. Ale on sám zdůraznil, že to bylo jen přerušení, a skutečné řešení bylo záplava.
- Společnost Amazon uvádí, že společnost LuxOpCo je společností LuxOpCo.: MadPot medové plechovky byly chyceny při pokusu 17. října, a další šarže byla zachycena 21. října, a užitečné zatížení a infrastruktura poukázala na řadu různých útočníků. php2shell "je již široce používán."
- Sledujte věžObě díry se znovu objevily, zatímco byly pozorovány pokusy je využít.
Takže "útok byl nalezen" není vyobrazení, ale fakt. Multilaterální nouzová reakce není rána - jde jen o to, že hlavními tématy reakce jsou výrobci, CDN a nouzové organizace, ne žádná vláda v zemi.
Dvě, dvě díry, dva naprosto odlišné způsoby umírání.
Mnoho lidí si myslí, že je to díra se dvěma čísly, ne. To jsou dvě oddělené cesty útoku, každý CVSS 9.2.
CVE-2026-109618: Bomba při vyčerpání paměti
Zpracování požadavku se přeruší, když selže distribuce paměti PHP. Problém je:V tomto bodě mohou být interní údaje o žádosti pouze napůl inicializovány a následná logika čištění by použila tento nezačleněný kus špatných údajů jako platná data.
Spouštěcí metoda je jednoduchá: vytvořit požadavek na více částí pro implodování paměti. Divné je,Velikost žádosti odpovídá vašemu stropu.Není to velikost post max, kterou jste nastavili, je to demodulace a spotřeba interního zpracování.
Nejhorší je mod php. Mod php pro Apache při požadavku spuštění selhaloPořád to bude uklízet., takže tento řetězec může být dokončen před každým použitelným spuštěním kódu. Váš PHP kód je tak čistý, že není žádná mezera, nedá se to zastavit.
PHP- FPM zabije pracovníka, když se mu nepodaří nastartovat, jen aby přerušil řetěz, takže oficiálně, mod php je nejvyšší riziko. Ale dávejte pozor -- to neznamená, že je FPM v bezpečí.Po úspěšném spuštěníStále existuje možnost vykořisťování.
CVE-2026-109619: Špinavý stav mezi požadavky
Tohle je horší. PHP bude proces práce znovu zpracovávat pro zpracování více žádostí. Poslední žádost o uvolnění paměti, ukazatel zůstává ve vnitřním stavu; další žádost přijde,Před normální inicializací si přečtěte prázdnou adresu.Nevím.
Smrtelné chyby (vyčerpání paměti, timeout výkonu) přerušení stavu čištění. A co je ještě horší, nějaká nesmrtící diagnóza během vypnutí by nahradila špatný stát.Znovu.Nevím.
Oficiálně potvrzené cesty zahrnují: RCEs s fatální chybou, když PHP 8.5 povoleno Fatal chyby backtracks (výchozí otevření), a relace životní cyklus RCEs na motoru php a FPM.session.upload_progress Ve výchozím nastavení můžete jednat jako raný spotřebitel ve stavu špíny.A není třeba volat.Nevím.
Ta díra je pořád připojená.Únik pamětiNevím. Co unikalo? je heslo, token, API klíč, certifikát pro další požadavky v paměti procesu. Wiz přímo ve srovnání s Heartled, což není příliš mnoho.
Timeline, víc než titul.
| Čas | Co se stalo? |
|---|---|
| Rok 2024 | Audit hlavního developera PHP zjistil, že OOM, že chyba, tým neměl žádný konsensus o právu, odložil to. |
| 2026-08 | Ryan Austin z Califu identifikuje mezery s OpenAI GPT-5.6 Sol; Wiz Independent Discovery |
| 2026-10-17 | Amazon MadPot, med může zaznamenat pokus, čtyři dny před otevřením. |
| 2026-10-20 | CVE číslo uniklo v Hacker News a sociálních médií, PHP |
| 2026-10-21 | 14: 00 Publikace UTC 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
17. října musí být vybráno.Veřejný den byl 20. den, ale k útoku došlo 17. den.Společnost Amazon tvrdí, že společnost LuxOpCo je v souladu se zásadou tržně jednajícího hospodářského subjektu.
Pokud jde o to, jak útočníci získali informace předem, Amazon řekl "není jasné". Nemůžu do toho jít, ale musíš přijmout realitu.Den odhalení nebyl dnem útoku, ale dnem, kdy jste to konečně věděl.
Čtyři, tentokrát je to opravdu Al.
Wiz blog obsahuje větu, kterou jsem četl dvakrát: "Tyto základní nedostatky existují po desetiletí, ale prokázat, že mohou být použity, potřebují mimořádně složitý řetězec kroků, na okraji skutečných schopností lidských výzkumných pracovníků.Model Frontline AI významně snižuje tento práh.Nevím.
Specifické: Ryan Austin, výzkumník v Calif, byl nalezen v projektu OpenAI "Patch the Planet" s GPT-5.6 Sol. Wiz našel stejný problém nezávisle. Abychom ho mohli využít, potřebujeme řetězec chyb a zaměřit se na každý cíl.Rozvržení paměti opakovaně kalibrovanéWiz říká, že model front-line jim umožňuje vyvinout použitelné aplikace pro různé aplikace během hodin.
To neznamená, že AI zase vyhrál.Jde o to, že příkop "komplexního" selhává.
Mnoho starých mezer nebylo v posledních dvou desetiletích poraženo, ne proto, že by to nebylo vážné, ale proto, že práh využití je příliš vysoký - několik týdnů investic špičkových výzkumných pracovníků a trochu štěstí. Takže je dáte do sloupce "teoreticky riskantní". Teď je ten plot pryč.
Ty desetileté díry, které leží ve vašem systému a jsou hodnoceny jako "obtížné a nezpracované", musí být přehodnoceny.
Pětko, na kterou bys měla jít?
| Oddíl | Dotčená verze | Likvidace |
|---|---|---|
| PHP 8.5 | < 8.5.12 | Zvyšte na 8.5.12. |
| PHP 8.4 | < 8.4.27 | Zvýšit na 8.4.27. |
| PHP 8.3 | < 8.3.36 | Zvýšit na 8.3.36. |
| PHP 8.2 | < 8.2.35 | Zvyšte na 8.2.35. |
| PHP 7, 4 / 8, 0 / 8, 1 | Všechny | Oficiálně nezveřejněno, pouze úroveň zdroje |
| PHP 5.4 - 7.3 | Všechny | EEL, vláda to nespraví. Obchod |
Několik real-life upomínek:
- Linux Release a LTS VendorDostal jsem záplatu předem.Zkontrolujte, zda váš výrobce je poradenství s distribučním balíčkem. Nespěchej se zdrojovým kódem.
- Použití
rpms.remirepo.netPoznámka: PHP oficiálně uvedl zdroj 21. října.Žádné aktualizaceTakže můžete přejít na distribuční balíček nebo to udělat ze zdrojového kódu. - Binární Windows PHP 8.5 je také na oficiální stránce ke stažení.
- Nemysli si, že je v pořádku běžet v kontejneru -- PHP verze kontejnerového zrcadla musí být zkontrolována.
Šestko, jestli nemůžeš dostat náplast, udělej nejdřív tyhle čtyři.
První stát:Nic z toho tě neudělá bezpečným.Oficiální PHP fráze je "snížit expozici specifické útočné cesty, ale neučinit zařízení bezpečnější". Jejich hodnotou je dát vám čas na záplaty.
Nastavit limit paměti na -1
Účel: Vyjmout předvídatelný uzávěr paměti PHP selhal, tj. CVE- 2026-109618 potvrdil spouštěcí stav, na kterém záleží.
Jde o to,Jak?: nastavit v místech, kde se aplikace nemění, jako je FPM pool php_admin_value nebo konfigurace Apache. Musíte zkontrolovat, že nejsou žádné popy, adresáře, nastavení aplikace přidat limit zpět.Pak restartujte všechny dělníky.
Cena je jasná: jste mimo vlastní paměťový plot PHP, a selhání spodní distribuce může být stále na této nebezpečné cestě. Takže to musí být kontejner nebo cgroup, aby se omezilo krytí -- ale je to jen strategie "zabít postižené lidi".Nikdy nepoužívejte RLIMIT AS nebo RLIMIT ÚDAJETyto dvě jsou přesně ten typ selhání distribuce, který vytváří mezery.
Snížit velikost post max
Stránky bez souboru 8M pro soubor 32M a zaručeno upload_max_filesize Méně než to. Současně jsou do webového serveru nebo proxy vrstvy přidány limity - objem dekódovaných požadavků, počet polí, počet vícedílných částí, počet hlav, hloubka hnízda.Tato omezení se musí týkat žádostí, které nejsou platnéNebo to obejdeme.
3. Vypnutí session.upload proces
session.upload_progress.enabled = 0
Je zapsán v konfiguraci php.ini, FPM nebo serveru.Musí to být účinné před žádostí.Nevím. Použití ini_set() Nebo FPM. .user.ini Bylo příliš pozdě, bylo to špinavé. Změna je také restartovat všechny pracovníky.
PHP 8.5 Ještě jeden singl
fatal_error_backtraces = 0
Tento blok pouze potvrdil fatální chyby backtracks, bez jiných variant. Vyžadovat také nastavení úrovně administrátora + restartovat pracovníka.
Kromě toho oficiální zmínka, že mnozí budou ignorovat:Opravit fatální chyby, které útočníci mohou spustit a provést čas ven., včetně zálohování, nahrávání, importování zpracování, čištění selhání. A...Smazat zastaralé nebo nezákonné konfigurace uložené na základě žádosti- Vyplivli diagnostické informace předtím, než byly inicializovány a nakrmili únik.
Tato poslední věta je velmi snadno nepochopena:Nefunguje skrýt diagnózu s hlášením chyb, zobrazením chyb nebo @.To se nestane.
VII. Skutečné pojmy tohoto
Nechci skončit psaním "Zavři náplast." Samozřejmě, že je to náplast. Je to dnes. Ale některé soudy se musí změnit.
- Výraz "obtížné použití" už není stejný jako "předepsáno".PHP přístupový řetězec této díry je natolik složitý, že potřebuje pomoc AI, která již pomohla. Staré díry ve vašem seznamu aktiv, které označují "teoretické riziko", by měly být přehodnoceny.
- Jazyk běží v jednom bodě.WordPress, Drupal, Joomla, Magento, MediaWiki všechny běží na PHP, vaše aplikace kód audit je čistý, a PHP jádro je v průšvihu. Kompenzační rytmus infrastrukturních vrstev s oddělenými aplikačními vrstvami.
- "Kód aplikace je porušen bez spuštění." WAF může jen odložit.Sám Cloudflail říkal, že je to mezera. Dát WAF jako řešení rovná se dát život vládnout pokrytí.
- Existuje mnoho starých stránek v zemi pomocí PHP.Tyto stanice, které běží na PHP 5.6 / 7.0, které byly před dávnou dobou neudržovány a pověšeny na cloud mainframe, jsou v této expozici 1,3 až 1,9 milionu. Neobdrží žádné oznámení.
Data kalibrace jsou zaznamenány: W3Techs říká PHP účet 69,3% jazyků známých pro službu, a Wiz 70%; expozice hostitelé, bezpečnostní výzkumník Silas Cutler odhad přes 1,3 milionu, a Henk Poley 's Shodan vyhledávání je více než 1,9 milionu. Tato čísla jsou různých kalibrů a nepoužívají je jako přesné hodnoty, ale měřítko je stejné -Celkově miliony.
Ještě jeden detail stojí za zapamatování: když uniklo číslo CVE, body CVSS, které vyšly na 10.0, PHP bylo oficiálně potvrzeno.To skóre bylo špatné.Je to vlastně 9,2. O tomto detailu by nikdo nic nevěděl, ale vždy bude v oběhu. Když vidíte 10.0, víte, jaká je to vlna.
10letá díra, dva měsíce asistovaného výzkumu, čtyři dny předčasného využití, jednodenní okno. Tento časový interval je normální ze všech základních software, který následuje.
Zkontroluj tu verzi.php -vNebo se podívej na svoje zrcátka v tagu. Nečekej na zítřek.