# PHP-version ja korjaustilan tarkistaminen oikein

> PHP-version tarkistus oikein: näin tunnistatte korjaustilan, jakelun backportit ja käynnissä olevat prosessit ja tiedätte, onko PHP2Shell suljettu.

Lähde: https://phpsos.de/fi/php2shell/php-version-pruefen/  
Tilanne: 25.10.2026  
Palveluntarjoaja: PHP SOS, PHP-hätäapu ja palvelimen tietoturva. Pikaapu WhatsAppilla: https://wa.me/491736494914?text=Hei%20PHP%20SOS%2C%20tarvitsemme%20apua%20PHP-palvelimemme%20kanssa.%20Yritys%3A%20%E2%80%A6%20Verkkosivusto%3A%20%E2%80%A6

**Lyhyesti:** PHP-version tarkistamiseen `php -v` ei riitä. Teidän on tiedettävä, mitä PHP-versiota verkkopalvelin todella käyttää, sisältääkö paketti korjauksen, myös backportina vanhalla numerolla, ja onko kaikki prosessit käynnistetty päivityksen jälkeen uudelleen. PHP2Shell on korjattu versioissa 8.5.12, 8.4.27, 8.3.36 ja 8.2.35.

## Miksi pelkkä versionumero ei riitä

PHP2Shellille on selkeä luettelo korjatuista versioista. Käytännössä kolme tilannetta johtaa silti virhearvioihin:

- **Useita asennuksia:** Komentorivi näyttää PHP 8.3:n, mutta verkkosivusto toimii poolissa, jossa on PHP 8.1.
- **Backportit:** Jakelut ja hosting-yritykset asentavat korjauksia osin olemassa oleviin paketteihin. Silloin esimerkiksi Plesk näyttää yhä 8.2.34, vaikka korjaus on tehty.
- **Vanhat prosessit:** Uudet tiedostot ovat levyllä, mutta käynnissä olevat workerit ovat vielä ajalta ennen niitä.

Johdolle ja ei-teknisille auttaa yksinkertainen nyrkkisääntö: älkää kysykö vain „Mikä PHP-versio meillä on?“ vaan „Onko PHP2Shell suljettu kaikilla palvelimilla, ja mistä sen näemme?“. Luotettava vastaus sisältää kolme todistetta: versio tai backport, paketin tila ja uudelleenkäynnistyksen ajankohta.

Tekninen tarkistus koostuu siksi kolmesta vaiheesta: versio, paketin tila, käynnissä olevat prosessit. Alla olevat komennot ovat pelkästään lukevia. Paketti- ja palvelunimet vaihtelevat jakelun, PHP-lähteen ja hosting-käyttöliittymän mukaan; esimerkit lähtevät PHP 8.3:sta.

## PHP-version tarkistus komentorivillä

```bash
php -v                                  # komentorivin versio
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: asennetut haarat
php-fpm8.3 -v                           # FPM-binäärin versio (nimi vaihtelee jakelun mukaan)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"
```

RHEL-, AlmaLinux- tai Rocky-järjestelmissä FPM-binääri on yleensä `php-fpm`; Software Collectionsissa tai ulkopuolisissa lähteissä muut versiot sijaitsevat omissa poluissaan. Plesk ja cPanel tuovat mukanaan omia PHP-asennuksiaan, jotka ovat järjestelmän PHP:n rinnalla. Miten niissä toimitaan, kuvaamme sivuilla [Plesk](https://phpsos.de/fi/server/plesk/) ja cPanel.

Mitä PHP-versiota verkkosivusto käyttää verkkokontekstissa, näette luotettavimmin poolin tai VirtualHostin konfiguraatiosta tai hosting-käyttöliittymästä. Myös phpinfo-sivu näyttää sen; luokaa se vain hetkeksi, pääsysuojauksella ja satunnaisella nimellä, ja poistakaa se heti sen jälkeen.

Jaetussa hostingissa teillä ei yleensä ole pääsyä komentoriville. Silloin hosting-käyttöliittymä näyttää asetetun PHP-version verkkosivustoittain. Sitä, onko backport asennettu ja käynnistetty uudelleen, siellä harvoin kerrotaan. Tässä luotettava tie on hosting-yrityksen kirjallinen vahvistus.

## Paketin tilan ja backportit tarkistus

Paketin tila osoittaa, mitä jakelunne on todella toimittanut:

```bash
# Debian/Ubuntu
apt policy php8.3-fpm
apt changelog php8.3-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"

# RHEL, AlmaLinux, Rocky, Fedora
dnf info php-fpm
rpm -q --changelog php-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"
```

Jos jompikumpi CVE-numero on muutoslokissa, backport sisältyy asennettuun pakettiin. Jos merkintä puuttuu, se ei vielä todista haavoittuvuutta: jotkin paketinylläpitäjät muotoilevat muutoslokit toisin. Silloin vertailkaa paketin versiota jakelunne tietoturvatiedotteisiin tai kysykää palveluntarjoajalta. Mallin tähän kyselyyn löydätte sivulta [Näin kysytte hosting-yritykseltä korjauksen tilaa](https://phpsos.de/fi/ratgeber/hoster-patch-status-erfragen/).

Tärkeää: tarkistakaa jokainen asennettu PHP-paketti, älkää vain ensimmäistä. Palvelimilla, joilla on useita haaroja, usein yksi on korjattu ja toinen ei.

## Toimiiko uusi versio myös todella?

Päivitys tehoaa vasta, kun kaikki PHP-prosessit on käynnistetty uudelleen. Vertailkaa käynnissä olevien prosessien käynnistysaikaa päivityksen ajankohtaan:

```bash
ps -o pid,lstart,cmd -C php-fpm8.3      # FPM-prosessien käynnistysaika
systemctl status php8.3-fpm             # kuinka kauan palvelu on ollut käynnissä
needrestart -r l                        # Debian/Ubuntu, jos asennettu: näyttää vanhentuneet prosessit
```

Jos käynnistysaika on ennen päivitystä, vanhoja prosesseja on yhä käynnissä. Apachella mod_php:n kanssa sama pätee Apache-prosesseihin. Miten käynnistätte uudelleen siististi, kuvataan sivulla [PHP-FPM ja kaikkien workerien uudelleenkäynnistys](https://phpsos.de/fi/php2shell/php-fpm-neustart/).

> **Vinkki:**
> Kirjatkaa tulos ylös: palvelin, PHP-versio, paketin versio, CVE muutoslokissa kyllä tai ei, uudelleenkäynnistyksen ajankohta. Tämän muistiinpanon tarvitsette johdolle, vakuutusyhtiölle ja myöhempää jälkien tarkistusta varten.

## Tuloksen arviointi

| Löydös | Arvio |
|---|---|
| Virallinen versio 8.5.12, 8.4.27, 8.3.36 tai 8.2.35, prosessit käynnistetty uudelleen | PHP2Shell suljettu |
| Vanhempi numero, CVE-numerot paketin muutoslokissa, prosessit käynnistetty uudelleen | backport asennettu, suljettu |
| Vanhempi numero, ei merkintää muutoslokissa, ei vahvistusta | epäselvä, selvitettävä palveluntarjoajalta |
| PHP 8.1 tai vanhempi ilman vahvistettua backportia | auki, tarvitaan väliaikaisia toimenpiteitä ja siirtymä |
| Prosessit päivitystä vanhempia | uudelleenkäynnistys puuttuu, haavoittuvuus yhä aktiivinen |

Jos palvelin jää tilaan „epäselvä“, käsitelkää sitä kuin avointa: asettakaa väliaikaiset toimenpiteet ja pitäkää selvitys käynnissä, kunnes todiste on olemassa. Täydellinen versioyleiskatsaus löytyy sivulta [Mitkä PHP-versiot ovat haavoittuvia?](https://phpsos.de/fi/php2shell/betroffene-php-versionen/).

## Miten PHP SOS auttaa konkreettisesti?

[PHP-korjauspalvelun](https://phpsos.de/fi/leistungen/php-patch-service/) kautta hoidamme tarkistuksen ja todisteen:

- **Löydämme kaikki asennukset,** myös hosting-paneelien, Software Collectionsin tai konttien toissijaiset versiot.
- **Arvioimme paketin tilan:** virallinen julkaisu, backport vai auki, muutoslokin tai palveluntarjoajan todisteineen.
- **Tarkistamme uudelleenkäynnistyksen,** kunnes mikään prosessi ei enää käytä vanhaa koodia.
- **Laadimme tarkistuspöytäkirjan,** jota voitte käyttää sisäisesti ja kolmansille osapuolille.


## Usein kysytyt kysymykset

**Miksi php -v näyttää eri version kuin verkkosivustoni?**  
Monella palvelimella on asennettu useita PHP-versioita. Komentorivi käyttää yhtä, verkkopalvelin tai FPM-pooli toista. Tarkistakaa siksi versio, joka todella toimii verkkokontekstissa, esimerkiksi FPM-binäärin tai hosting-käyttöliittymän kautta.

**Miten tunnistan backportin?**  
Jakelupaketeissa korjaus on usein paketin muutoslokissa, usein CVE-numeron kanssa. Debianissa ja Ubuntussa auttaa apt changelog, RHEL-tyyppisissä järjestelmissä rpm -q --changelog. Jos merkintää ei ole, selvittäkää tila palveluntarjoajalta.

**Voinko tarkistaa PHP-version hosting-asiakasvalikosta?**  
Kyllä, useimmat käyttöliittymät näyttävät asetetun version verkkosivustoittain. Sitä, onko backport asennettu ja käynnistetty uudelleen, ette yleensä näe siellä. Siihen luotettava tie on hosting-yrityksen kirjallinen vahvistus.

## Lähteet

- [php.net: tietoturvatiedotteet](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [php.net: tuetut versiot](https://www.php.net/supported-versions.php)
