Javítás osztott tárhelyen
Osztott tárhelyen a PHP-t a szolgáltató telepíti és frissíti, Ön nem fér hozzá a szerverhez. A dolga ezért az ellenőrzés: tudnia kell, hogy a javítás valóban felkerült.
- Nézze meg a PHP-verziót. cPanelen a „PHP verzió kiválasztása” vagy a MultiPHP Manager, Pleskben a domain „PHP beállítások” oldala mutatja. WordPressben: Eszközök › Webhely egészsége › Információ › Szerver.
- Ne csak a számot nézze. Ha 8.5.12, 8.4.27, 8.3.36, 8.2.35 vagy újabb, rendben van. Ha alacsonyabb, még lehet javított (a szolgáltató visszaportolhatta a javítást), de ezt csak ő tudja megerősíteni.
- Kérjen írásos választ. Az alábbi levelet egy az egyben elküldheti az ügyfélszolgálatnak.
- PHP 8.1 vagy régebbi esetén váltson. Készítsen mentést, ha lehet, próbálja ki tesztoldalon, majd a panelen állítsa 8.3-ra vagy 8.4-re. A régi sablonok és bővítmények új PHP-n hibázhatnak, ezért utána nézze végig a fontos oldalakat, webáruháznál a pénztárat is.
- Ha az oldal Cloudflare mögött van, a Cloudflare a PHP2Shell elleni szabályait az ingyenes csomagban is élesítette. Pro vagy magasabb csomagnál a felügyelt szabályok blokkoljanak, ne csak naplózzanak. Ez kiegészítő réteg, nem javítás: a szerver közvetlen IP-címén át a szűrő megkerülhető.
Mintalevél a tárhelyszolgáltatónakTárgy: PHP biztonsági frissítés (CVE-2026-109618, CVE-2026-109619)
Tisztelt Ügyfélszolgálat! Milyen PHP-verzió fut a(z) [domain] tárhelyen? Telepítették már a 2026. október 21-i PHP biztonsági kiadást (CVE-2026-109618, CVE-2026-109619)? Ha a javítás a verziószám változása nélkül került fel, kérem, írásban erősítsék meg, melyik csomagváltozat tartalmazza. Köszönöm!
Ami tárhelyen nem segít: a WordPress, a sablon vagy a bővítmények frissítése (jó dolog, de ezt a hibát nem javítja), egy biztonsági bővítmény telepítése, illetve a session.upload_progress.enabled kikapcsolása .user.ini fájlban vagy ini_set()-tel. A PHP leírása szerint ezek a beállítások túl későn hatnak, a támadó kérése addigra feldolgozódik.
Javítás VPS-en és konténerben
Saját szerveren a teljes lánc az Öné: a csomag frissítése, a futó folyamatok cseréje és az ellenőrzés. Az újraindítás kimaradása a leggyakoribb hiba: a lemezen már a javított PHP van, a memóriában viszont még a régi fut.
Ubuntu és Debian
Először derítse ki, melyik PHP szolgálja ki a webet. A php -v csak a parancssori változatot mutatja, a weboldalak gyakran egy másik ágon futnak.
# Mely PHP-FPM ágak futnak? (a socket nevéből látszik)
ls /run/php/
php-fpm8.3 -v
# Frissítés (az ondrej/sury tárolóból és az Ubuntu vagy Debian biztonsági tárolójából egyaránt)
sudo apt update
apt list --upgradable 2>/dev/null | grep php
sudo apt upgrade
# Újraindítás: minden futó PHP-ág és az Apache (ha mod_php-t használ)
sudo systemctl restart php8.3-fpm
sudo systemctl restart apache2
# Ellenőrzés: a verzió és az indulás ideje (a frissítés utáni legyen)
php-fpm8.3 -v
systemctl show -p ActiveEnterTimestamp php8.3-fpm
Ha a disztribúció saját PHP-csomagját használja (például Ubuntu 24.04 alapból 8.3-at hoz), a verziószám nem ugrik 8.3.36-ra, a javítás visszaportolva érkezik. Ilyenkor a csomag változásnaplójában keresse a CVE-számot:
zgrep -c "CVE-2026-109618" /usr/share/doc/php8.3-common/changelog.Debian.gz
Ha az eredmény 0, a javítás még nincs fent: nézze meg, engedélyezve van-e a biztonsági tároló, vagy várja meg a disztribúció közleményét.
AlmaLinux, Rocky Linux, RHEL
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm httpd
php-fpm -v
Remi tárolónál a php83-php-fpm jellegű csomag- és szolgáltatásnevekkel ugyanez a menet.
Docker és konténerek
A konténerben futó PHP nem frissül a gazdagéppel együtt. A képet friss alapképből kell újraépíteni, a régi konténereket pedig lecserélni. Ha a Dockerfile pontos verziót rögzít (például php:8.3.35-fpm), azt is írja át.
docker compose build --pull
docker compose up -d
docker compose exec app php -v # az „app” helyére a saját szolgáltatása neve kerül
Ha ma nem tud frissíteni: ideiglenes enyhítés
A PHP csapata néhány beállítást javasol arra az időre, amíg a frissítés nem fér bele. Ezek csökkentik a kockázatot, de nem szüntetik meg. A php.ini-be vagy a PHP-FPM pool fájljába kerülnek, utána minden PHP-folyamatot újra kell indítani.
; php.ini (a .user.ini és az ini_set() itt nem hat)
session.upload_progress.enabled = 0
fatal_error_backtraces = 0 ; csak PHP 8.5
post_max_size = 8M ; 32M, ha az oldalon van fájlfeltöltés
upload_max_filesize = 6M ; mindig kisebb, mint a post_max_size
; PHP-FPM pool, például /etc/php/8.3/fpm/pool.d/www.conf
php_admin_value[memory_limit] = -1
A memory_limit = -1 a CVE-2026-109618 kiváltó okát (a memóriakorlát elérését) zárja ki, cserébe egyetlen kérés is elviheti a szerver teljes memóriáját. Csak akkor alkalmazza, ha a PHP-folyamatok memóriáját más is korlátozza (konténer- vagy cgroup-limit) és a webszerver is szűri a kérések méretét (nginxben client_max_body_size). A CERT-EU azt javasolja, hogy ami nem frissíthető, azt átmenetileg vegye le a nyilvános internetről, a CISA pedig a PHP 8.1-es és régebbi rendszereket kapcsoltatná le a javításig.
Feltörték? Így ellenőrizze
A frissítés a jövőbeli támadást zárja ki, a múltbelit nem. Mivel az első kísérlet október 17-én történt, a naplókat ettől a naptól érdemes átnézni. A jelek külön-külön lehetnek ártalmatlanok is, együtt viszont gyanúsak.
- Memóriahiba a kérés indulásakor: „Allowed memory size … exhausted” hibaüzenet, amely a kód helyett „Unknown on line 0”-t ír, főleg sorozatban, egy folyamaton.
- Összeomló PHP-folyamatok: SIGSEGV (signal 11) a PHP-FPM naplójában.
- Szokatlan kérések: nagy, darabolt POST-kérések, sok vagy mélyen egymásba ágyazott űrlapmezővel, hosszú vagy bináris PHPSESSID süti.
- Shell a webszerver nevében: ha a
www-data felhasználó sh, bash, curl vagy wget parancsot futtat, az a legerősebb jel. - Új PHP-fájlok a feltöltési és gyorsítótár-mappákban, ahol PHP-nak nem volna szabad lennie.
# Memóriahiba a kérés indulásakor
sudo zgrep -h "Allowed memory size" /var/log/php*-fpm.log* /var/log/nginx/error.log* | grep -c "Unknown on line 0"
# Összeomló PHP-folyamatok
sudo zgrep -h "SIGSEGV" /var/log/php*-fpm.log*
# A webszerver felhasználója shellt vagy letöltőt futtat?
ps -u www-data -o pid,lstart,cmd | grep -E "sh -c|bash|curl|wget"
# Október 17. óta létrehozott PHP-fájlok a feltöltési mappákban
sudo find /var/www -path "*upload*" -name "*.php" -newermt 2026-10-17
Ha bármelyikre gyanús találat van, ne takarítson azonnal, mert a nyomokkal a bizonyítékot is eltünteti. Mentse le a naplókat, cserélje le az összes jelszót és kulcsot (adatbázis, levelezés, fizetési és API-kulcsok), az oldalt pedig egy október 17. előtti, tiszta mentésből állítsa helyre. Ehhez érdemes szakembert hívni.