Ajankohtainen tilanne: PHP2Shell. Kaksi kriittistä PHP-haavoittuvuutta (CVSS 9.2) sallii haittakoodin suorittamisen ilman kirjautumista. Korjaukset 21.10.2026 alkaen.Mitä nyt on tehtävä →

PHP End of Life: vanhentuneiden versioiden riskit

Mitä PHP-version tuen päättyminen tarkoittaa, mitkä haarat saavat PHP2Shellin jälkeen yhä viralliset korjaukset ja miten siirtymästä tulee hallittava.

Tilanne Lukuaika 4 minOppaat

Lyhyesti: PHP End of Life tarkoittaa, ettei PHP-projekti enää julkaise tietoturvapäivityksiä kyseiselle haaralle. PHP2Shell näyttää seuraukset selvästi: PHP 8.1:lle ja vanhemmille ei ole virallista korjausta, ja PHP 8.2:n tuki päättyy 31.12.2026. Joka toimii tänään vanhalla haaralla, kannattaa suunnitella siirtymä nyt, ei vasta seuraavassa hätätilanteessa.

Mitä PHP End of Life tarkoittaa

PHP-projekti ylläpitää jokaista PHP-haaraa, esimerkiksi 8.2:ta tai 8.3:a, vain rajatun ajan. Ensin tulevat virheenkorjaukset ja tietoturvapäivitykset, myöhemmin enää tietoturvapäivitykset. Sen jälkeen tuki päättyy kokonaan. Ajankohdat julkaisee php.net tuettujen versioiden sivulla.

Tuen päätyttyä ohjelmisto toimii kyllä edelleen. Jos uusi haavoittuvuus tulee tietoon, PHP-projektilta ei kuitenkaan enää tule korjausta. Palvelin pysyy haavoittuvana, kunnes joku muu parantaa tilannetta tai vaihdatte tuettuun haaraan.

Johdolle ja IT-päälliköille tämä on ennen kaikkea suunnittelukysymys. Siirtymä voidaan valmistella rauhassa. Kriittisen ilmoituksen jälkeen kiireessä se käy kalliiksi ja riskialttiiksi.

Mitä PHP2Shell kertoo vanhentuneista versioista

PHP-projekti julkaisi 21.10.2026 korjaukset kahteen kriittiseen haavoittuvuuteen, CVE-2026-109618 ja CVE-2026-109619. Molemmat sallivat haittakoodin suorittamisen etänä ilman kirjautumista, ja niiden pistemäärä on CVSS v4.0 9.2. Ammattilehdistön mukaan haavoittuvia ovat lähes kaikki versiot aina PHP 5.4:ään asti.

Haara Tila PHP-projektin mukaan PHP2Shell-korjaus
PHP 8.5 tuettu 8.5.12
PHP 8.4 tuettu 8.4.27
PHP 8.3 tuettu 8.3.36
PHP 8.2 tuettu 31.12.2026 asti 8.2.35
PHP 8.1, 8.0, 7.4 ei virallisia päivityksiä vain vähäisiä lähdekoodin backporteja
PHP 7.3 ja vanhemmat ei virallisia päivityksiä ei PHP-projektin backportia

Versioille 8.1 ja vanhemmat jää siis vain jakeluiden tai hosting-yritysten backporttien tie. Nämä näyttävät usein yhä vanhaa versionumeroa, vaikka ne on korjattu. Onko backport asennettu, voi vahvistaa sitovasti vain palveluntarjoaja. Yksityiskohdat ovat sivulla PHP 8.1 ja vanhemmat: mikä nyt pätee, täydellinen yleiskatsaus sivulla Mitkä PHP-versiot ovat haavoittuvia?.

Tärkeää

PHP 8.2 sai PHP2Shell-korjauksen vielä, mutta sen tuki päättyy 31.12.2026. Joka siirtyy nyt versiosta 8.1, kannattaa suunnata suoraan uudempaan haaraan.

Vanhentuneiden PHP-versioiden riskit yleiskuvana

Tietoturvariski on etualalla, mutta ei ainoa. Vanhentuneet PHP-versiot tuovat mukanaan muitakin ongelmia:

  • Ei korjauksia uusiin haavoittuvuuksiin: Jokainen tuleva heikkous jää avoimeksi tai riippuu kolmansien osapuolten backporteista.
  • Vanhentuneet kirjastot: Ajantasaiset paketit edellyttävät uudempia PHP-haaroja. Kirjastojen tietoturvakorjauksia ei silloin voi enää asentaa, kuten opas composer audit osoittaa.
  • Riippuvuus palveluntarjoajasta: Hosting-yritykset veloittavat vanhoista versioista joskus lisämaksuja tai lopettavat tuen. Määräajan sanelee silloin palveluntarjoaja, ei te.
  • Todistusongelmat: Vakuutusyhtiölle, toimeksiantajille tai auditoinneissa tukemattoman version perusteleminen on vaikeaa. Syntyykö siitä sopimuksellisia tai oikeudellisia seurauksia, selvittäkää vakuutusyhtiön tai asianajajan kanssa.
  • Kasvava siirtymätyö: Mitä suurempi ero nykyiseen versioon, sitä enemmän koodia on muutettava.

Erityisen usein kosketettuja ovat vanhemmat verkkokauppajärjestelmät ja pitkään koskemattomat yksilölliset kehitystyöt. Tyypillinen esimerkki on Shopware 5, joka toimii usein yhä vanhemmilla PHP-haaroilla.

Nykytilan kartoitus: mitkä PHP-versiot teillä toimivat?

Ensimmäinen vaihe on täydellinen kuva. Monella palvelimella toimii useita PHP-versioita rinnakkain, esimerkiksi vanhaa verkkosivustoa varten, jota kukaan ei enää muista. Nämä komennot vain lukevat:

# Komentorivin versio
php -v
# Asennetut versiot Debianissa/Ubuntussa
ls /etc/php/
# Asennetut versiot Pleskissä
ls /opt/plesk/php/ 2>/dev/null
# Käynnissä olevat PHP-prosessit, joiden nimessä on versio
ps -eo user,cmd | grep -E "[p]hp-fpm|[p]hp[0-9.]*-cgi|[l]sphp" | sort | uniq -c

Kirjatkaa jokaisesta verkkosivustosta: verkkotunnus, PHP-versio, ajotapa, CMS ja sen versio, vastuuhenkilö. Tämä luettelo on samalla hätäsuunnitelmanne perusta. Jaetussa hostingissa versiot löytyvät yleensä hosting-yrityksen asiakasvalikosta.

Siirtymän suunnittelu: näin etenette

Siirtymä tuettuun haaraan noudattaa yleensä samoja vaiheita järjestelmästä riippumatta:

  1. Määrittäkää tavoite: valitkaa haara, jota php.net:n mukaan tuetaan vielä mahdollisimman pitkään ja joka valmistajan järjestelmävaatimusten mukaan sopii CMS:ään.
  2. Tarkistakaa yhteensopivuus: CMS, laajennukset, teemat ja oma koodi. Tiedot löytyvät kunkin valmistajan virallisilta sivuilta.
  3. Pystyttäkää staging: kopio verkkosivustosta uudella PHP-versiolla, tietokanta mukaan lukien.
  4. Testatkaa: kaikki tärkeät toiminnot yhteydenottolomakkeesta tilausprosessiin sekä virheloki varoitusten varalta.
  5. Vaihtakaa ja käynnistäkää uudelleen: vaihtakaa versio, käynnistäkää kaikki PHP-prosessit uudelleen, tarkistakaa toiminta ja virheloki.

Suunnitelkaa realistisesti. Pieni verkkosivusto ajantasaisella CMS:llä vaihtuu usein nopeasti. Vuosien mittaan kasvanut verkkokauppa, jossa on paljon laajennuksia ja omaa koodia, voi sen sijaan vaatia koodin ja laajennusten muokkausta aina verkkokauppajärjestelmän uuteen pääversioon siirtymiseen asti. Selvittäkää ajoissa, kuka päättää sisäisesti, mikä budjetti on käytettävissä ja onko ulkopuolisia kehittäjiä otettava mukaan.

Sopikaa lisäksi, miten jatkossa seuraatte tuen päättymisiä. Kiinteä vuosittainen ajankohta, jolloin vertaatte verkkosivustojenne luetteloa php.net:n tietoihin, estää saman pullonkaulan syntymisen uudelleen kahden vuoden kuluttua.

Siirtymään asti kannattaa käyttää php.netin väliaikaisia toimia, esimerkiksi session.upload_progress.enabled=0 palvelimen asetuksissa. Ne eivät ole täydellinen suoja, mutta ne pienentävät riskiä.

Miten PHP SOS auttaa konkreettisesti?

  • Kartoitamme kaikki palvelimenne PHP-versiot, ajotavat ja sovellukset.
  • Arvioimme riskin verkkosivustoittain ja sovimme kanssanne järjestyksestä ja kohdeversiosta.
  • Otamme siirtymään asti käyttöön väliaikaisia toimia ja hankimme palveluntarjoajalta vahvistuksen backporteista.
  • Siirrämme staging-ympäristön kautta ja dokumentoimme testin ja käyttöönoton.

Kulun kuvaa palvelu PHP 8.1 ja vanhemmat: siirtymä tuettuun versioon.

Usein kysytyt kysymykset

Milloin PHP 8.2:n tuki päättyy?

PHP 8.2:n tuki PHP-projektissa päättyy 31.12.2026. Haara sai PHP2Shell-korjauksen vielä versiossa 8.2.35, mutta myöhempiin haavoittuvuuksiin ei sen jälkeen ole odotettavissa virallista päivitystä.

Saako PHP 8.1 korjauksen PHP2Shelliä vastaan?

PHP-projekti ei enää julkaise virallisia päivityksiä versiolle 8.1 eikä vanhemmille. Vain versioille 7.4, 8.0 ja 8.1 on vähäisiä lähdekoodin backporteja. Se, tuoko hosting-yrityksenne tai jakelunne ne käyttöön ja miten, teidän on kysyttävä palveluntarjoajalta.

Onko vanha PHP-versio hosting-yrityksen backportien kanssa turvallinen?

Backportit voivat sulkea yksittäisiä haavoittuvuuksia, mutta ne eivät korvaa tuettua haaraa. Ne riippuvat palveluntarjoajasta, tulevat usein myöhemmin eivätkä kata jokaista haavoittuvuutta. Pysyvänä ratkaisuna ne eivät siksi sovi.

Mistä tiedän, toimiiko CMS:ni uudella PHP-versiolla?

Tarkistakaa järjestelmävaatimukset valmistajan virallisilta sivuilta ja testatkaa staging-ympäristössä. Lisäosissa ja teemoissa pätee sama, sillä ne ovat usein todellinen pullonkaula.

Lähteet

Pikayhteys

Jokainen tunti on tärkeä. Kirjoittakaa meille nyt.

Kuvatkaa lyhyesti järjestelmä, PHP-versio ja havainnot. Otamme yhteyttä, selvitämme tilanteen ja työskentelemme etänä, kunnes tapaus on käsitelty loppuun ja dokumentoitu.

Pikaapu