PHP2Shell sprengte opp: CVSS 9,2, dagen før åpningen, og de to hullene var i kode i 10 år.
For det første er konklusjonen at:PHP produserte en uautorisert fjernkode for CVSS 9,2, nummer CVE-2026-109618 og CVE-2026-109619, med et kallenavn PHP2Shell. Den 20. oktober ble den offentliggjort og den 21. oktober på 1400 UTC-patcher ble frigitt, mens Amazons honning canisters ble registrert 17. oktober — fire dager før åpningen.
Hva er verre enn det er det andre: disse to hullene er de første som kommer til PHP 5,4, som betyr...De har vært i kode i over ti år.Jeg vet ikke. Og i 2024, da PHP kjerneutviklerrevisjonen oppdaget OOMs vei, møttes teamet for å diskutere hvordan man fikser den.Vi var ikke enige og så fikset vi det ikke.Jeg vet ikke. Grunnen er at ingen trodde det kunne brukes.
Denne frasen ser nå spesielt ironisk ut. Årsaken til ikke å være i stand til å gjøre det er ikke at hullet er ubetydelig, men at kjeden er for kompleks til å gå utover den fysiske kapasiteten til menneskelige forskere. Så kom AI og skrev det ut.
Først, få ordet - multinasjonal nødrespons - ut av veien. Hør her.
Tittelfestens favorittord er " global alarm." Det er ikke en overdrivelse denne gangen, men det er en klar score.
- PHP offisiell: En forhåndsmelding ble utstedt 20. oktober, og det står at den 21. oktober kl. 14:00 UTC vil bli utgitt i en sikker versjon hvis detaljene ble lekket eller felt. Som et resultat ble CVE-nummeret stikk til Hacker News samme dag, og utgivelsen planlagt til 22. oktober ble tvunget til å en dag tidligere.
- CERT-EU: utgivelsesrådgivning 2026-018 og inkluderer begge CVE.
- SkyflareDen 21. oktober sa CTO Dane Knecht direkte " det tidlige angrepet har blitt sett å komme", og WAF-reglene ble frigitt i sin helhet, inkludert gratis brukere. Men han understreket seg selv at det bare var stoppgap, og den virkelige løsningen var patching.
- Amazon trusselinformasjon: MadPot honning bokser ble fanget prøver den 17. oktober, og et annet parti ble fanget den 21. oktober, og nyttelast og infrastruktur peker på en rekke forskjellige angripere. php2shell " er allerede mye brukt".
- Se TowrBegge hullene er gjenopptatt, mens forsøk på å utnytte begge er observert.
Så angrepet har blitt funnet - er ikke en gjengivelse, men et faktum. Og den multinasjonale nødresponsen er ikke et slag - det er bare at de viktigste emnene i responsen er produsenter, CDNs og nødorganisasjoner, ikke noen regjering i landet.
To, to hull, to helt forskjellige måter å dø på.
Mange tror det er et hull med to tall. Disse er to separate angrepsruter, hver CVSS 9.2.
CVE-2026-109618: Bomb når hukommelsen er uttømt
Behandlingen av en forespørsel avbrytes når PHP-minnefordelingen mislykkes. Problemet er:På dette punkt kan de interne forespørselsdata ha blitt bare halvinitialisert, og den etterfølgende oppryddingslogikk ville ha brukt dette uinkorporerte stykke av dårlige data som gyldige data.
Utløsermetoden er enkel: Konstruer en flerdelsforespørsel om å implodere minnet. Det rare er,Størrelsen på forespørselen passer til taket.Det er ikke den maksimale størrelsen du har satt opp, det er avkodelsen og forbruket av intern behandling.
Det verste er mod php. Mod php for Apache ved anmodning om oppstart mislyktesDet kommer til å rydde opp., så denne kjede kan fullføres før eventuelle gjeldende kode kjører. PHP-koden din er så ren, det er ikke noe sløyfehull.
PHP-FPM vil drepe arbeidstakeren når den ikke starter, bare for å kutte kjeden, så offisielt, mod php er den høyeste risikoen. Men vær oppmerksom -- det betyr ikke at FPM er trygt.Etter vellykket oppstartDet er fortsatt mulighet for utnyttelse.
CVE-2026-109619: Skitten tilstand mellom forespørsler
Denne er verre. PHP vil gjenbruke arbeiderprosessen for å behandle flere forespørsler. Den siste forespørselen om å frigjøre minnet, pekeren forblir i intern tilstand; neste forespørsel kommer i,Les den tomme adressen før normal initialisering.Jeg vet ikke.
Dødlige feil (ødeleggelse av minne, tidsavbrudd) avbryte tilstandsopprydding. Enda verre, ville noen ikke-letal diagnose under nedleggelsen ha erstattet feil tilstand.Gjør det om.Jeg vet ikke.
Offisielt bekreftede veier inkluderer: RCEs med fatale feil når PHP 8.5 aktiverte dødelige feil backtraces (standard åpning), og sesjon livssyklus RCEs på motorphp og FPM.session.upload_progress Som standard kan du fungere som en tidlig forbrukere i en tilstand av skitten.Det er ikke nødvendig å ringe(e)Jeg vet ikke.
Dette hullet er fortsatt festet.Memory lekkasjeJeg vet ikke. Hva lekket? er passordet, token, API-nøkkel, sertifikat for andre forespørsler i prosessminnet. Wiz sammenlignet med Heartbled, noe som ikke er for mye.
Tidslinje, mer enn tittelen.
| Tid | Hva skjedde? |
|---|---|
| År 2024 | PHP kjerneutviklerrevisjon fant OOM, den feilen, teamet hadde ingen konsensus om loven, sette det på vent. |
| 2026-08 | Ryan Austin av Calif identifiserer loophull med OpenAI GPT-5.6 Sol; Wiz Uavhengig Discovery |
| 2026-10-17 | Amazon MadPot, honningen kan registrere et forsøk, fire dager før åpningen. |
| 2026-10-20 | CVE nummer lekket i Hacker Nyheter og sosiale medier, PHP |
| 2026-10-21 | 14:00 UTC Publikasjon 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
Den 17. oktober må man være singel.Den offentlige dagen var den 20., men angrepet fant sted den 17.Amazonas-forslaget er enkelt: Utgangspunktet bør ikke være på utleveringsdatoen, men frem til minst 17. oktober.
Når det gjelder hvordan angriperne fikk informasjonen på forhånd, sa Amazon - ikke klart - Jeg kan ikke gå inn i dette, men du må akseptere en virkelighet.Det var aldri dagen for angrepet, men den dagen du endelig visste.
Fire, denne gangen er det virkelig AI.
Wizs blogg inneholder en setning som jeg har lest to ganger: «Disse underliggende feilene har eksistert i tiår, men for å bevise at de kan brukes, trenger de en usedvanlig kompleks kjede av skritt, på marginene av de faktiske evnene til menneskelige forskere.Frontline AI-modellen senker denne terskelen betydelig.Jeg vet ikke.
Ryan Austin, en forsker i Calif, ble funnet i OpenAI-prosjektet " Patch the Planet" med GPT-5.6 Sol. Wiz fant det samme problemet uavhengig. For å gjøre bruk av det, trenger vi en kjede av feil og mål hvert mål.Minnelayout gjentatte ganger kalibrertWiz sier frontmodellen tillater dem å utvikle brukbare applikasjoner for ulike programmer innen timer.
Men det betyr ikke " å vinne igjen".Poenget er at moten til "kompleks" svikter.
Mange gamle loopholes har ikke blitt slått i løpet av de siste to tiårene, ikke fordi de ikke er alvorlige, men fordi terskelen for utnyttelse er for høy - noen ukers investering av toppforskere og litt lykke. Så du legger dem i den - teoretisk risikabele - kolonnen. Nå er dette gjerdet borte.
De ti år gamle hullene som ligger i systemet ditt og blir vurdert som "fifficult og uuttalt" må revurderes.
Fem, hvilken bør du gå til?
| Branch | Påvirket versjon | Disposition |
|---|---|---|
| PHP 8.5 | < 8.5.12 | Løft til 8.5.12. |
| PHP 8.4 | < 8.4.27 | Opp til 8.4.27. |
| PHP 8.3 | < 8.3.36 | Opp til 8.3.36. |
| PHP 8.2 | < 8.2.35 | Opp til 8.2.35. |
| PHP 7.4 / 8.0 / 8.1 | Alle | Offisielt ikke publisert, kildenivå kun |
| PHP 5.4 – 7,3 | Alle | EOL, regjeringen fikser det ikke. Forretning |
Flere påminnelser i virkeligheten:
- Linux Release og LTS-leverandørJeg har en lapp på forhånd.Sjekk produsentens rådgivning med en distribusjonspakke. Ikke rush kildekoden.
- Bruk
rpms.remirepo.netPHP har offisielt angitt kilden den 21. oktober.Ingen oppdateringSå du kan bytte til en distribusjonspakke eller gjøre det fra kildekoden. - Windows binær av PHP 8.5 er også på den offisielle nedlastingssiden.
- Ikke tro det er ok å kjøre i beholderen - PHP-versjonen av beholderspeilet må kontrolleres.
Seks, hvis du ikke kan få en lapp, gjør disse fire først.
Første stat:Ingen av dem nedenfor vil gjøre deg trygg.Den offisielle PHP-frasen er - redusere eksponering for spesifikke angrepsstier, men ikke gjør installasjoner tryggere - Deres verdi er å gi deg tid til å få flekker.
Sett minnegrense til -1
Formål: For å ta ut den forutsigbare PHP-minnehette mislyktes, dvs. CVE-2026-109618 har bekreftet den utløsende tilstand som den er avhengig av.
Poenget er,Hvordan?: å bli satt på steder hvor søknaden er uendret, som FPM Pool php_admin_value eller Apache-konfigurasjon. Du må sjekke at det ikke er pops, mapper, programinnstillinger for å legge til grensen tilbake.Start på nytt hver arbeider.
Prisen er klar: Du er fra PHPs eget minnegjerde, og bunnfordelingsfeil kan fortsatt være på den farlige veien. Så det må være en beholder eller en cgroup for å begrense dekket - men det er bare en strategi for å " drepe berørte mennesker."Bruk aldri RLIMIT AS eller RLIMIT DATADisse to er akkurat den type distribusjonsfeil som skaper loopholes.
Reduser etter maks størrelse
Steder uten fil 8M til fil 32M og garantert upload_max_filesize Mindre enn det. Samtidig legges grenser til webserveren eller proxylaget - volumet av forespørsler dekodet, antall felt, antall flerdelsdeler, antall hoder, dybden av reir.Disse restriksjonene må dekke forespørsler som ikke er gyldigeEllers går vi rundt det.
3. Slår av sesjon.upload prosessen
session.upload_progress.enabled = 0
Den er skrevet i php.ini, FPM-verktøy eller serverkonfigurasjon.Det må være effektivt før anmodningen.Jeg vet ikke. Bruk ini_set() Eller FPM. .user.ini Det var for sent -- det var skittent. Endring er også å starte om alle arbeidere.
PHP 8.5 En singel til
fatal_error_backtraces = 0
Denne blokken bekreftet bare dødelig feil backtracks, uten andre varianter. Du trenger også administratornivåinnstillinger + omstart arbeidstaker.
I tillegg nevner de offisielle at mange vil ignorere:Løs de dødelige feilene som angriperne kan utløse og utføre tiden ut., inkludert sikkerhetskopiering, opplasting, importbehandling, rengjøringsfeil. Og...Slett utdaterte eller ulovlige konfigurasjoner som pålegges på forespørselsbasis- De spytter ut diagnostisk informasjon før den initieres og mater lekkasjen.
Denne siste setningen er lett å misforstå:Det virker ikke å skjule diagnosen med feilrapportering, skjermfeil eller @.Det skjer ikke.
VII. REAL LESSONER AV DETTE
Jeg vil ikke avslutte ved å skrive " Lukk lappen." Selvfølgelig er det en lapp. Det er i dag. Men noen vurderinger må endre seg.
- Begrepet «difficult» å bruke is er ikke lenger det samme som "beskrivet".PHP dette hullets tilgang kjede er komplisert nok til å trenge hjelp av AI, som allerede har hjulpet. De gamle hullene i aktivalisten din som markerer "teoririsiko" bør revurderes.
- Språket kjører på et enkelt punkt.WordPress, Drupal, Joomla, Magento, MediaWiki kjører alle på PHP, din programkode revisjon er ren, og PHP kjernen er i problemer. Kompenserende rytme i infrastrukturlag, med påføring lag separert.
- Søknadskoden er brutt uten å kjøre." WAF kan bare forsinke.Skyflare selv sa at det var stopgap. Å sette WAF som en løsning er lik å gi liv til å styre dekning.
- Det er mange gamle steder i landet som bruker PHP.De stasjonene som kjører på PHP 5,6/7.0, som for lenge siden var uholdt og hengt på en sky hovedramme, er i denne eksponeringen på 1,3 til 1,9 millioner. De vil ikke motta noe varsel.
Datakalibreringer er registrert: W3Techs sier PHPs står for 69,3 prosent av språkene som er kjent for tjenesten, og Wiz 70 prosent; eksponeringsverter, sikkerhetsforsker Silas Cutler estimerer over 1,3 millioner, og Henk Poley ' s Shodan søk er over 1,9 millioner. Disse tallene er av forskjellige kaliber og ikke bruk dem som nøyaktige verdier, men skalaen er den samme -Millioner globalt.
En annen detalj er verdt å huske: når CVE-nummeret ble lekket ut, CVSS-poeng som kom ut var 10,0, PHP ble offisielt bekreftet.Den scoren var feil.Det er faktisk 9,2. Ingen ville vite noe om denne detaljen, men det vil alltid være i omløp. Når du ser 10,0, vet du hvilken bølge det er.
Et 10 år hull, to måneders AI-assistert forskning, fire dagers tidlig bruk, en-dags lappvindu. Denne tidsskalaen er det normale for all den grunnleggende programvaren som følger.
Sjekk versjonen nå.php -vEller se på containerspeilene på etiketten. Ikke vent til i morgen.