Turvalisus · PHP
PHP2Shell (CVE-2026-109618 ja CVE-2026-109619): kriitiline PHP haavatavus ja mida WordPressi lehe omanik peab teadma
2026. aasta oktoobris avalikustati kaks kriitilist PHP haavatavust, mida tuntakse ühisnime PHP2Shell all. Mõlemad võimaldavad koodi kaugkäivitust ilma sisselogimiseta ja kuna PHP paneb tööle tohutu osa veebist, puudutavad need ka WordPressi, Drupalit ja lugematuid teisi lehti. Selles artiklis vaatame läbi, millega on tegu, mida pead kohe tegema ja miks staatiline leht väldib kogu probleemi.
Päevakajaline: Haavatavusi kasutatakse veebis juba aktiivselt ära. Kui haldad PHP-põhist lehte, uuenda PHP viivitamatult paigatud versioonile. Juhised on allpool.
PHP2Shell tähendab kahte PHP tuuma haavatavust, CVE-2026-109618 ja CVE-2026-109619. Mõlemad lubavad koodi kaugkäivitust ilma sisselogimiseta ja need on liigitatud kriitilisteks (CVSS 9.2). Edukas rünnak võib viia kogu serveri ülevõtmiseni ning mälus olevate paroolide ja võtmete lekkimiseni.
Kuna augud on PHP tuumas, puudutavad need kõiki haavataval PHP versioonil töötavaid lehti: WordPressi, Drupalit, Laravelit ja kohandatud rakendusi, pluginatest sõltumata. Kõige olulisem samm on uuendada PHP paigatud versioonile (8.5.12, 8.4.27, 8.3.36 või 8.2.35) ja käivitada server uuesti.
Staatilisel lehel PHP tõlki üldse ei käivitata, seega PHP koodi kaugkäivitusel põhinev haavatavus seda ei puuduta. Novavalo toodab just selliseid staatilisi lehti, mistõttu Novavaloga ehitatud lehed ei ole sellele PHP haavatavusele avatud.
Mis on PHP2Shell (CVE-2026-109618 ja CVE-2026-109619)?
PHP2Shell on ühisnimi kahele PHP tuuma haavatavusele, mis avalikustati 2026. aasta oktoobris. Mõlemad võimaldavad koodi kaugkäivitust (RCE) ilma sisselogimiseta ja need on hinnatud raskusastmelt kriitilisteks (CVSS 9.2). Praktikas saab ründaja käivitada serveris oma koodi, mis võib viia kogu süsteemi ülevõtmiseni.
Aukude olemasolu sai avalikuks enne kavandatud ajakava, kui info veebi lekkis. PHP arendajad reageerisid kiiresti ja avaldasid hädauuenduse 21. oktoobril 2026. Haavatavused leidis turvafirma Wiz. Kahjuks tähendas info lekkimine ka seda, et ründajad said vihje varakult: aukude aktiivset ärakasutamist on veebis täheldatud juba alates avalikustamise päevast ja töötavad ründenäited on avalikult saadaval.
Nimi PHP2Shell kirjeldab tulemust tabavalt. Ründaja eesmärk on pääseda PHP-st serveri käsutõlki ehk shelli, kust ta saab lehel ja serveris teha praktiliselt mida tahes: paigaldada pahavara, varastada andmeid või kasutada serverit hüppelauana järgmistesse rünnakutesse.
Miks tõusis haavatavus esile alles nüüd?
Vigade aluseks olev kood oli PHP-s olnud kaua. Uus ei ole mitte viga ise, vaid see, et 2026. aastal näitasid teadlased tehisintellekti abil, kuidas vigu saab praktikas ära kasutada. Vana, aastaid uinunud viga muutus päris rünnakuks.
Teisest probleemist oli märke täheldatud juba 2024. aastal, kuid siis töötavat ründeviisi ei leitud ja parandamine viibis. Tarkvaras juhtub seda sageli: kahtlus võimaliku vea suhtes ei tähenda veel, et keegi oskaks seda ära kasutada. Just seetõttu jääb osa haavatavusi aastateks parandamata, kuni keegi avastab, kuidas neid vallandada.
Sel juhul astuti otsustav samm tehisintellekti abil. Teadlased kasutasid tehisintellekti, et hoomata keerulist ründeahelat, mis inimeselt oleks nõudnud märksa rohkem aega. Avastus sündis teadlaste endi uurimistööst, mitte avastatud andmemurdmise lahendamisest, mis on hea uudis: parandus jõudis valmida enne laialdast kuritarvitamist. Samas on juhtum siiski meeldetuletus, et tehisintellekt alandab läve keeruliste rünnakute ehitamiseks. Vanad, pikka aega ohutuks peetud vead võivad muutuda ärakasutatavaks ja see on üks põhjus, miks rünnakupinna vähendamine on nüüd veelgi olulisem.
Miks puudutab see just WordPressi ja teisi PHP lehti?
WordPress on ehitatud PHP peale ja need haavatavused on PHP tuumas, mitte üksikutes pluginates. Seetõttu puudutavad need iga WordPressi lehte, mis töötab haavataval PHP versioonil, sõltumata sellest, millised pluginad või teemad on paigaldatud.
See teeb olukorra erakordseks. Tavaliselt tulevad WordPressi sissemurdmised pluginatest, teemadest ja nõrkadest tunnustest, nagu kirjutasime varem artiklis WordPressi lehtede häkkimised jätkuvad. Siin on auk sügavamal: see on PHP-s endas, millega WordPress tööle pannakse. Teadlased on näidanud, et haavatavust saab ära kasutada isegi uusimate WordPressi paigalduste vastu ilma sisselogimiseta.
PHP paneb tööle tohutu osa veebist, seega on mõjuala lai. Lisaks WordPressile on avatud näiteks Drupal, Laravel ja paljud kohandatud PHP rakendused. Risk on eriti suur siis, kui PHP käivitatakse Apache mod_php mooduliga, mil sisselogimata päring võib rünnaku vallandada enne, kui rakenduse oma kaitse jõuab reageerida. Avatud on ka PHP-FPM, php-cgi ja muud käivitusviisid.
Mida haavatavused tehniliselt tähendavad?
Mõlemad augud on seotud sellega, kuidas PHP käsitleb mälu päringute vahel. Üksikasjad on tehnilised, kuid põhimõtte saab tiivalt kokku võtta.
| Haavatavus | Tüüp | Millega on tegu |
|---|---|---|
| CVE-2026-109618 | Mälu rikkumine mälu lõppemisel | Kui serveri mälu saab otsa, kui PHP päringuandmed on alles osaliselt lähtestatud, võib järgnev koristus kohelda poolikut andmestikku kehtivana. Seda saab kasutada koodi käivitamiseks. |
| CVE-2026-109619 | Vabastatud mälu kasutus (use-after-free) | Ühe päringu järel jäänud olek võib osutada juba vabastatud mälule. Samas tööprotsessis hiljem töödeldav päring võib seda aegunud olekut ära kasutada. |
Lisaks koodi käivitamisele võivad augud lekitada teavet. Nende abil on võimalik lugeda PHP tööprotsessi mälu, mis võib sisaldada paroole, seansitunnuseid ja API-võtmeid. WordPressi lehel võib see tähendada näiteks andmebaasi tunnuste või kolmanda osapoole teenuste võtmete paljastumist. Just seetõttu pelgast paikamisest alati ei piisa, vaid pärast paikamist tasub kaaluda ka paroolide ja võtmete vahetamist.
Mida pead nüüd tegema?
Kõige olulisem samm on üks: uuenda PHP paigatud versioonile ja käivita server uuesti. Ainult uuendus parandab haavatavuse täielikult. Kõik muu on teisejärguline.
Tegevusnimekiri PHP lehe omanikule
- Uuenda PHP paigatud versioonile. Uuenda PHP versioonile 8.5.12, 8.4.27, 8.3.36 või 8.2.35 selle järgi, millist haru kasutad.
- Käivita teenus uuesti. Käivita PHP-FPM või veebiserver pärast uuendust uuesti, et vanad tööprotsessid ei jääks vana koodiga tööle.
- Vana PHP versioon? Võta ühendust halduriga. Kui kasutad PHP 8.1 või vanemat, ametlikku binaaruuendust ei ole. Palu oma teenusepakkujal uuendada toetatud versioonile (8.2 või uuem).
- Kasuta ajutisi leevendusi ainult hädaabina. PHP sihtasutuse juhised, nagu päringu maksimaalse suuruse piiramine (post_max_size) ja session.upload_progress.enabled sätte väljalülitamine, vähendavad rünnakupinda, kuid ei asenda uuendust.
- Jälgi kõrvalekaldeid. Jälgi ebatavalisi multipart-päringuid ja mälupiiri ületamisest teatavaid vigu, mis võivad viidata ärakasutamise katsele.
- Kaalu tunnuste vahetamist. Kuna mälu on võidud lugeda, vaheta pärast paikamist andmebaasi paroolid, API-võtmed ja muud saladused, kui on alust kahtlustada avatust.
- Ära usalda võltspluginaid. Väldi mitteametlikke pluginaid, mis väidavad haavatavust parandavat. Ainult PHP ametlik uuendus parandab augu.
Millised PHP versioonid on haavatavad ja millised paigatud?
Haavatavus puudutab praktikas kõiki PHP versioone aastate tagant kuni PHP 8-ni välja. Allolevast tabelist näed, millisele versioonile tasub uuendada.
| PHP haru | Olek | Soovitus |
|---|---|---|
| PHP 8.5 | Paigatud versioonis 8.5.12 | Uuenda versioonile 8.5.12 või uuemale. |
| PHP 8.4 | Paigatud versioonis 8.4.27 | Uuenda versioonile 8.4.27 või uuemale. |
| PHP 8.3 | Paigatud versioonis 8.3.36 | Uuenda versioonile 8.3.36 või uuemale. |
| PHP 8.2 | Paigatud versioonis 8.2.35 | Uuenda versioonile 8.2.35 või uuemale. |
| PHP 8.1 ja vanemad | Haavatav, ametlikku binaaruuendust ei ole | Uuenda toetatud versioonile (8.2 või uuem). Lähtekoodi parandused on saadaval ka eluea lõppu jõudnud versioonidele 7.4 - 8.1. |
Kui sa ei tea, millist PHP versiooni sinu leht kasutab, küsi seda oma teenusepakkujalt või kontrolli juhtpaneelist. Paljudel jagatud veebimajutuse klientidel hoolitseb uuenduse eest teenusepakkuja, kuid tasub veenduda, et see on tõesti tehtud.
Miks staatiline leht väldib selle täielikult?
Staatilisel lehel ei käivitata PHP tõlki üldse. Lehed on valmis ehitatud HTML-failid, mida serveeritakse sellisena kiire CDN-i kaudu. Kuna server ei käivita iga päringu kohta PHP koodi, lihtsalt ei kehti PHP koodi kaugkäivitusel põhinev haavatavus sellise lehe suhtes.
Siin peitub artikli pildi õppetund. Kolme põrsakese muinasjutus kukuvad õlgedest onn ja okstest onn hundi puhumisele, kuid tellismaja peab vastu. Veebis satuvad PHP õlgedest onn ja WordPressi okstest onn pidevalt tuule kätte, kui leitakse uusi haavatavusi. Staatiline leht on tellismaja: seal ei ole andmebaasi, sisselogimispaneeli, pluginaid ega serveris käivitatavat koodi, mille külge rünnak saaks haakuda.
Aus on öelda, et ükski platvorm ei ole võluvitsa löögiga kõige eest kaitstud. Ka staatilise lehe võib koostada hooletult ning vormid ja välisteenused vajavad oma hoolt. Oluline on, et just see konkreetne haavatavuste klass, PHP koodi kaugkäivitus, kaob täielikult, kui lehel ei ole PHP tõlki. Samal ajal kaob suur osa sellest rünnakupinnast, mida küberkurjategijad päevast päeva katsetavad.
Kas peaksin WordPressist loobuma?
Üksik haavatavus ei ole paanikaks põhjust ja see tasub ennekõike kohe ära paigata. Pikema aja küsimus on aga asjakohane. Kui sinu leht on tavaline ettevõtte tutvustusleht, kus on paar lehte, kontaktandmed ja võib-olla kontaktivorm, toob raske PHP-põhine avaldamissüsteem kaasa rünnakupinda ja halduskoormust, mida sa ilmtingimata ei vaja.
Sellisel juhul on staatiline leht kergem ja turvalisem valik. Sa ei pea jälgima iganädalasi turvauuendusi ega jooksma iga uue PHP või plugina haavatavuse järel. Suurele, palju funktsionaalsust nõudvale platvormile võib WordPress olla endiselt põhjendatud valik, kuid tutvustuslehele on see sageli ülemõõduline. Kirjutasime teemast lähemalt artiklis miks me WordPressist loobusime, ja kogu arengukaare käib läbi veebilehtede ajalugu.
Tee lehed ilma PHP-ta ja ilma uuendusvahita
Novavalo toodab staatilisi lehti, mida ei käivitata PHP-ga ega WordPressiga:
- Ei PHP tõlki, ei andmebaasi, ei pluginaid, seega selline PHP haavatavus sinu lehte ei puuduta.
- Räägid oma ettevõttest ja tehisintellekt ehitab lehed, mida serveeritakse kiire CDN-i kaudu.
- Ei iganädalast turvahooldust, vaid keskendud sisule, mitte uuenduste valvamisele.
Korduma kippuvad küsimused
Mis on PHP2Shell (CVE-2026-109618 ja CVE-2026-109619)?
PHP2Shell on ühisnimi kahele kriitilisele PHP haavatavusele, mis avalikustati 2026. aasta oktoobris. Mõlemad võimaldavad koodi kaugkäivitust (RCE) ilma sisselogimiseta ja need on liigitatud raskusastmelt kriitilisteks (CVSS 9.2). Edukas rünnak võib viia kogu serveri ülevõtmiseni.
Kas see puudutab minu WordPressi lehte?
Jah, kui sinu leht töötab haavataval PHP versioonil. Haavatavused on PHP tuumas, seega puudutavad need kõiki WordPressi lehti pluginatest ja teemadest sõltumata. Teadlased on näidanud, et haavatavust saab kasutada ka uusimate WordPressi paigalduste vastu ilma sisselogimiseta.
Mida pean kohe tegema?
Uuenda PHP paigatud versioonile (8.5.12, 8.4.27, 8.3.36 või 8.2.35) ja käivita PHP-FPM või veebiserver uuesti. Kui kasutad PHP 8.1 või vanemat, võta ühendust oma teenusepakkujaga toetatud versioonile uuendamiseks. Ainult uuendus parandab probleemi täielikult.
Miks staatiline leht ei ole sellele haavatavusele avatud?
Staatilisel lehel ei käivitata PHP tõlki üldse. Lehed on valmis HTML-failid, mida serveeritakse CDN-i kaudu. Kuna serveris ei käivitata iga päringu kohta PHP koodi, ei kehti PHP koodi kaugkäivitusel põhinev haavatavus sellise lehe suhtes.
Kas pelgalt leevendusest ilma uuenduseta piisab?
Ei. PHP sihtasutus avaldas ajutised leevendused, mis vähendavad rünnakupinda, kuid need üksi ei muuda paigaldust turvaliseks. Ainult uuendus paigatud versioonile parandab haavatavuse. Väldi ka mitteametlikke pluginaid, mis väidavad probleemi parandavat.
Kas haavatavus lekitab paroole ja võtmeid?
Lisaks koodi käivitamisele saab nende haavatavuste abil lugeda PHP tööprotsessi mälu, mis võib sisaldada paroole, seansitunnuseid ja API-võtmeid. WordPressi puhul võib see tähendada näiteks andmebaasi tunnuste või kolmanda osapoole võtmete paljastumist. Seetõttu soovitavad paljud pärast paikamist vahetada ka paroolid ja võtmed.
Miks on vana viga ohtlik alles nüüd?
Vigade aluseks olev kood oli PHP-s olnud kaua ja teisest probleemist oli märke juba 2024. aastal. Praktilist ründeviisi aga siis ei leitud. 2026. aastal näitasid teadlased tehisintellekti abil, kuidas vigu saab ära kasutada. Tehisintellekt alandab läve keeruliste rünnakute ehitamiseks, mistõttu vanad vead võivad muutuda ärakasutatavaks.
Turvaline leht ilma PHP rünnakupinnata
Lase tehisintellektil ehitada oma ettevõttele staatiline leht, millel ei ole PHP tõlki, andmebaasi ega pluginaid valvata. Näed tulemust mõne minutiga.
Alusta tasuta →Läbipaistvuse märkus: See artikkel on loodud tehisintellekti abiga ja Novavalo toimetus vastutab selle sisu eest. Artikkel on üldine teave turvalisuse kohta, ei asenda ametlikke turvateateid. Kontrolli alati ajakohaseid juhiseid allolevatest ametlikest allikatest.