Lyhyesti: cPanel PHP -päivitys PHP2Shellin jälkeen käsittää kolme vaihetta: kaikki ea-php- ja tarvittaessa alt-php-paketit korjattuun tilaan, PHP-FPM:n ja Apachen täysi uudelleenkäynnistys sekä pakettitilan dokumentointi. Palvelimen asiakkaat eivät voi asettaa tärkeimpiä väliaikaisia arvoja itse, vaan sen tekee WHM-ylläpitäjä.
Lähtötilanne cPanel-palvelimilla
PHP2Shell koostuu haavoittuvuuksista CVE-2026-109618 ja CVE-2026-109619 itse PHP:ssä. Molemmat sallivat haittakoodin suorittamisen ilman kirjautumista, ja ne on arvioitu CVSS v4.0 -pisteillä 9.2. Haavoittuvuudet koskevat PHP-FPM:ää, Apachea mod_php:n kanssa, php-cgi:tä, FrankenPHP:tä ja LiteSpeediä. PHP-projekti julkaisi 21.10.2026 versiot 8.5.12, 8.4.27, 8.3.36 ja 8.2.35.
cPanel ei tuo PHP:tä yhtenä pakettina vaan EasyApache 4:n kautta, ja jokaiselle versiolle on oma pakettisarjansa, esimerkiksi ea-php83 tai ea-php84. Joillakin palvelimilla mukana ovat lisäksi käyttöjärjestelmän paketit ja CloudLinuxissa alt-php-versiot. Jokaisella lähteellä on oma tilansa. Kokonaiskuva syntyy vasta, kun tarkistat kaikki kolme.
cPanel PHP -päivitys: tarkista kanta ja liitokset
Aloita kartoituksella. Seuraavat komennot vain lukevat eivätkä muuta mitään. Polut ja pakettien nimet ovat esimerkkejä, ja ne voivat poiketa asennuksesta riippuen.
# Asennetut PHP-versiot WHM-rajapinnan mukaan
whmapi1 php_get_installed_versions
# Versio jokaisessa ea-php-asennuksessa
for p in /opt/cpanel/ea-php*/root/usr/bin/php; do echo "$p"; "$p" -v | head -1; done
# Pakettitila (RPM-pohjaiset järjestelmät, esimerkki)
rpm -qa | grep -E '^ea-php[0-9]+-php-(cli|fpm|common)' | sort
MultiPHP Managerissa näet, mikä verkkotunnus käyttää mitäkin versiota ja onko PHP-FPM otettu käyttöön. Kirjaa versiot, jotka on asennettu mutta joita ei ole määritetty millekään verkkotunnukselle. Nekin kuuluvat päivittää tai poistaa.
Backport-korjaukset oikein tulkittuina
Kuten muillakin palveluntarjoajilla pätee: näytetty versionumero ei ole ainoa mittari. Jos korjaus toimitetaan backport-korjauksena, numero voi pysyä ennallaan. Tarkista siksi lisäksi paketin muutosloki ja palveluntarjoajan ohjeet.
# Hae paketin muutoslokista CVE-numeroita (esimerkki)
rpm -q --changelog ea-php84-php-cli | grep -iE 'CVE-2026-1096(18|19)'
Jos merkintää ei löydy, se ei automaattisesti tarkoita, että korjaus puuttuu. Se tarkoittaa kuitenkin, että tarvitset kirjallisen vahvistuksen ennen kuin luokittelet palvelimen korjatuksi. Versioiden oikeaan lukemiseen ohjeistaa sivu PHP-version ja korjaustilan tarkistus.
Päivitys, uudelleenkäynnistys ja tarkistus
Päivityksen asennat WHM:ssä järjestelmäpäivityksen kautta tai paketinhallinnalla. Sen jälkeen käynnistät kaikki PHP-prosessit uudelleen. Uudet tiedostot eivät yksin riitä, niin kauan kuin vanhat prosessit pyörivät muistissa.
# Käynnistä kaikkien versioiden PHP-FPM-palvelut uudelleen (cPanel-skripti)
/scripts/restartsrv_apache_php_fpm
# Käynnistä Apache kokonaan uudelleen
/scripts/restartsrv_httpd
# Tarkista PHP-prosessien käynnistysaika
ps -eo pid,lstart,cmd | grep -E 'php-fpm|lsphp|php-cgi' | grep -v grep
Jokaisen PHP-prosessin käynnistysajan pitäisi olla päivityksen jälkeinen. Jos näin ei ole, lopeta prosessi kohdennetusti sen oman palvelun kautta. Jos palvelimia on useita, kannattaa pitää lyhyttä pöytäkirjaa koneittain, jota voi myöhemmin käyttää todisteena.
CMS-päivitys cPanelin työkaluilla, kuten WP Toolkitilla, ei sulje PHP-haavoittuvuutta. Se on järkevä, mutta se ei korvaa PHP-päivitystä eikä uudelleenkäynnistystä.
Aseta väliaikaiset arvot keskitetysti
Jos versiota ei ole vielä korjattu, php.net suosittelee väliaikaisia toimenpiteitä, jotka eivät tarjoa täydellistä suojaa. cPanelissa asetat ne MultiPHP INI Editorissa ylläpitäjän tilassa tai suoraan kyseisen ea-php-version php.ini-tiedostossa. Asiakastilien .user.ini-tiedostojen arvot eivät riitä asetukselle session.upload_progress.enabled.
; kyseisen version palvelinlaajuinen php.ini (esimerkki)
session.upload_progress.enabled = 0
post_max_size = 32M
upload_max_filesize = 24M
Ilman latausominaisuutta php.net mainitsee arvon post_max_size = 8M. PHP 8.5:ssä lisätään fatal_error_backtraces=0. Sen jälkeen käynnistät kaikki worker-prosessit uudelleen. Muistirajan asetat cgroupien kautta, esimerkiksi CloudLinuxin rajoilla, älä RLIMIT_AS- tai RLIMIT_DATA-asetuksilla. Lisätietoja on sivulla Pikatoimet ilman korjausta.
Vastuu palvelimen ylläpitäjän ja tilien haltijoiden välillä
Monen tilin cPanel-palvelimella WHM-ylläpitäjä vastaa PHP:stä, palveluista ja palvelinlaajuisesta konfiguraatiosta. Yksittäisten tilien haltijat vastaavat sovelluksistaan, lisäosistaan ja tunnuksistaan. Kerro tilien haltijoille, milloin ja miten korjaus tehtiin, ja suosittele heitä tarkistamaan sovelluksensa poikkeamien varalta. Miltä tilanne näyttää asiakkaan näkökulmasta, kuvaa sivu Jaettu hosting.
Säilytä lokit 20.10.2026 alkaen. Korjaus ei poista haittaohjelmaa, joka on ehditty asentaa aiemmin.
Todisteeksi riittää yksinkertainen pöytäkirja palvelinta kohden: päivityksen päivämäärä ja kellonaika, luettelo ea-php- ja alt-php-paketeista versioineen ennen ja jälkeen, prosessiluettelo käynnistysaikoineen uudelleenkäynnistyksen jälkeen ja tarvittaessa pakettitoimittajan vahvistus backport-korjauksista. Tallenna pöytäkirja palvelimen ulkopuolelle. Se toimii myöhemmin todisteena asiakkaille, vakuutusyhtiöille tai tarkastajille ja helpottaa seuraavaa hätäpäivitystä, koska vaiheet on jo kuvattu. Jos käytät useita cPanel-palvelimia, kannattaa tämän sivun lukukomennot koota pieneksi skriptiksi, joka ajetaan kaikilla koneilla samalla tavalla ja joka kerää tulokset. Näin huomaat palvelinten väliset erot, esimerkiksi unohtuneen PHP-version, yhdellä silmäyksellä.
Miten PHP SOS auttaa konkreettisesti?
- Inventoimme ea-php-, alt-php- ja järjestelmäpaketit ja yhdistämme kaikki tilit PHP-versioonsa.
- PHP-korjauspalvelumme kautta päivitämme, käynnistämme kaikki palvelut uudelleen ja todistamme tilan pakettiluetteloilla ja prosessiajoilla.
- Tarvittaessa asetamme väliaikaiset arvot palvelinlaajuisesti ja ylikirjoittamattomina.
- Tarkistamme tilit tyypillisten murron jälkien varalta ja käynnistämme löydön tapauksessa haittaohjelman poiston.
- Sen jälkeen vähennämme PHP-versioiden määrää ja koventamme konfiguraation.
Usein kysytyt kysymykset
Mistä näen WHM:ssä, mitä PHP-versiota mikin verkkotunnus käyttää?
WHM:n MultiPHP Managerissa näet jokaiselle verkkotunnukselle määritetyn version ja sen, onko PHP-FPM käytössä. Täydellistä luetteloa varten kannattaa lisäksi tehdä kysely komentoriviltä. Kirjaa myös versiot, joita ei ole yhdistetty mihinkään verkkotunnukseen.
Saako cPanel-asiakas asettaa väliaikaiset arvot itse .user.ini-tiedostossa?
Asetuksesta session.upload_progress.enabled php.net kertoo nimenomaisesti, etteivät .user.ini ja ini_set() riitä. Arvo kuuluu php.ini-tiedostoon, FPM-pooliin tai palvelinkonfiguraatioon. Sen voi tehdä vain palvelimen ylläpitäjä.
Riittääkö Apachen graceful-uudelleenkäynnistys?
PHP-FPM:n kohdalla FPM-palvelut itse on käynnistettävä uudelleen, Apachen uudelleenlataus ei uusi niitä. Apache-pohjaisten PHP-käsittelijöiden kohdalla täysi uudelleenkäynnistys on varma tapa. Tarkista sen jälkeen kaikkien PHP-prosessien käynnistysaika.
Entä CloudLinux ja alt-php?
CloudLinux-palvelimilla verkkosivustot toimivat osittain omilla alt-php-paketeillaan ea-php:n sijaan. Niillä on oma pakettitilansa, ja ne on tarkistettava ja päivitettävä erikseen.