Artikkelit PHP2Shell-haavoittuvuus: näin toimimme ja mitä opimme

PHP2Shell-haavoittuvuus: näin toimimme ja mitä opimme

Jos sivustosi on jaetuissa palveluissamme tai palvelimesi kuuluu päivityspalvelumme piiriin, eilen julkaistu kriittinen PHP-haavoittuvuus on jo korjattu ympäristössäsi. Teknisesti tiimimme suoriutui hyvin, sillä suojaukset olivat käytössä muutamassa tunnissa ja korjaukset asennettiin heti, kun ne tulivat saataville.

Yksi asia jäi kuitenkin harmittamaan meitä. Kun koko tekniikan väki keskittyi haavoittuvuuden torjumiseen, emme muistaneet ottaa viestinnän osaajia mukaan, joten asiakkaat kuulivat meistä vähemmän kuin olisi ollut hyvä. Jatkossa viestintä käynnistyy tällaisissa tilanteissa samanaikaisesti teknisen työn kanssa.

Alla käyn läpi, mistä haavoittuvuudessa oli kyse, mitä teimme ja mitä se tarkoittaa sinulle.

Mistä on kyse

Kyberturvallisuuskeskus julkaisi 21.10.2026 klo 10.06 haavoittuvuustiedotteen 37/2026 kahdesta kriittisestä PHP-haavoittuvuudesta. Niiden tunnisteet ovat CVE-2026-109618 ja CVE-2026-109619, ja kummankin vakavuus on CVSS 4.0 -asteikolla 9.2. Tietoturvayhteisössä haavoittuvuudet tunnetaan nimellä PHP2Shell.

Pahimmillaan haavoittuvuudet mahdollistavat koodin suorittamisen palvelimella etänä ilman tunnistautumista. Ne liittyvät PHP:n tiedostolatausten edistymisen seurantaan (session.upload_progress), joka on oletuksena päällä ja altistaa palvelimen, vaikka sivusto ei itse käyttäisi istuntoja. Tekniset yksityiskohdat vuotivat julkisuuteen ennen virallista korjausta, ja ensimmäisiä hyökkäysyrityksiä havaittiin jo eilen aamulla.

PHP-projekti julkaisi korjatut versiot 8.5.12, 8.4.27, 8.3.36 ja 8.2.35 eilen iltapäivällä. Vanhemmille, jo tuen ulkopuolella oleville PHP-versioille virallista korjausta ei julkaistu.

Ensimmäiset suojaukset muutamassa tunnissa

Reagoimme Kyberturvallisuuskeskuksen ilmoitukseen välittömästi. Muutaman tunnin sisällä ensimmäiset suojaustoimet olivat käytössä kaikissa jaetuissa palveluissamme sekä kaikilla päivityspalvelumme piirissä olevilla asiakaspalvelimilla.

Suojaus tarkoitti session.upload_progress-ominaisuuden kytkemistä pois päältä. Teimme muutoksen sekä Apachen php_admin_flag-asetuksella että PHP:n ini-asetuksilla, jotta sivustokohtaiset asetukset eivät voi kytkeä ominaisuutta takaisin päälle. Toimenpide katkaisee haavoittuvuuksien vahvistetut hyökkäyspolut, mutta lopullinen korjaus on aina PHP:n päivittäminen.

Muutoksella on yksi mahdollinen näkyvä sivuvaikutus. Jos sivustollasi on tiedostolatauksen edistymispalkki, joka perustuu juuri tähän PHP-toimintoon, palkki ei toistaiseksi päivity. Itse tiedostojen lataaminen toimii normaalisti.

Jaetut palvelut korjattiin klo 17.30 mennessä

Virallinen korjaus tuli saataville käyttämällemme käyttöjärjestelmäjakelulle noin klo 17, ja aloitimme asennukset heti. Jaetuissa palveluissamme korjaus oli asennettuna klo 17.30 mennessä, noin puoli tuntia julkaisun jälkeen.

Korjaus koskee ennen kaikkea kotisivutilan käyttäjiä, joiden sivustolle on valittu jokin tuetuista PHP-versioista. Vanhemmille PHP-versioille virallista korjausta ei tullut, mutta niissäkin aiemmin päivällä tehty suojaus on voimassa.

Asiakkaiden omat ympäristöt päivityspalvelussa

Jaettujen palveluiden jälkeen jatkoimme työtä asiakkaiden omissa ympäristöissä, joihin asiakas on ostanut meiltä ylläpidon eli päivityspalvelun. Asensimme korjaukset näille palvelimille sitä mukaa, kun ne tulivat saataville.

Aikatauluun vaikutti suuresti asiakkaan valitsema käyttöjärjestelmä, sillä jakelut julkaisevat korjatut paketit kukin omassa tahdissaan. Esimerkiksi Ubuntulle korjaus tuli saataville nopeasti, kun taas Red Hatille se julkaistiin huomattavasti myöhemmin. Odotuksen ajan palvelimia suojasi jo aiemmin tehty väliaikainen suojaus.

Vanhat PHP-versiot päivitettiin vaihtoehtoista reittiä

Osalla palvelimista oli käytössä niin vanha PHP-versio, ettei esimerkiksi Ubuntu julkaissut sille virallista korjausta. Jos itse käyttöjärjestelmä oli kuitenkin riittävän tuore, korjattu versio löytyi Ondřej Surýn ylläpitämästä PPA-pakettivarastosta.

Näissä tapauksissa vaihdoimme PHP:n asennuslähteeksi Ondřejn PPA:n ja päivitimme PHP:n sitä kautta. Kyseessä on Debian- ja Ubuntu-ympäristöissä laajasti käytetty pakettivarasto, jota ylläpitää Debianin PHP-pakettien pitkäaikainen ylläpitäjä.

Palomuurien hallintaliittymät suljettiin ulkoverkosta

Osa palomuureista käyttää hallintaliittymässään PHP:ta, eivätkä kaikki palomuurivalmistajat ole vielä julkaisseet laitteisiinsa korjauksia. Siksi teimme varotoimen myös ylläpitämillemme palomuureille.

Jos palomuurin HTTPS-hallintaliittymä oli avattu internetiin esimerkiksi asiakkaan toiveesta VPN-asiakasohjelman lataamista varten, olemme nyt sulkeneet sen ulkoverkosta. Näin haavoittuvuutta ei pääse hyödyntämään ennen kuin valmistajan korjaus on saatavilla ja asennettu.

Jos huomaat, ettei palomuurin hallintasivu enää avaudu ulkoverkosta, kyse on todennäköisesti tästä muutoksesta. Ota silloin yhteyttä asiakaspalveluumme osoitteeseen asiakaspalvelu@tnnet.fi, niin löydämme yhdessä turvallisen tavan hoitaa asia.

Mitä tämä tarkoittaa sinulle

Jos käytät jaettuja palveluitamme tai olet ostanut meiltä päivityspalvelun, ympäristösi on päivitetty eikä sinun tarvitse tehdä PHP:n osalta mitään. Seuraamme tilannetta edelleen ja reagoimme, jos haavoittuvuuksista tulee uutta tietoa.

Kotisivutilan ylläpitäjän ainoa tehtävä on varmistaa, että Hosterissa on valittuna tuettu PHP-versio, eli PHP 8.2 tai PHP 8.4. Tämä haavoittuvuus korjattiin poikkeuksellisesti myös vanhempiin PHP-versioihin, joten tämän tapauksen osalta nekin ovat suojattu. Normaalisti vanhat versiot eivät enää saa tietoturvakorjauksia, joten suosittelemme siksi siirtymistä tuettuun versioon nyt, jos se on vielä tekemättä.

Jos ylläpidät palvelintasi itse etkä kuulu päivityspalvelumme piiriin, päivitä PHP korjattuun versioon viipymättä ja käynnistä PHP-prosessit uudelleen. Autamme mielellämme, ja voit myös siirtää palvelimesi ylläpidon meille ottamalla yhteyttä asiakaspalveluumme. Kiitos, että luotat meihin. Viemme tämän tapauksen opit käytäntöön, jotta ensi kerralla myös tiedotus kulkee rinta rinnan korjaustyön kanssa.

Jari Lehtonen
Palvelutuotantopäällikkö

Jari Yhteystieto v2