PHP2Shell eksploderede: CVSS 9.2, dagen før åbningen, og de to huller var i kode i 10 år.
For det første er konklusionen, at:PHP produceret en uautoriseret fjernkode for CVSS 9.2, numre CVE- 2026- 109618 og CVE- 2026- 109619, med et kaldenavn PHP2Shell. Den 20. oktober, det blev offentliggjort og den 21. oktober på 1400 UTC patches blev frigivet, mens Amazonas honning beholdere blev registreret den 17. oktober - fire dage før åbningen.
Hvad er værre end det er den anden ting: disse to huller er de første til at komme til PHP 5.4, hvilket betyder...De har været i kode i over et årti.Det ved jeg ikke. Og i 2024, da PHP kerne udvikler revision opdaget OOM vej, holdet mødtes for at diskutere, hvordan man løser det.Vi var ikke enige, og så ordnede vi det ikke.Det ved jeg ikke. Grunden er, at ingen troede, det kunne bruges.
Denne sætning ser nu særlig ironisk ud. Grunden til ikke at kunne gøre det er ikke, at hullet er ubetydeligt, men at kæden er for kompleks til at gå ud over de menneskelige forskeres fysiske kapacitet. Så kom AI og skrev det.
For det første, få ordet "multinational nødhjælp" af vejen. Se.
Titelpartiets yndlingsord er "global alarm". Det er ikke en overdrivelse denne gang, men det er en klar score.
- PHP Officiel: Der blev udstedt en forhåndsmeddelelse den 20. oktober, hvoraf det fremgår, at den 21. oktober kl. 14: 00 UTC ville blive frigivet i en sikker version, hvis oplysningerne blev lækket eller markeret. Som et resultat, CVE nummer blev stukket til Hacker News samme dag, og udgivelsen planlagt til oktober 22 blev tvunget til en dag tidligere.
- CERT-EU: release advisory 2026- 018 og omfatter begge CVE 'er.
- CloudflareDen 21. oktober, CTO Dane Knecht direkte sagde "det tidlige angreb er set at dukke op", og WAF regler blev frigivet i fuld, herunder gratis brugere. Men han understregede sig selv, at det var bare stopgap, og den virkelige løsning var lappe.
- Amazon trussels information: MadPot honning dåser blev fanget forsøger den 17. oktober, og en anden batch blev fanget den 21. oktober, og nyttelasten og infrastruktur pegede på en række forskellige angribere. php2shell "er allerede udbredt".
- Watch Towr: Begge huller er genopstået, mens forsøg på at udnytte begge er observeret.
Så "angrebet er fundet" er ikke et tegn, men et faktum. Og Multinational Emergency Response er ikke et slag -- det er bare at hovedemnerne for reaktionen er producenter, CDN 'er og nødorganisationer, ikke nogen regering i landet.
To, to huller, to helt forskellige måder at dø på.
Mange tror, det er et hul med to tal. Det er to forskellige angrebsveje, hver CVSS 9.2.
CVE- 2026- 109618: Bombe når hukommelsen er udtømt
Behandlingen af en anmodning afbrydes, når den PHP hukommelse distribution mislykkes. Problemet er:På dette tidspunkt, den interne anmodning data kan have været kun halv-initialized, og den efterfølgende oprydning logik ville have brugt denne uintegrerede stykke dårlige data som gyldige data.
Triggermetoden er enkel: konstruere en flerdelt anmodning om at implodere hukommelsen. Det underlige er:Størrelsen af anmodningen synes at matche dit loft.Det er ikke den postmax størrelse, du sætter op, det er afkodningen og forbruget af intern forarbejdning.
Det værste er mod php. Mod php for Apache når du beder om opstart mislykkedesDet vil stadig rydde op., så denne kæde kan afsluttes, før nogen gældende kode kører. Din PHP-kode er så ren, at der ikke er noget smuthul.
PHP-FPM vil dræbe arbejderen, når det undlader at starte, bare for at skære kæden, så officielt, mod php er den højeste risiko. Men hør efter -- det betyder ikke, at FPM er sikker.Efter vellykket opstartDer er stadig mulighed for udnyttelse.
CVE- 2026- 109619: Dirty state mellem anmodninger
Den her er værre. PHP vil genbruge arbejderprocessen til at behandle flere anmodninger. Den sidste anmodning om at frigive hukommelsen, markøren forbliver i den interne tilstand; den næste anmodning kommer i,Læs den tomme adresse før normal initialisering.Det ved jeg ikke.
Fatale fejl (udtømning af hukommelse, performance timeout) afbryde state oprydning. Endnu værre, en ikke-dødelig diagnose under lukningen ville have erstattet den forkerte tilstand.Gør det om.Det ved jeg ikke.
Officielt bekræftede veje omfatter: RCE 'er med fatal fejl, når PHP 8, 5 aktiverede fatale fejl backtracks (standard åbning), og session livscyklus RCE' er på motor php og FPM.session.upload_progress Som standard, kan du fungere som en tidlig forbruger i en tilstand af skidt.Og der er ingen grund til at anvende opkaldDet ved jeg ikke.
Hullet sidder fast.HukommelseslækageDet ved jeg ikke. Hvad lækkede? er password, token, API-nøgle, certifikat for andre anmodninger i processen hukommelse. Wiz direkte sammenlignet med Heartbleed, som ikke er for meget.
Tidslinje, mere end titel Se.
| Tid | Hvad skete der? |
|---|---|
| År 2024 | PHP kerne udvikler revision fundet OOM, at bug, holdet havde ingen konsensus om loven, sætte det på hold. |
| 2026-08 | Ryan Austin af Calif identificerer smuthuller med OpenAI GPT- 5.6 Sol; Wiz Independent Discovery |
| 2026-10-17 | Amazon MadPot, honningen kan optage et forsøg, fire dage før åbningen. |
| 2026-10-20 | CVE nummer lækket i Hacker News og sociale medier, PHP |
| 2026-10-21 | 14: 00 UTC Publikation 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
Den 17. oktober skal nævnes.Den offentlige dag var den 20., men angrebet fandt sted den 17.Amazon-forslaget er ligetil: Udgangspunktet bør ikke være på oplysningsdatoen, men frem til mindst den 17. oktober.
Hvad angår hvordan angriberne fik oplysningerne på forhånd, Amazon sagde "ikke klart". Jeg kan ikke gå ind i det her, men du må acceptere en virkelighed.Det var aldrig dagen for angrebet, men den dag, du endelig vidste det.
Fire, denne gang er det virkelig AI.
Wiz blog indeholder en sætning, som jeg har læst to gange: "Disse underliggende fejl har eksisteret i årtier, men for at bevise, at de kan bruges, de har brug for en usædvanlig kompleks kæde af trin, på marginen af de faktiske kapaciteter af menneskelige forskere.Frontline AI-modellen sænker denne tærskel betydeligt.Det ved jeg ikke.
Specifikt: Ryan Austin, en forsker i Calif, blev fundet i OpenAI projektet "Patch the Planet" med GPT- 5.6 Sol. Wiz fundet det samme problem uafhængigt. For at gøre brug af den har vi brug for en kæde af fejl og målrette hvert mål.Hukommelseslayout kalibreret gentagne gangeWiz siger, at frontlinjemodellen giver dem mulighed for at udvikle brugbare applikationer til forskellige applikationer inden for timer.
Det betyder ikke "AI vandt igen".Pointen er, at voldgraven af "kompleks" svigter.
Mange gamle smuthuller er ikke blevet slået i de sidste to årtier, ikke fordi de ikke er alvorlige, men fordi udnyttelsesgrænsen er for høj - nogle få ugers investeringer foretaget af topforskere og lidt held. Så du satte dem i kolonnen "teoretisk risikabelt". Nu er hegnet væk.
De ti år gamle huller, der ligger i dit system og vurderes som "vanskelige og uforarbejdede", skal revurderes.
Fem, hvilken en skal du gå til?
| Afdeling | Berørt udgave | Bortskaffelse |
|---|---|---|
| PHP 8,5 | < 8.5.12 | Hæv til 8.5.12. |
| PHP 8.4 | < 8.4.27 | Hæv til 8.4.27. |
| PHP 8.3 | < 8.3.36 | Hæv til 8.3.36. |
| PHP 8.2 | < 8.2.35 | Hæv til 8.2.35. |
| PHP 7.4 / 8.0 / 8.1 | Alle | Officielt ikke offentliggjort, kun kildeniveau |
| PHP 5,4 - 7,3 | Alle | EOL, regeringen ordner det ikke. Virksomhed |
Flere real- liv påmindelser:
- Linux Release og LTS VendorJeg har et plaster på forhånd.Tjek producentens rådgivning med en distributionspakke. Lad være med at skynde på kildekoden.
- Anvendelse
rpms.remirepo.netBemærk: PHP officielt angivet kilden den 21. oktober.Ingen opdateringSå du kan skifte til en distributionspakke eller gøre det fra kildekoden. - Windows binær af PHP 8.5 er også på den officielle download side.
- Det er ikke i orden at køre i containeren -- PHP-versionen af containerspejlet skal kontrolleres.
Seks, hvis du ikke kan få en patch, gør disse fire først.
Første stat:Ingen af disse vil gøre dig sikker.Den officielle PHP sætning er "reducere eksponering for specifikke angreb stier, men gør ikke installationer sikrere". Deres værdi er at give dig tid til at få patches.
Sæt hukommelsesgrænse til -1
Formål: At fjerne den forudsigelige PHP memory cap mislykkedes, dvs. CVE- 2026- 109618 har bekræftet den udløsende tilstand, som det afhænger af.
Pointen er,Hvordan?: skal indstilles på steder, hvor ansøgningen er uændret, såsom FPM Pool php_admin_value eller Apache konfiguration. Du skal kontrollere, at der ikke er nogen pops, mapper, programindstillinger for at tilføje grænsen tilbage.Så genstart alle arbejdere.
Prisen er klar: Du er off PHP 's egen hukommelse hegn, og den nederste distribution fiasko kan stadig være på den farlige vej. Så det må være en container eller en cgroup for at begrænse dækningen -- men det er kun en strategi at "dræbe berørte mennesker".Brug aldrig RLIMIT AS eller RLIMIT DATADisse to er netop den type distributionsfejl, der skaber smuthullerne.
Reducer poststørrelse
Sites uden fil 8M til fil 32M og garanteret upload_max_filesize Mindre end det. Samtidig tilføjes grænser til webserveren eller proxy lag - mængden af anmodninger dekodet, antallet af felter, antallet af multipart dele, antallet af hoveder, dybden af reder.Disse begrænsninger skal omfatte anmodninger, der ikke er gyldige.Ellers går vi udenom.
3. Sluk session.upload proces
session.upload_progress.enabled = 0
Det er skrevet i php.ini, FPM værktøj eller server konfiguration.Den skal være effektiv før anmodningen.Det ved jeg ikke. Anvendelse ini_set() Eller FPM. .user.ini Det var for sent -- det var beskidt. Ændring er også at genstarte alle worker.
PHP 8,5 En enkelt til
fatal_error_backtraces = 0
Denne blok bekræftede kun fatale fejlspor, uden andre varianter. Kræver også administratorniveauindstillinger + genstart worker.
Desuden, den officielle nævne, at mange vil ignorere:Fix de fatale fejl, som angriberne kan udløse og udføre tid ud., herunder back- up, upload, import behandling, oprydning fejl. Og...Slet forældede eller ulovlige konfigurationer pålagt en anmodning-by-request basis- De spytter diagnostiske oplysninger ud, før det er initialiseret og fodre lækagen.
Denne sidste sætning er lettest at misforstå:Det virker ikke at skjule diagnosen med fejlrapportering, vise fejl eller @.Det sker ikke.
VII. REALHENVISNINGER
Jeg vil ikke slutte med at skrive "Luk plasteret". Selvfølgelig er det et plaster. Det er i dag. Men nogle domme må ændres.
- Udtrykket "svært at bruge" er ikke længere det samme som "ordineret".PHP dette hul adgang kæde er kompliceret nok til at have brug for hjælp fra AI, som allerede har hjulpet. De gamle huller i din aktivliste, der markerer "teoretisk risiko", bør revurderes.
- Sproget kører på et enkelt punkt.WordPress, Drupal, Joomla, Magento, MediaWiki alle køre på PHP, din ansøgning kode revision er ren, og PHP kernen er i problemer. Kompenserende rytme af infrastrukturlag, med forskellige anvendelseslag.
- "Applikationskoden er brudt uden at køre". WAF kan kun forsinke.Cloudflare sagde selv, at det var stopgap. At sætte WAF som en løsning er at give liv til at regere.
- Der er mange gamle steder i landet ved hjælp af PHP.De stationer, der kører på PHP 5.6 / 7.0, som for længe siden var uvedligeholdt og hængt på en cloud mainframe, er i denne eksponering på 1,3 til 1,9 millioner. De vil ikke modtage nogen varsel.
Data kalibreringer registreres: W3Techs siger PHP står for 69,3 procent af de sprog, som tjenesten kender, og Wiz 70 procent; eksponering værter, sikkerhed forsker Silas Cutler skøn over 1,3 millioner, og Henk Poley 's Shodan søgning er over 1,9 millioner. Disse tal er af forskellig kaliber og ikke bruge dem som præcise værdier, men skalaen er den samme -Millioner, globalt.
Endnu en detalje er værd at huske: Da CVE-nummeret blev lækket, CVSS-punkterne, der kom ud var 10,0, PHP blev officielt bekræftet.Det var forkert.Det er faktisk 9,2. Ingen ville vide noget om denne detalje, men den vil altid være i omløb. Du ved, hvilken bølge det er.
Et 10- års hul, to måneders AI- støttet forskning, fire dages tidlig udnyttelse, en-dages patch vindue. Denne tidsplan er den normale af alle de grundlæggende software, der følger.
Tjek versionen nu.php -vEller se på jeres spejle. Vent ikke til i morgen.