php2shell: két kritikus PHP-hiba.
Mit tegyél ma, attól függően, hol fut az oldalad?

📅 2026. október 21. ⏱ 12 perc olvasás ✍️ Fehér István, Digital Dynamics

Utoljára frissítve: 2026. október 21., 23:40 (CEST). A cikket frissítjük, ahogy a hazai szolgáltatók visszajeleznek. Frissítési napló

Hálózati kapcsoló optikai kábelekkel, kék fényben
Fotó: Freepik
Nem vagy rendszergazda? Az egyszerű változat öt percben elmondja, mi a teendőd.

A PHP projekt 2026. október 21-én, 16:00-kor (CEST) soron kívüli biztonsági kiadást tett közzé két kritikus, hitelesítés nélkül kihasználható távoli kódfuttatási hibára: CVE-2026-109618 és CVE-2026-109619, közös nevükön php2shell. Mindkettő CVSS 4.0 szerint 9,2. Javított verziók: 8.5.12, 8.4.27, 8.3.36, 8.2.35. Lent az áll, amit mi ma megtettünk a saját szerverünkön, és az, hogy neked mi a teendőd attól függően, hol fut az oldalad.

Röviden

Mi történt, és mi a két hiba

Október 20-án a PHP előzetes figyelmeztetést adott ki, hogy másnap két kritikus hibát javít. A CVE-azonosítók kiszivárogtak, és a kiadás a tervezett október 22. helyett 21-én, 14:00 UTC-kor megjelent. A Cloudflare már hajnali 05:02-kor (CEST) élesítette a tűzfalszabályait, vagyis a nagy szolgáltatók előre megkapták a részleteket.

A PHP tanácsadója a két hibát így írja le (saját fordításban):

Hétköznapi nyelven: a PHP a kérések között megosztott worker-folyamatokban fut, és a két hiba azt használja ki, hogy hibahelyzetben (memóriahiány, végzetes hiba) a takarítás hiányos marad. A Sansec elemzése szerint a sérülékeny kód a PHP 5.4-ig nyúlik vissza, tehát gyakorlatilag minden ma futó PHP érintett. A PHP megerősítette, hogy a mod_php-nál létezik bemutatott kihasználás, ahol egy hitelesítés nélküli kérés már az alkalmazáskód futása előtt elindítja a támadást.

Javított verziók, disztribúciós csomagok, lejárt ágak

PHP-ágJavított verzióMegjegyzés
8.58.5.12A 8.5-ös ágon a fatal_error_backtraces is érintett út.
8.48.4.27Debian 13 (trixie): 8.4.27-1~deb13u1, DSA-6574-1.
8.38.3.36Ubuntu 24.04: csomagverzió 8.3.6-0ubuntu0.24.04.13, USN-8948-1. A php -v 8.3.6 marad.
8.28.2.35Debian 12 (bookworm): 8.2.35-1~deb12u1, DLA-4848-1. A 8.2 ág 2026. december 31-én lejár.
8.1, 8.0, 7.4nincs kiadásMinimális forrásjavítás a PHP-tól (PHP-8.1-CVE-2026-109618-109619 és társai), a disztribúciók visszaportolják. Ubuntu 22.04 (php8.1): az USN-8948-1 szerint javítva.
7.3 és régebbisemmiErre az ágra nincs javítás, a verzióváltás az egyetlen út.

A Remi repo (gyakori CentOS, Alma, Rocky szervereken) 21-én még nem adott frissítést, és a bérelt tárhelyeken használt CloudLinux és cPanel csomagok is később érkeznek, mint a sima disztribúciós csomagok. Ezért a bérelt tárhelyek egy része később lesz javítva, mint egy saját VPS. Ez a kérdés a szolgáltatódnak szól, nem neked kell megoldanod.

Teendők aszerint, hol fut az oldalad

1. Bérelt (osztott) tárhely: cPanel, Plesk, DirectAdmin

A PHP-t a szolgáltató frissíti, te nem férsz hozzá a csomagokhoz. A teendőd: nézd meg a vezérlőpulton a PHP-verziót (cPanel: „Select PHP Version” vagy „MultiPHP Manager”, Plesk: a domain „PHP beállítások” lapja), és kérj írásos visszaigazolást a szolgáltatótól. Ha több PHP-verzió közül választhatsz, és a tiéd 7.x vagy 8.0/8.1, most jó alkalom átállni 8.3-ra vagy 8.4-re, mert azokra biztosan jön csomag. Előtte egy teszt-aldomainen próbáld ki, hogy az oldalad fut-e rajta.

2. Menedzselt rendszer: Shoprenter, UNAS, Wix, Webnode, menedzselt WordPress

Itt a szolgáltató üzemelteti a teljes szervert, neked a PHP-hoz nincs hozzáférésed, teendőd sincs. Egy rövid kérdést érdemes feltenni az ügyfélszolgálatnak, és eltenni a választ.

3. VPS vagy saját szerver: te frissítesz

Ubuntu 24.04, Apache + mod_php (ezt futtatjuk mi is):

sudo apt update
apt-cache policy libapache2-mod-php8.3 | head -3   # Candidate: 8.3.6-0ubuntu0.24.04.13
sudo apache2ctl configtest                          # "Syntax OK" nélkül ne menj tovább
sudo apt install --only-upgrade $(dpkg -l 'php8.3*' libapache2-mod-php8.3 | awk '/^ii/{print $2}')
dpkg -l libapache2-mod-php8.3 | tail -1             # .13 kell
ps -o lstart -C apache2 | head -2                   # újraindult-e az Apache a frissítés után

Ubuntu/Debian, PHP-FPM: ugyanez a csomagkör a php8.x-fpm csomaggal, utána sudo systemctl restart php8.3-fpm. Nézd meg, hogy tényleg újraindult minden worker, mert a régi folyamatokban a régi kód fut tovább.

Debian 12/13: apt update && apt install --only-upgrade 'php8.2*' (bookworm), illetve 'php8.4*' (trixie), aztán FPM- vagy Apache-újraindítás. A javított csomagverziók a fenti táblázatban.

Docker: a hivatalos php image-ek 8.3.36, 8.4.27, 8.5.12 címkéi tartalmazzák a javítást. Nem elég a konténert újraindítani: új image-et kell húzni és újraépíteni (docker compose pull && docker compose up -d --build). Ha a Dockerfile fix verzióra mutat (például php:8.3.30-fpm), emeld meg.

Remi, Ondřej PPA, egyéb külső tároló: nézd meg a tároló saját közleményét. A Remi 21-én még nem adott csomagot. Ha nem tudsz várni, a lenti enyhítések jönnek, és figyeld a tárolót.

Két tanulság a saját frissítésünkből: ne futtass vak apt upgrade-et, mert ha a gépen Docker is fut, a docker-ce frissítése újraindítja az összes konténert. És ha több szolgáltató több szerverén van oldalad, írd fel egy listába, melyiket mikor erősítették meg, mert holnapután már nem fogsz emlékezni.

4. Ügynökség vagy fejlesztő kezeli

Kérdezd meg, hol fut az oldal, és mikor települt a javítás. Egy jó válasz konkrét: szolgáltató, PHP-ág, csomagverzió, időpont. Ha a válasz „a WordPress naprakész”, az nem erre a kérdésre felel.

5. Cloudflare vagy más WAF van előtte

A Cloudflare a saját közlése szerint 03:02 UTC óta szűri a felismert támadási mintákat, és látta, hogy a támadók módosítgatják a terhelést a szabályok megkerülésére. Egy WAF időt ad, de nem helyettesíti a frissítést. A Cloudflare zárómondata is ez: frissítsd a PHP-t, és hagyd bekapcsolva a védelmet.

Ha most nem tudsz frissíteni

A PHP hivatalos enyhítései, a saját figyelmeztetésükkel együtt: ezek „csökkentik a kitettséget bizonyos támadási utakon, de nem teszik biztonságossá a telepítést”.

Webáruháznál a Sansec egy durvább, átmeneti lépést is ajánl: a multipart/form-data kérések tiltása a webszerveren, vagy a bolt átmeneti csak-olvasható módba tétele, amíg a frissítés megtörténik. Ez feltöltést és egyes űrlapokat is megtör, tehát csak tudatosan, rövid időre.

Hogyan ellenőrizd, hogy tényleg javítva van

Kihasználják-e már?

Az első nap jelentései ellentmondásosak, ezért érdemes forrás szerint nézni:

A gyakorlati következtetés nem függ attól, melyik forrásnak van igaza: a javítás nyilvános, a hibát a támadók is látják, a kérdés napok, nem hetek.

Mit csináltunk mi ma

A saját szerverünk Ubuntu 24.04-en fut, Apache prefork + mod_php, 69 virtuális hoszttal (39 domain), köztük ügyféloldalakkal. Ma este ezt csináltuk, időbélyeggel (CEST):

Egy dolog, amire nem számítottunk: a php -v a frissítés után is 8.3.6-ot ír. Ez Ubuntun normális, a javítás a csomagban van, a verziószám nem változik. Aki csak a PHP verzióját nézi, tévesen hiheti, hogy nincs javítva, vagy fordítva, hogy már megvan.

Nem tudod, hol fut az oldalad, vagy nem kaptál választ a szolgáltatótól?

Írd meg a domainedet, és megnézzük, mi fut alatta. Az ügyfeleinknél, akiknek karbantartási csomagjuk van, ez a frissítés ma este megtörtént, külön kérés nélkül.

Írj nekünk →

Gyakori kérdések

Elég, ha frissítem a WordPresst és a bővítményeket?

Nem. A hiba a PHP-ban van, nem a WordPressben. A WordPress fejlesztői is közölték, hogy nem készül és nem is kell WordPress-frissítés ehhez. A javítást a szerver PHP-jának frissítése adja.

PHP 7.4-en vagy 8.1-en fut az oldalam. Mi van velem?

Hivatalos kiadás nincs ezekre az ágakra. A PHP minimális forrásjavítást adott a 7.4, 8.0 és 8.1 ághoz, a disztribúciók (például az Ubuntu 22.04 a php8.1-re) visszaportolják. Ha bérelt tárhelyen vagy, a szolgáltatótól függ. Középtávon a verzióváltás az egyetlen megoldás, mert ezek az ágak más hibákra sem kapnak már javítást.

Shoprenteren, UNAS-on vagy Wixen van a boltom. Kell tennem valamit?

Nem, ezeknél a szolgáltató üzemelteti a szervert, és ő frissít. Egy visszaigazolást kérj az ügyfélszolgálattól.

Cloudflare van az oldalam előtt. Akkor védett vagyok?

Részben. A Cloudflare tűzfalszabályai a felismert mintákat szűrik, és ez időt ad, de a Cloudflare maga is azt írja, hogy frissíteni kell. A támadók már a kiadás napján módosított terhelésekkel próbálkoztak.

Honnan tudom, hogy már feltörték az oldalam?

Biztos jelet ma még egyik forrás sem publikált. Gyanús: ismeretlen PHP-fájlok a webgyökérben vagy a feltöltési mappákban, módosított index.php vagy .htaccess, új adminfelhasználó, új ütemezett feladat, a naplóban szokatlan, nagy méretű multipart/form-data POST-kérések. Ha bármelyik igaz, a frissítés mellett jelszócsere és a fájlok összevetése egy korábbi mentéssel a következő lépés.

Mennyi ideig áll az oldal a frissítés alatt?

Apache mod_php-nál egy újraindítás, jellemzően 1–3 másodperc. PHP-FPM-nél a workerek újraindítása, hasonló nagyságrend. A PHP-sessionök fájlalapú tárolásnál megmaradnak.

Kell jelszót cserélnem?

Önmagában a frissítés miatt nem. Ha a fenti gyanús jelek bármelyikét látod, vagy az oldal napokig javítatlanul futott nyilvános támadási kísérletek mellett, akkor igen: admin, adatbázis, FTP/SSH és a szerveren tárolt API-kulcsok.

Források

Frissítési napló