← Takaisin luetteloon

PHP2Shell räjähti: CVSS 9.2, päivää ennen avaamista, ja kaksi reikää olivat koodissa 10 vuotta.

itadol5j

Ensinnäkin päätelmänä on, ettäPHP tuotti luvattoman etäkoodin CVSS 9.2, numerot CVE-2026-109618 ja CVE-2026-109619, jolla on lempinimi PHP2Shell. Lokakuun 20, se julkaistiin ja 21. lokakuuta klo 1400 UTC laastarit julkaistiin, kun taas Amazonin hunajakanisterit kirjattiin 17. lokakuuta .

Mikä on pahempaa kuin se on toinen asia: nämä kaksi reikää ovat ensimmäiset päästä PHP 5.4, mikä tarkoittaa...He ovat olleet koodattuina yli vuosikymmenen.En tiedä. Ja vuonna 2024, kun PHP ydin kehittäjä tarkastus löysi OOM polku, tiimi kokoontui keskustella siitä, miten korjata se.Emme sopineet, emmekä korjanneet sitä.En tiedä. Syy on se, että kukaan ei uskonut, että sitä voitaisiin käyttää.

Tämä lause näyttää nyt erityisen ironiselta. Syynä siihen ei ole se, että aukko on merkityksetön, vaan se, että ketju on liian monimutkainen ylittääkseen ihmistutkijoiden fyysiset valmiudet. Sitten Al tuli ja kirjoitti sen.

PHP2Shell Hole Cover: Impact Scope and Exposure Host

Ensinnäkin, poista sana "monikansallinen hätätilanne." Katso.

Otsikkopuolueen suosikkisana on "maailman hälytys." Se ei ole liioittelua, mutta selvä tulos.

  • PHP:n virallinen: 20 päivänä lokakuuta annettiin ennakkoilmoitus, jossa todetaan, että 21 päivänä lokakuuta klo 14:00 UTC:n tiedot julkaistaisiin suojatussa versiossa, jos tiedot vuotaisivat tai pelloiltaisiin. Tämän seurauksena CVE-numero puukotettiin Hacker Newsiin samana päivänä, ja 22. lokakuuta suunniteltu julkaisu pakotettiin päivää aiemmin.
  • CERT-EU: julkaisuneuvonta 2026-18 ja sisältävät molemmat CVE:t.
  • CloudflareLokakuun 21. päivänä CTO Dane Knecht sanoi suoraan "ennen hyökkäystä on nähty esiintyvän" ja WAF säännöt julkaistiin kokonaisuudessaan, mukaan lukien vapaat käyttäjät. Mutta hän korosti itseään, että se oli vain pysähdys, ja todellinen ratkaisu oli paikkailu.
  • Amazonin uhkatiedot: MadPot hunajatölkkejä kiinni yrittää 17. lokakuuta, ja toinen erä saatiin kiinni 21. lokakuuta, ja hyötykuorma ja infrastruktuuri osoitti useita erilaisia hyökkääjiä. php2shell "on jo laajalti käytetty."
  • Katso Towr: Molemmat reiät ovat uudelleen, kun taas yritykset hyödyntää molempia havaitaan.

Joten "hyökkäys on löydetty" ei ole renderointi vaan tosiasia. Eikä multinational Emergency Response ole isku -- se on vain, että tärkeimmät aiheet reagoinnin ovat valmistajat, CDNs ja hätäorganisaatiot, ei mikään hallitus maassa.

Kaksi reikää, kaksi täysin eri tapaa kuolla.

Moni luulee, että siinä on kaksi numeroa. Nämä ovat kaksi erillistä hyökkäysreittiä.

Kahden reiän teknisten reittien vertailu

CVE-2026-109618: Pommi muistin ehtyessä

Pyynnön käsittely keskeytetään, kun PHP-muistin jakelu epäonnistuu. Ongelmana on:Tässä vaiheessa sisäiset pyyntötiedot ovat saattaneet olla vain puoliksi alkuperäisiä, ja sitä seuranneessa puhdistuslogiikassa olisi käytetty tätä kirjaamatonta virhetietoa pätevinä tietoina.

Laukaisumenetelmä on yksinkertainen: rakentaa moniosainen pyyntö hajottaa muisti. Outoa on,Pyyntö näyttää sopivan kattoosi.Kyse ei ole asettamastasi postin maksimikoosta, vaan sisäisestä käsittelystä.

Pahin on mod php. Mod php apachelle, kun käynnistyspyyntö epäonnistuiSe siivoaa vielä., jotta tämä ketju voidaan saattaa valmiiksi ennen mitään sovellettavaa koodia. PHP-koodisi on niin puhdas, ettei siinä ole porsaanreikää.

PHP-FPM tappaa työntekijän, kun se ei käynnisty, vain leikata ketju, joten virallisesti, mod php on suurin riski. Se ei tarkoita, että FPM olisi turvallinen.Onnistuneen käynnistysvaiheen jälkeenOn vielä olemassa mahdollisuus hyväksikäyttöön.

CVE-2026-109619: Likainen tila pyyntöjen välillä

Tämä on pahempi. PHP käyttää uudelleen työntekijöiden prosessi käsitellä useita pyyntöjä. Viimeinen pyyntö palauttaa muisti, osoitin pysyy sisäisessä tilassa; seuraava pyyntö tulee,Lue tyhjä osoite ennen normaalia alustusta.En tiedä.

Kuolemaan johtaneet virheet (muistin heikkeneminen, aikakatkaisu) keskeyttävät tilan puhdistuksen. Vielä pahempaa on, että jokin ei-tappava diagnoosi sammutuksen aikana olisi korvannut väärän tilan.Tee se uudestaan.En tiedä.

Virallisesti vahvistettuja reittejä ovat: RCE:t, joissa on fataali virhe, kun PHP 8.5 on käytössä Fatal error backtraces (oletusavaus), ja istunnon elinkaari RCE:t moottorilla php ja FPM.session.upload_progress Oletuksena voit toimia varhaisena kuluttajana saastaisessa tilassa.Eikä ole tarvetta soveltaa puheluita [s]En tiedä.

Tämä reikä on yhä kiinni.MuistivuotoEn tiedä. Mitä vuoti? on salasana, token, API-avain, todistus muita pyyntöjä prosessimuistissa. Wiz suoraan verrattuna Heartbled, joka ei ole liikaa.

Aikajana, enemmän kuin otsikko Katso.

PHP2Shell Event Aikajana: varattu 2024-10-17 kenttäkäyttöön
AikaMitä tapahtui?
Vuosi 2024PHP ydin kehittäjä tarkastus löysi OOM, että vika, joukkue ei ollut yksimielisyyttä lain, laita se odottamaan.
2026-08Ryan Austin of Calif tunnistaa porsaanreiät OpenAI GPT-5.6 Sol; Wiz Independent Discovery
2026-10-17Amazon MadPot, hunaja voi tallentaa yrityksen neljä päivää ennen avajaisia.
2026-10-20CVE numero vuoti Hacker News ja sosiaalinen media, PHP
2026-10-2114:00 UTC Julkaisu 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35

Lokakuun 17. päivä on valittava.Julkinen päivä oli 20. päivä, mutta hyökkäys tapahtui 17. päivänä.Amazonin ehdotus on yksinkertainen: lähtökohtana ei pitäisi olla tietojen julkistamispäivä vaan vähintään 17. lokakuuta.

Miten hyökkääjät saivat tiedot etukäteen, Amazon sanoi "ei selvää." En voi puhua tästä, mutta sinun on hyväksyttävä todellisuus.Paljastuspäivä ei ollut hyökkäyspäivä, vaan se päivä, jona viimein tiesit.

Neljä, tällä kertaa se on todella tekoälyä.

WizEtulinjan tekoälymalli alentaa tätä kynnystä huomattavasti.En tiedä.

Erityistä: Califin tutkija Ryan Austin löydettiin OpenAI-hankkeesta "Patch the Planet" GPT-5.6 Sol. Wiz löysi saman ongelman itsenäisesti. Jotta voimme hyödyntää sitä, tarvitsemme viat ketju ja kohdentaa jokaisen kohteen.Muistin ulkoasu toistuvasti kalibroituWiz sanoo etulinjan mallin avulla he voivat kehittää käyttökelpoisia sovelluksia eri sovelluksia tunnin kuluessa.

Se ei tarkoita, että A voitti taas.Pointti on, että "kompleksin" vallihauta epäonnistuu.

Monia vanhoja porsaanreikiä ei ole hakattu viimeisten kahden vuosikymmenen aikana, ei siksi, että ne eivät ole vakavia, vaan siksi, että käyttökynnys on liian korkea, muutaman viikon investointien huippututkijoiden ja hieman onnea. Joten laitoit ne "teoreettisesti riskialttiiseen" sarakkeeseen. Nyt tämä aita on poissa.

Kymmenvuotiaat reiät, jotka ovat elimistössäsi ja joita pidetään "vaikeina ja käsittelemättöminä," on luokiteltava uudelleen.

Viisi, kumpaan menet?

PHP-perittyjen versioiden vertailu
HaaraMuutosHävittäminen
PHP 8.5< 8.5.12Korotan 8.5.12:een.
PHP 8,4< 8.4.27Korotan 8.4.27:een.
PHP 8,3< 8.3.36Nostakaa 8.3.36:een.
PHP 8,2< 8.2.35Nosta 8.2.35:een.
PHP 7,4 / 8,0 / 8,1KaikkiVirallisesti julkaisematon, ainoastaan lähdetaso
PHP 5.4 .......................................................................................................................................................KaikkiEOL, hallitus ei korjaa sitä. Liiketoiminta

Useita tosielämän muistutuksia:

  • Linux Release ja LTS ValmistajaSain paikan etukäteen.Tarkista valmistajan neuvonta jakelupaketilla. Älä kiirehdi lähdekoodia.
  • Käyttö rpms.remirepo.net Huom: PHP virallisesti ilmoitti lähde 21. lokakuuta.Ei päivitystäVoit vaihtaa jakelupakettiin tai tehdä sen lähdekoodista.
  • Windows binary of PHP 8.5 on myös virallisella lataussivulla.
  • Älä usko, että kontissa saa juosta. Konttipeilin PHP-versio on tarkistettava.

Jos et saa paikkaa, tee nämä neljä ensin.

Ensimmäinen tila:Mikään alla olevista ei tee teistä turvassa.Virallinen PHP-lause on "vähennä altistumista tietyille hyökkäyspoluille, mutta älä tee asennuksesta turvallisempaa." Niiden arvo on antaa sinulle aikaa saada laastaria.

Neljä välitoimenpidettä ja niiden rajoitukset

Aseta muistirajaksi -1

Käyttötarkoitus: Ennakoidun PHP-muistikorkin poistaminen epäonnistui, eli CVE-2026-109618 on vahvistanut laukaisevan tilan, josta se riippuu.

Pointti on...Miten?: asetetaan paikkoihin, joissa hakemus ei ole muuttunut, kuten FPM-pooliin php_admin_value tai Apache-asetus. Sinun täytyy tarkistaa, että ei ole pops, hakemistoja, sovellusasetuksia lisätä raja takaisin.Käynnistä sitten jokainen työntekijä uudelleen.

Hinta on selvä: olet pois PHP: n oma muistiaita, ja pohjajakelun vika voi edelleen olla että vaarallinen polku. Joten sen täytyy olla kontti tai ryhmä, joka rajoittaa kannen -- mutta se on vain strategia "tappaa vaikuttaa ihmisiä."Älä koskaan käytä RLIMIT AS- tai RLIMIT-TIETOJANämä kaksi ovat juuri sellaisia jakeluhäiriöitä, jotka luovat porsaanreikiä.

Pienennä postin maksimikokoa

Sivustot ilman tiedostoa 8M tiedosto 32M ja taattu upload_max_filesize Vähemmän kuin se. Samalla verkkopalvelimeen tai välityspalvelimeen lisätään rajoituksia - pyyntöjen määrä on purettu, kenttien määrä, moniosaisten osien määrä, päiden lukumäärä, pesien syvyys.Näiden rajoitusten on katettava pyynnöt, jotka eivät ole voimassa Content-PengthTai kierrämme sen.

3. Sammuta istunto.upload prosessi

session.upload_progress.enabled = 0

Se on kirjoitettu Php.ini, FPM työkalu tai palvelimen asetukset.Sen on oltava voimassa ennen pyyntöä.En tiedä. Käyttö ini_set() Tai FPM. .user.ini Oli liian myöhäistä. Se oli likaista. Muutos on myös käynnistää kaikki työntekijöille.

PHP 8.5 Vielä yksi.

fatal_error_backtraces = 0

Tämä lohko vahvisti vain tappavan virheen takaiskut ilman muita vaihtoehtoja. Vaadi myös ylläpitäjän tason asetukset + käynnistä työkone uudelleen.

Lisäksi virallinen maininta siitä, että monet eivät välitä:Korjaa tappavat virheet, jotka hyökkääjät voivat laukaista ja suorittaa aikalisän., mukaan lukien varmuuskopiointi, lataus, tuonnin käsittely, puhdistusvirheet. Ja...Pyydettäessä poistetaan vanhentuneet tai laittomat konfiguraatiot- He sylkevät diagnostisia tietoja ennen kuin se alkaa ja syöttää vuotoa.

Tämä viimeinen virke on helpoin ymmärtää väärin:Se ei toimi piilottaa diagnoosi virheraportointi, näyttövirheitä tai @.Ei onnistu.

VII Oikeasti.

En halua lopettaa kirjoittamalla "Sulje laastari." Tietenkin se on. Se on tänään. Mutta joidenkin tuomioiden on muututtava.

  1. Termi "vaikea käyttää" ei ole enää sama kuin "määrätty."PHP tämän reiän käyttöketju on tarpeeksi monimutkainen tarvitsee apua tekoäly, joka on jo auttanut. Omaisuusluettelossasi olevat vanhat aukot, joissa on merkintä "teoriariski," tulisi luokitella uudelleen.
  2. Kieli toimii yhdessä kohdassa.WordPress, Drupal, Joomla, Magento, MediaWiki kaikki ajaa PHP, hakemuskoodi tarkastus on puhdas, ja PHP ydin on vaikeuksissa. Infrastruktuurikerrosten tasausrytmi, jossa sovellustasot on erotettu.
  3. "Soveltamiskoodi on rikki juoksematta." WAF voi vain viivytellä.Cloudflare itse sanoi, että se oli tauko. WAF:n asettaminen ratkaisuksi on yhtä kuin se, että se antaa elämän säännölle.
  4. On paljon vanhoja sivustoja maassa käyttäen PHP.PHP 5.6/7.0:lla toimivat asemat, joita ei pitkään aikaan ylläpidetty ja hirtetty pilvikeskukseen, altistuvat 1,3-1,9 miljoonalle. He eivät saa ilmoitusta.

Data-kalibraatiot kirjataan: W3Techsin mukaan PHP:t kattavat 69,3 prosenttia palvelun tunnetuista kielistä ja Wiz 70 prosenttia; altistusisännät, tietoturvatutkija Silas Cutler arvioi yli 1,3 miljoonaa, ja Henk Poleyn Shodan-haku on yli 1,9 miljoonaa. Nämä numerot ovat eri kaliiperia ja eivät käytä niitä tarkkoja arvoja, mutta mittakaava on sama -Miljoonia, maailmanlaajuisesti.

Vielä yksi yksityiskohta on syytä muistaa: kun CVE numero vuoti, CVSS pistettä, joka tuli ulos oli 10,0, PHP virallisesti vahvistettu.Se oli väärin.Se on 9,2. Kukaan ei tiedä mitään tästä yksityiskohdasta, mutta se on aina liikkeessä. Kun näet 10,0, tiedät mikä se on.

10 vuoden reikä, kaksi kuukautta tekoälyä, neljä päivää etuajassa, päivän paikkaikkuna. Tämä aikataulu on normaali kaikki perusohjelmisto, joka seuraa.

Tarkista versio nyt.php -vTai katso konttipeilejäsi. Älä odota huomiseen.