Novavalo

Tietoturva · PHP

PHP2Shell (CVE-2026-109618 ja CVE-2026-109619): kriittinen PHP-haavoittuvuus ja mitä WordPress-sivuston omistajan pitää tietää

22.10.2026 9 min lukuaika
Kolme pientä porsasta verkkoalustoina: suden (kyberuhka) edessä PHP:n olkimaja ja WordPressin risumaja kaatuvat, mutta staattisten sivujen tiilitalo kestää.
Kuva: AI-generoitu. Vanha satu uusin merkinnöin: PHP:n olkimaja ja WordPressin risumaja kaatuvat PHP2Shell-hyökkäykselle, staattisten sivujen tiilitalo kestää.

Lokakuussa 2026 julkistettiin kaksi kriittistä PHP-haavoittuvuutta, jotka tunnetaan yhteisnimellä PHP2Shell. Molemmat mahdollistavat etäkoodin ajon ilman kirjautumista, ja koska PHP pyörittää valtavaa osaa verkosta, ne koskevat myös WordPressiä, Drupalia ja lukemattomia muita sivustoja. Tässä artikkelissa käymme läpi mistä on kyse, mitä sinun pitää tehdä nyt, ja miksi staattinen sivu välttää koko ongelman.

Ajankohtaista: Haavoittuvuuksia hyödynnetään jo aktiivisesti verkossa. Jos ylläpidät PHP-pohjaista sivustoa, päivitä PHP paikattuun versioon viipymättä. Ohjeet ovat alla.

Tiivistelmä

PHP2Shell tarkoittaa kahta PHP:n ytimen haavoittuvuutta, CVE-2026-109618 ja CVE-2026-109619. Molemmat sallivat etäkoodin ajon ilman kirjautumista ja ne on luokiteltu kriittisiksi (CVSS 9.2). Onnistunut hyökkäys voi johtaa koko palvelimen haltuunottoon ja muistissa olevien salasanojen ja avainten vuotamiseen.

Koska aukot ovat PHP:n ytimessä, ne koskevat kaikkia haavoittuvalla PHP-versiolla pyöriviä sivustoja: WordPressiä, Drupalia, Laravelia ja räätälöityjä sovelluksia, lisäosista riippumatta. Tärkein toimenpide on päivittää PHP paikattuun versioon (8.5.12, 8.4.27, 8.3.36 tai 8.2.35) ja käynnistää palvelin uudelleen.

Staattisella sivulla PHP-tulkkia ei ajeta lainkaan, joten PHP:n etäkoodin ajoon perustuva haavoittuvuus ei koske sitä. Novavalo tuottaa juuri tällaisia staattisia sivuja, joten Novavalolla rakennetut sivustot eivät ole alttiita tälle PHP-haavoittuvuudelle.

Mikä on PHP2Shell (CVE-2026-109618 ja CVE-2026-109619)?

PHP2Shell on yhteisnimi kahdelle PHP:n ytimen haavoittuvuudelle, jotka julkistettiin lokakuussa 2026. Molemmat mahdollistavat etäkoodin ajon (RCE) ilman kirjautumista ja ne on arvioitu vakavuudeltaan kriittisiksi (CVSS 9.2). Käytännössä hyökkääjä voi ajaa omaa koodiaan palvelimella, mikä voi johtaa koko järjestelmän haltuunottoon.

Aukkojen olemassaolo tuli julki ennen suunniteltua aikataulua, kun tietoa vuoti verkkoon. PHP:n kehittäjät vastasivat nopeasti ja julkaisivat hätäpäivityksen 21. lokakuuta 2026. Haavoittuvuudet löysi tietoturvayhtiö Wiz. Valitettavasti tiedon vuotaminen tarkoitti myös sitä, että hyökkääjät saivat vihjeen aikaisin: aukkojen aktiivista hyödyntämistä on havaittu verkossa jo julkistuspäivästä alkaen, ja toimivia hyökkäysesimerkkejä on julkisesti saatavilla.

Nimi PHP2Shell kuvaa lopputulosta osuvasti. Hyökkääjän tavoite on päästä PHP:stä palvelimen komentotulkkiin eli shelliin, josta käsin hän voi tehdä sivustolla ja palvelimella käytännössä mitä tahansa: asentaa haittaohjelmia, varastaa dataa tai käyttää palvelinta ponnahduslautana seuraaviin hyökkäyksiin.

Miksi haavoittuvuus nousi esiin vasta nyt?

Virheiden taustalla oleva koodi oli ollut PHP:ssä pitkään. Uutta ei ole itse bugi vaan se, että vuonna 2026 tutkijat osoittivat tekoälyn avulla, miten virheitä voidaan käytännössä hyödyntää. Vanha, vuosia uinunut virhe muuttui todelliseksi hyökkäykseksi.

Toisesta ongelmasta oli havaittu merkkejä jo vuonna 2024, mutta silloin toimivaa hyökkäystapaa ei löydetty ja korjaaminen viivästyi. Tällaista tapahtuu ohjelmistoissa usein: epäilys mahdollisesta virheestä ei vielä tarkoita, että joku osaisi käyttää sitä hyväkseen. Juuri siksi osa haavoittuvuuksista jää vuosiksi korjaamatta, kunnes joku keksii, miten ne saa laukeamaan.

Tässä tapauksessa ratkaiseva askel otettiin tekoälyn avulla. Tutkijat käyttivät tekoälyä hahmottamaan monimutkaisen hyökkäysketjun, joka ihmiseltä olisi vaatinut huomattavasti enemmän aikaa. Löytö syntyi tutkijoiden omasta tutkimustyöstä, ei havaitun tietomurron selvittämisestä, mikä on hyvä uutinen: korjaus ehti valmistua ennen laajaa väärinkäyttöä. Samalla tapaus on kuitenkin muistutus siitä, että tekoäly madaltaa kynnystä rakentaa monimutkaisia hyökkäyksiä. Vanhat, pitkään vaarattomina pidetyt virheet voivat muuttua hyödynnettäviksi, ja se on yksi syy, miksi hyökkäyspinnan pienentäminen on nyt entistäkin tärkeämpää.

Miksi tämä koskee juuri WordPressiä ja muita PHP-sivustoja?

WordPress on rakennettu PHP:n päälle, ja nämä haavoittuvuudet ovat PHP:n ytimessä, eivät yksittäisissä lisäosissa. Siksi ne koskevat jokaista WordPress-sivustoa, joka pyörii haavoittuvalla PHP-versiolla, riippumatta siitä mitä lisäosia tai teemoja on asennettu.

Tämä tekee tilanteesta poikkeuksellisen. Tavallisesti WordPress-murrot tulevat lisäosista, teemoista ja heikoista tunnuksista, kuten kirjoitimme aiemmin artikkelissa WordPress-sivustojen murrot jatkuvat. Tässä aukko on syvemmällä: se on itse PHP:ssä, jolla WordPress ajetaan. Tutkijat ovat osoittaneet, että haavoittuvuutta voidaan hyödyntää jopa uusimpia WordPress-asennuksia vastaan ilman kirjautumista.

PHP pyörittää valtavaa osaa verkosta, joten vaikutuspiiri on laaja. WordPressin lisäksi alttiita ovat esimerkiksi Drupal, Laravel ja monet räätälöidyt PHP-sovellukset. Riski on erityisen suuri silloin, kun PHP ajetaan Apachen mod_php-moduulilla, jolloin kirjautumaton pyyntö voi laukaista hyökkäyksen ennen kuin mikään sovelluksen oma suojaus ehtii reagoida. Myös PHP-FPM, php-cgi ja muut ajotavat ovat alttiita.

Mitä haavoittuvuudet tarkoittavat teknisesti?

Molemmat aukot liittyvät siihen, miten PHP käsittelee muistia pyyntöjen välillä. Yksityiskohdat ovat teknisiä, mutta ydinajatuksen voi tiivistää selkeästi.

HaavoittuvuusTyyppiMistä on kyse
CVE-2026-109618Muistin korruptoituminen muistin loppuessaJos palvelimen muisti loppuu kesken, kun PHP:n pyyntödata on vasta osittain alustettu, sitä seuraava siivous voi kohdella keskeneräistä dataa kelvollisena. Tätä voidaan käyttää koodin ajoon.
CVE-2026-109619Vapautetun muistin käyttö (use-after-free)Yhden pyynnön jäljiltä jäänyt tila voi osoittaa jo vapautettuun muistiin. Samassa työprosessissa myöhemmin käsiteltävä pyyntö voi käyttää tätä vanhentunutta tilaa hyväkseen.

Koodin ajamisen lisäksi aukot voivat vuotaa tietoa. Niiden avulla on mahdollista lukea PHP-työprosessin muistia, joka voi sisältää salasanoja, istuntotunnisteita ja API-avaimia. WordPress-sivustolla tämä voi tarkoittaa esimerkiksi tietokannan tunnusten tai kolmannen osapuolen palveluiden avainten paljastumista. Juuri siksi pelkkä paikkaaminen ei aina riitä, vaan paikkaamisen jälkeen kannattaa harkita myös salasanojen ja avainten vaihtamista.

Mitä sinun pitää tehdä nyt?

Tärkein toimenpide on yksi: päivitä PHP paikattuun versioon ja käynnistä palvelin uudelleen. Pelkkä päivitys korjaa haavoittuvuuden kokonaan. Kaikki muu on toissijaista.

Toimenpidelista PHP-sivuston omistajalle

  • Päivitä PHP paikattuun versioon. Päivitä PHP versioon 8.5.12, 8.4.27, 8.3.36 tai 8.2.35 sen mukaan, mitä haaraa käytät.
  • Käynnistä palvelu uudelleen. Käynnistä PHP-FPM tai web-palvelin uudelleen päivityksen jälkeen, jotta vanhat työprosessit eivät jää pyörimään vanhalla koodilla.
  • Vanha PHP-versio? Ota yhteys ylläpitoon. Jos käytät PHP 8.1:tä tai vanhempaa, virallista binääripäivitystä ei ole. Pyydä palveluntarjoajaasi päivittämään tuettuun versioon (8.2 tai uudempi).
  • Käytä väliaikaismitigaatioita vain hätäapuna. PHP-säätiön ohjeet, kuten pyynnön enimmäiskoon rajaaminen (post_max_size) ja session.upload_progress.enabled-asetuksen poistaminen käytöstä, pienentävät hyökkäyspintaa mutta eivät korvaa päivitystä.
  • Tarkkaile poikkeamia. Seuraa epätavallisia multipart-pyyntöjä ja muistirajan ylittymisistä kertovia virheitä, jotka voivat viitata hyödyntämisyritykseen.
  • Harkitse tunnusten vaihtoa. Koska muistia on voitu lukea, vaihda paikkaamisen jälkeen tietokannan salasanat, API-avaimet ja muut salaisuudet, jos on syytä epäillä altistumista.
  • Älä luota valelisäosiin. Vältä epävirallisia lisäosia, jotka väittävät paikkaavansa haavoittuvuuden. Vain PHP:n virallinen päivitys korjaa aukon.

Mitkä PHP-versiot ovat haavoittuvia ja mitkä paikatut?

Haavoittuvuus koskee käytännössä kaikkia PHP-versioita vuosien takaa aina PHP 8:aan asti. Alla olevasta taulukosta näet, mihin versioon kannattaa päivittää.

PHP-haaraTilaSuositus
PHP 8.5Paikattu versiossa 8.5.12Päivitä versioon 8.5.12 tai uudempaan.
PHP 8.4Paikattu versiossa 8.4.27Päivitä versioon 8.4.27 tai uudempaan.
PHP 8.3Paikattu versiossa 8.3.36Päivitä versioon 8.3.36 tai uudempaan.
PHP 8.2Paikattu versiossa 8.2.35Päivitä versioon 8.2.35 tai uudempaan.
PHP 8.1 ja vanhemmatHaavoittuva, ei virallista binääripäivitystäPäivitä tuettuun versioon (8.2 tai uudempi). Lähdekoodin korjaukset ovat saatavilla elinkaarensa päähän ehtineille versioille 7.4 - 8.1.

Jos et tiedä, mitä PHP-versiota sivustosi käyttää, kysy se palveluntarjoajaltasi tai tarkista se hallintapaneelista. Monilla jaetun webhotellin asiakkailla palveluntarjoaja hoitaa päivityksen, mutta kannattaa varmistaa, että se on todella tehty.

Miksi staattinen sivu välttää tämän kokonaan?

Staattisella sivulla ei ajeta PHP-tulkkia lainkaan. Sivut ovat valmiiksi rakennettuja HTML-tiedostoja, jotka tarjoillaan sellaisinaan nopean CDN:n kautta. Koska palvelin ei suorita PHP-koodia jokaista pyyntöä kohden, PHP:n etäkoodin ajoon perustuva haavoittuvuus ei yksinkertaisesti päde tällaiseen sivustoon.

Tässä piilee artikkelin kuvan opetus. Kolmen pienen porsaan sadussa olkimaja ja risumaja kaatuvat suden puhallukselle, mutta tiilitalo kestää. Verkossa PHP:n olkimaja ja WordPressin risumaja joutuvat jatkuvasti tuulen kohteeksi, kun uusia haavoittuvuuksia löytyy. Staattinen sivu on tiilitalo: siinä ei ole tietokantaa, kirjautumispaneelia, lisäosia eikä palvelimella ajettavaa koodia, joihin hyökkäys voisi tarttua.

On rehellistä sanoa, ettei mikään alusta ole taikaiskulla turvassa kaikelta. Staattinenkin sivu voidaan koota huolimattomasti, ja lomakkeet ja ulkoiset palvelut vaativat oman huolenpitonsa. Olennaista on, että tämä nimenomainen haavoittuvuusluokka, PHP:n etäkoodin ajo, poistuu kokonaan, kun sivustolla ei ole PHP-tulkkia. Samalla katoaa suuri osa siitä hyökkäyspinnasta, jota verkkorikolliset päivästä toiseen koettelevat.

Pitäisikö minun siirtyä pois WordPressistä?

Yksittäinen haavoittuvuus ei ole syy paniikkiin, ja se kannattaa ennen kaikkea paikata heti. Pidemmän aikavälin kysymys on kuitenkin aiheellinen. Jos sivustosi on tavallinen yrityksen esittelysivu, jossa on muutama sivu, yhteystiedot ja ehkä yhteydenottolomake, raskas PHP-pohjainen julkaisujärjestelmä tuo mukanaan hyökkäyspintaa ja ylläpitotaakkaa, jota et välttämättä tarvitse.

Tällaisessa tapauksessa staattinen sivu on kevyempi ja turvallisempi vaihtoehto. Et joudu seuraamaan viikoittaisia tietoturvapäivityksiä etkä juoksemaan jokaisen uuden PHP- tai lisäosahaavoittuvuuden perässä. Laajaan, paljon toiminnallisuutta vaativaan alustaan WordPress voi yhä olla perusteltu valinta, mutta esittelysivulle se on usein ylimitoitettu. Kirjoitimme aiheesta tarkemmin artikkelissa miksi jätimme WordPressin, ja koko kehityskaaren käy läpi verkkosivujen historia.

Tee sivut ilman PHP:tä ja ilman päivitysvahtia

Novavalo tuottaa staattisia sivuja, joita ei ajeta PHP:llä eikä WordPressillä:

  • Ei PHP-tulkkia, ei tietokantaa, ei lisäosia, joten tämän kaltainen PHP-haavoittuvuus ei koske sivustoasi.
  • Kerrot yrityksestäsi ja tekoäly rakentaa sivut, jotka tarjoillaan nopean CDN:n kautta.
  • Ei viikoittaista tietoturvahuoltoa, vaan keskityt sisältöön, et päivitysten vahtimiseen.
Kokeile Novavaloa ilmaiseksi →

Usein kysytyt kysymykset

Mikä on PHP2Shell (CVE-2026-109618 ja CVE-2026-109619)?

PHP2Shell on yhteisnimi kahdelle kriittiselle PHP:n haavoittuvuudelle, jotka julkistettiin lokakuussa 2026. Molemmat mahdollistavat etäkoodin ajon (RCE) ilman kirjautumista ja ne on luokiteltu vakavuudeltaan kriittisiksi (CVSS 9.2). Onnistunut hyökkäys voi johtaa koko palvelimen haltuunottoon.

Koskeeko tämä WordPress-sivustoani?

Kyllä, jos sivustosi pyörii haavoittuvalla PHP-versiolla. Haavoittuvuudet ovat PHP:n ytimessä, joten ne koskevat kaikkia WordPress-sivustoja lisäosista ja teemoista riippumatta. Tutkijat ovat osoittaneet, että haavoittuvuutta voi käyttää uusimpiakin WordPress-asennuksia vastaan ilman kirjautumista.

Mitä minun pitää tehdä heti?

Päivitä PHP paikattuun versioon (8.5.12, 8.4.27, 8.3.36 tai 8.2.35) ja käynnistä PHP-FPM tai web-palvelin uudelleen. Jos käytät PHP 8.1:tä tai vanhempaa, ota yhteys palveluntarjoajaasi päivityksestä tuettuun versioon. Pelkkä päivitys korjaa ongelman kokonaan.

Miksi staattinen sivu ei ole altis tälle haavoittuvuudelle?

Staattisella sivulla ei ajeta PHP-tulkkia lainkaan. Sivut ovat valmiita HTML-tiedostoja, jotka tarjoillaan CDN:n kautta. Koska palvelimella ei suoriteta PHP-koodia pyyntöä kohden, PHP:n etäkoodin ajoon perustuva haavoittuvuus ei päde tällaiseen sivustoon.

Riittääkö pelkkä mitigaatio ilman päivitystä?

Ei. PHP-säätiö julkaisi väliaikaisia mitigaatioita, jotka pienentävät hyökkäyspintaa, mutta ne eivät yksin tee asennuksesta turvallista. Vain päivitys paikattuun versioon korjaa haavoittuvuuden. Vältä myös epävirallisia lisäosia, jotka väittävät paikkaavansa ongelman.

Vuotaako haavoittuvuus salasanoja ja avaimia?

Koodin ajon lisäksi näiden haavoittuvuuksien avulla voidaan lukea PHP-työprosessin muistia, joka voi sisältää salasanoja, istuntotunnisteita ja API-avaimia. WordPressin tapauksessa tämä voi tarkoittaa esimerkiksi tietokannan tunnusten tai kolmannen osapuolen avainten paljastumista. Siksi monet suosittelevat myös salasanojen ja avainten vaihtoa paikkaamisen jälkeen.

Miksi vanha virhe on vaarallinen vasta nyt?

Virheiden taustalla oleva koodi oli ollut PHP:ssä pitkään, ja toisesta ongelmasta oli merkkejä jo vuonna 2024. Käytännön hyökkäystapaa ei kuitenkaan silloin löydetty. Vuonna 2026 tutkijat osoittivat tekoälyn avulla, miten virheitä voi hyödyntää. Tekoäly madaltaa kynnystä rakentaa monimutkaisia hyökkäyksiä, joten vanhat virheet voivat muuttua hyödynnettäviksi.

Turvallinen sivusto ilman PHP-hyökkäyspintaa

Anna tekoälyn rakentaa yrityksellesi staattinen sivusto, jolla ei ole PHP-tulkkia, tietokantaa eikä lisäosia vahdittavana. Näet lopputuloksen muutamassa minuutissa.

Aloita ilmaiseksi →

Läpinäkyvyyshuomautus: Tämä artikkeli on tuotettu tekoälyn avustuksella ja Novavalon toimitus vastaa sen sisällöstä. Artikkeli on yleistä tietoa tietoturvasta, ei korvaa virallisia tietoturvatiedotteita. Tarkista aina ajantasaiset ohjeet alla olevista virallisista lähteistä.

Luotettavat lähteet