# A PHP-verzió és a javítási állapot helyes ellenőrzése

> PHP-verzió ellenőrzése helyesen: így ismeri fel a javítási állapotot, a disztribúció backportjait és a futó folyamatokat, és tudja, hogy a PHP2Shell le van-e zárva.

Forrás: https://phpsos.de/hu/php2shell/php-version-pruefen/  
Állapot: 2026. 10. 25.  
Szolgáltató: PHP SOS, PHP-vészhelyzeti segítség és szerverbiztonság. Azonnali segítség WhatsAppon: https://wa.me/491736494914?text=%C3%9Cdv%C3%B6zl%C3%B6m%2C%20PHP%20SOS%21%20Seg%C3%ADts%C3%A9gre%20van%20sz%C3%BCks%C3%A9g%C3%BCnk%20a%20PHP-szerver%C3%BCnkkel.%20C%C3%A9g%3A%20%E2%80%A6%20Weboldal%3A%20%E2%80%A6

**Röviden:** A PHP-verzió ellenőrzéséhez a `php -v` nem elég. Tudnia kell, melyik PHP-verziót használja ténylegesen a webszerver, tartalmazza-e a csomag a javítást, akár régi számú backportként is, és hogy a frissítés után újraindították-e az összes folyamatot. A PHP2Shell a 8.5.12, 8.4.27, 8.3.36 és 8.2.35 verzióban javított.

## Miért nem elég önmagában a verziószám

A PHP2Shell esetében van egy világos lista a javított verziókról. A gyakorlatban mégis három helyzet vezet téves értékeléshez:

- **Több telepítés:** A parancssor PHP 8.3-at mutat, a weboldal azonban egy PHP 8.1-es poolon fut.
- **Backportok:** A disztribúciók és a tárhelyszolgáltatók a javításokat részben a meglévő csomagokba telepítik. Ilyenkor a Plesk például továbbra is 8.2.34-et mutat, noha javítva van.
- **Régi folyamatok:** Az új fájlok a lemezen vannak, a futó workerek azonban még a korábbiból származnak.

A vezetésnek és a nem műszaki olvasóknak egy egyszerű ökölszabály segít: ne csak azt kérdezze, „Milyen PHP-verziónk van?“, hanem azt is, „Le van-e zárva a PHP2Shell minden szerveren, és miből látjuk ezt?“. Egy megbízható válasz három bizonyítékot tartalmaz: verzió vagy backport, csomagállapot és az újraindítás időpontja.

A műszaki ellenőrzésnek ezért három lépése van: verzió, csomagállapot, futó folyamatok. Az alábbi parancsok kizárólag olvasók. A csomag- és szolgáltatásnevek disztribúciónként, PHP-forrásonként és tárhelyfelületenként eltérnek; a példák PHP 8.3-ból indulnak ki.

## PHP-verzió ellenőrzése a parancssorban

```bash
php -v                                  # a parancssor verziója
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: telepített ágak
php-fpm8.3 -v                           # az FPM-bináris verziója (neve disztribúciónként eltér)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"
```

RHEL, AlmaLinux vagy Rocky alatt az FPM bináris neve többnyire `php-fpm`; Software Collectionsnél vagy külső forrásoknál további verziók saját útvonalakon vannak. A Plesk és a cPanel saját PHP-telepítéseket hoz magával, amelyek a rendszer-PHP mellett léteznek. Hogyan járjon el ott, azt a [Plesk](https://phpsos.de/hu/server/plesk/) és a cPanel oldalai írják le.

Hogy egy weboldal a webes környezetben melyik PHP-verziót használja, azt a legmegbízhatóbban a pool- vagy VirtualHost-konfigurációban vagy a tárhelyfelületen látja. Egy phpinfo-oldal is megmutatja; csak rövid időre, hozzáférés-védelemmel és véletlenszerű névvel hozza létre, és utána azonnal törölje.

Megosztott tárhelynél többnyire nincs hozzáférése a parancssorhoz. Ilyenkor a tárhelyfelület mutatja a weboldalankénti beállított PHP-verziót. Hogy telepítettek-e backportot és újraindították-e, az ott ritkán áll. Itt a tárhelyszolgáltató írásos megerősítése a megbízható út.

## A csomagállapot és a backportok ellenőrzése

A csomagállapot megmutatja, mit szállított ténylegesen a disztribúciója:

```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"
```

Ha a CVE-számok egyike szerepel a changelogban, a backport benne van a telepített csomagban. Ha a bejegyzés hiányzik, az még nem bizonyítja a rést: egyes csomaggondozók másképp fogalmazzák a changelogot. Ilyenkor vesse össze a csomagverziót a disztribúciója biztonsági közleményeivel, vagy kérdezzen rá a szolgáltatónál. Egy mintát ehhez a kérdéshez a [Így kérdezze meg a tárhelyszolgáltatótól a javítási állapotot](https://phpsos.de/hu/ratgeber/hoster-patch-status-erfragen/) oldalon talál.

Fontos: minden telepített PHP-csomagot ellenőrizzen, ne csak az elsőt. Több ágat futtató szervereken gyakran az egyik javított, a másik nem.

## Tényleg az új verzió fut?

A frissítés csak akkor hatásos, ha az összes PHP-folyamatot újraindították. Vesse össze a futó folyamatok indulási idejét a frissítés időpontjával:

```bash
ps -o pid,lstart,cmd -C php-fpm8.3      # az FPM-folyamatok indítási ideje
systemctl status php8.3-fpm             # mióta fut a szolgáltatás
needrestart -r l                        # Debian/Ubuntu, ha telepítve van: megmutatja az elavult folyamatokat
```

Ha az indulási idő a frissítés előtt van, még régi folyamatok futnak. Apache mod_php-val ugyanez érvényes az Apache-folyamatokra. Hogyan indítson újra szabályosan, azt a [PHP-FPM és az összes worker újraindítása](https://phpsos.de/hu/php2shell/php-fpm-neustart/) írja le.

> **Tipp:**
> Rögzítse írásban az eredményt: szerver, PHP-verzió, csomagverzió, CVE a changelogban igen vagy nem, az újraindítás időpontja. Erre a feljegyzésre szüksége lesz a vezetésnek, a biztosítónak és egy későbbi nyomellenőrzéshez.

## Az eredmény besorolása

| Lelet | Értékelés |
|---|---|
| Hivatalos 8.5.12, 8.4.27, 8.3.36 vagy 8.2.35 verzió, a folyamatok újraindítva | A PHP2Shell le van zárva |
| Régebbi szám, a CVE-számok a csomag changelogjában, a folyamatok újraindítva | Backport telepítve, lezárva |
| Régebbi szám, nincs changelog-bejegyzés, nincs megerősítés | tisztázatlan, a szolgáltatónál kell tisztázni |
| PHP 8.1 vagy régebbi megerősített backport nélkül | nyitott, átmeneti intézkedések és migráció szükséges |
| A folyamatok régebbiek a frissítésnél | Hiányzik az újraindítás, a rés továbbra is aktív |

Ha egy szerver „tisztázatlan“ állapotban marad, kezelje úgy, mint a nyitottat: állítsa be az átmeneti intézkedéseket, és követelje a tisztázást, amíg nincs bizonyíték. A teljes verzióáttekintés a [Mely PHP-verziókat érinti?](https://phpsos.de/hu/php2shell/betroffene-php-versionen/) oldalon található.

## Hogyan segít konkrétan a PHP SOS?

A [PHP-javítási szolgáltatással](https://phpsos.de/hu/leistungen/php-patch-service/) átvesszük az ellenőrzést és az igazolást:

- **Az összes telepítés megtalálása,** a hosting-panelekből, Software Collectionsből vagy konténerekből származó másodverziókat is.
- **A csomagállapot értékelése:** hivatalos kiadás, backport vagy nyitott, a changelogból vagy a szolgáltatótól származó bizonyítékkal.
- **Az újraindítás ellenőrzése,** amíg már egyetlen folyamat sem fut régi kóddal.
- **Ellenőrzési jegyzőkönyv készítése,** amelyet belsőleg és harmadik felek előtt is használhat.


## Gyakori kérdések

**Miért mutat a php -v más verziót, mint a weboldalam?**  
Sok szerveren több PHP-verzió van telepítve. A parancssor az egyiket használja, a webszerver vagy egy FPM-pool egy másikat. Ezért azt a verziót ellenőrizze, amely ténylegesen a webes környezetben fut, például az FPM bináris vagy a tárhelyfelület segítségével.

**Hogyan ismerek fel egy backportot?**  
A disztribúciós csomagoknál a javítás gyakran a csomag changelogjában áll, sokszor a CVE-számmal. Debianon és Ubuntun az apt changelog segít, RHEL-szerű rendszereken az rpm -q --changelog. Ha a bejegyzés hiányzik, tisztázza az állapotot a szolgáltatónál.

**Ellenőrizhetem a PHP-verziót a tárhely ügyfélmenüjében?**  
Igen, a legtöbb felület megmutatja a weboldalankénti beállított verziót. Hogy telepítettek-e backportot és újraindították-e, azt ott többnyire nem látja. Ehhez a tárhelyszolgáltató írásos megerősítése a megbízható út.

## Források

- [php.net: biztonsági közlemények](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [php.net: támogatott verziók](https://www.php.net/supported-versions.php)
