Röviden: A CVE-2026-115560 egy tudnivaló, amelyet a php.net 2026. október 23-án tett közzé. Eszerint távoli kódfuttatás csak szokatlan session-konfigurációnál lehetséges. A következő rendes hibajavító kiadásig a megoldás: a session.upload_progress.enabled=0 beállítása a szerver oldalán, és az összes worker újraindítása.
Mi a CVE-2026-115560?
Két nappal a PHP2Shell rések, a CVE-2026-109618 és a CVE-2026-109619 javításai után a PHP-projekt újabb tudnivalót tett közzé. A CVE-2026-115560 a PHP session-feldolgozását érinti a session upload progress funkcióval összefüggésben, amely a folyamatban lévő fájlfeltöltések előrehaladását a sessionben tárolja.
A php.net szerint kártékony kód távoli futtatása lehetséges, de csak szokatlan konfigurációnál. A teljes advisory minden részlettel a következő rendes hibajavító kiadással fog érkezni. Addig az ismeretek tudatosan szűkösek.
Mit csinál a session upload progress?
A session upload progress a PHP egy kényelmi funkciója. Ha egy látogató nagyobb fájlt tölt fel, a PHP a feltöltés alatt folyamatosan adatokat ír a sessionbe az előrehaladásról: mennyi adat érkezett már meg, és melyik fájlt viszik át éppen. Egy alkalmazás ezeket az adatokat párhuzamosan lekérdezheti, és belőlük folyamatjelzőt építhet.
A gyakorlatban ezt kevés alkalmazás használja, mert a modern feltöltési űrlapok az előrehaladást többnyire közvetlenül a böngészőben mérik. A PHP-ban a funkció azonban alapértelmezetten be van kapcsolva. Ezért szerepel egyaránt a CVE-2026-115560-nál és a PHP2Shell elleni átmeneti intézkedések között: amire nincs szükség, annak ki kell lennie kapcsolva.
Mikor érinti a szervert a CVE-2026-115560?
A php.net tudnivalója szerint három feltételnek kell együtt teljesülnie:
- A konfigurációban a
session.serialize_handlerértékephp_binaryvagyphp_serialize. - Az alkalmazás futásidőben az
ini_set()-telphp-re állítja át ezt az értéket, mielőtt meghívja asession_start()-ot. - A session upload progress aktív.
A session.serialize_handler alapértéke php. Egy átállítás a konfigurációban és egy visszaállítás a kódban szokatlan, de előfordul kinőtt saját fejlesztéseknél vagy saját session-kezelést alkalmazó könyvtáraknál. Hogy ez Önre igaz-e, az ellenőrizhető.
Így ellenőrizze a konfigurációját
Először a hatályos értékeket. A CLI más php.ini-t olvashat, mint a PHP-FPM vagy a mod_php; ezért ellenőrizze a webszerver vagy az FPM-pool konfigurációját is.
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null # az elérési út disztribúciónként eltér
Ezután az alkalmazáskód. A következő keresés kizárólag olvasó, és azokat a helyeket mutatja, ahol a handlert futásidőben beállítják:
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
Ha a keresés nem talál semmit, és a handler a konfigurációban php-re van állítva, a leírt kombináció valószínűtlen. A session upload progresst ennek ellenére érdemes kikapcsolni, mert a php.net ugyanezt a beállítást a PHP2Shell elleni átmeneti intézkedésként is megnevezi.
Megoldás: session.upload_progress.enabled=0
Az értéket a php.ini-ben, az FPM-poolban vagy a szerverkonfigurációban állítsa be. A php.net szerint kifejezetten nem az ini_set()-en vagy a .user.ini-n keresztül, mert ott túl későn lép érvénybe, vagy az alkalmazás felülírhatja.
; php.ini (minden pool és SAPI számára, amely ezt a fájlt olvassa)
session.upload_progress.enabled = 0
; vagy az FPM-poolban
php_admin_flag[session.upload_progress.enabled] = off
# Apache mod_php-val, a VirtualHostban vagy a szerverkonfigurációban
php_admin_flag session.upload_progress.enabled off
Ezután indítsa újra az összes PHP-workert, például systemctl restart php8.3-fpm paranccsal, vagy mod_php esetén az Apache-ot. A csomag- és szolgáltatásnevek disztribúciónként eltérnek. Újraindítás nélkül a régi beállítás fut tovább. Többet erről a PHP-FPM és az összes worker újraindítása oldalon talál.
Az újraindítás után ellenőrizze, hogy a beállítás tényleg érvényesül-e: webes környezetben, nem csak a parancssorban. Egy röviden felállított, hozzáférés-védett phpinfo-oldal megmutatja a hatályos értéket; utána azonnal törölje.
Besorolás a PHP2Shell mellett
A CVE-2026-115560 lényegesen szűkebb, mint a két PHP2Shell-rés, amelyek a szokásos üzemmódokban különleges konfiguráció nélkül is érvényesülnek. Aki épp priorizálni kényszerül, előbb telepítse a PHP2Shell frissítést, majd állítsa be a session.upload_progress.enabled=0 értéket. A kettő együtt megvalósítható egy karbantartási időablakban.
A vezetés és a nem műszaki olvasók számára: a CVE-2026-115560 nem ok a nyugtalanságra, de tétel a listán. A beállítás gyorsan megtehető, alig valamelyik alkalmazásra hat érezhetően, és egyúttal lefedi a PHP2Shell elleni egyik átmeneti intézkedést. A php.net további átmeneti intézkedései az Azonnali intézkedések, ha még nem tud javítani oldalon vannak, a session-konfigurációval kapcsolatos általános tudnivalók a Munkamenetek biztosítása PHP-ban oldalon.
Amit még nem tudunk: pontosan mely PHP-verziók érintettek, és melyik kiadás hozza a javítást. Ezt az oldalt frissítjük, amint az advisory megjelenik.
Hogyan segít konkrétan a PHP SOS?
A szerverkeményítés keretében tartósan és ellenőrizhetően hajtjuk végre a megoldást:
- A konfiguráció olvasása: a hatályos session-értékek SAPI-nként, poolonként és virtuális hostonként.
- A kód átvizsgálása: azok a helyek, ahol a handlert vagy a session-beállításokat futásidőben módosítják.
- Kikapcsolás a helyes helyen: a php.ini-ben, a poolban vagy a szerverkonfigurációban, az alkalmazás által nem felülírhatóan, utólagos újraindítással.
- Követés: Amint megjelenik a hibajavító kiadás, telepítjük, és dokumentáljuk az állapotot.
Gyakori kérdések
A CVE-2026-115560 része a PHP2Shell-nek?
A közlemény két nappal a PHP2Shell javítások után érkezett, és szintén magát a PHP-t érinti. Önálló rés azonban, saját CVE-számmal, és csak egy bizonyos, szokatlan konfigurációnál érvényesül. Az október 21-i PHP2Shell frissítések az eddigi állás szerint nem javítják.
Van már frissítés a CVE-2026-115560 ellen?
A 2026. 10. 25-i állás szerint nincs. A php.net bejelenti, hogy a teljes advisory a következő rendes hibajavító kiadással érkezik. Addig a session.upload_progress.enabled=0 az ajánlott megoldás.
Mi megy tönkre, ha kikapcsolom a session upload progresst?
A funkció a folyamatban lévő fájlfeltöltések előrehaladását jelzi az alkalmazásnak. Csak azok az alkalmazások veszítik el a kijelzést, amelyek ezzel a PHP-funkcióval valósítanak meg ilyen folyamatjelzőt. Maga a feltöltés tovább működik.