Új PHP-hiba a PHP2Shell után: az októberi sürgősségi frissítések nem javítják a CVE-2026-115560-at

Új PHP-hiba a PHP2Shell után: mikor érint a CVE-2026-115560?

Két nappal a kritikus PHP2Shell-hibák javítása után újabb távoli kódfuttatási lehetőséget jelentett be a PHP projekt. A CVE-2026-115560 olyan alkalmazásokat érinthet, amelyek a feltöltések előrehaladását PHP-munkamenetben követik, és futás közben egy meghatározott ponton megváltoztatják a munkamenetadatok tárolási formátumát.

A PHP fejlesztői október 23-i tájékoztatójukban ritkának nevezték ezt a beállításkombinációt. Ezért a javítást a szokásos kiadási ciklusra ütemezték. Addig az érintett alkalmazásoknál a munkamenet-alapú feltöltéskövetés kikapcsolását javasolják. A november 2-ig ellenőrzött projektközleményekben nem szerepelt olyan hivatalos PHP-kiadás, amely az új hibát javítaná. A PHP projekt október 23-i tájékoztatója

Az üzemeltetőknek így két külön feladatuk van: telepíteniük kell az október 21-i javításokat a két korábbi hibára, és ellenőrizniük kell az új hiba feltételeit. Az új közlemény megjelenésekor nem számoltak be a CVE-2026-115560 igazolt kihasználásáról. A korábbi PHP2Shell-hibákhoz köthető támadási kísérletek nem bizonyítják az új sérülékenység kihasználását. A CERT-EU frissített biztonsági közleménye

Három feltételnek egyszerre kell teljesülnie

A PHP előzetes közleménye pontosan leírja, melyik beállításváltás számít. A közzétett támadási útvonalhoz a következő három feltétel együttes fennállása szükséges:

  1. A session.serialize_handler kezdeti értéke php_binary vagy php_serialize.
  2. Az alkalmazás futás közben, az ini_set() függvénnyel php értékre vált, még a session_start() meghívása előtt.
  3. A session.upload_progress.enabled beállítás aktív, vagyis a PHP munkamenetben követi a feltöltés előrehaladását.

Ha az alkalmazás nem módosítja futás közben a munkamenetadatok formátumát, a PHP szerint a feltöltéskövetés bekapcsolva maradhat anélkül, hogy ez a konkrét támadási útvonal megnyílna. Ha pedig az üzemeltető a korábbi ajánlás alapján már letiltotta a funkciót, és a tiltás minden érintett folyamatban érvényes, az új hiba miatt nincs szükség további konfigurációs változtatásra. A PHP közleménye az érintettség feltételeiről

A session.serialize_handler szabja meg, hogyan kódolja a PHP a tárolandó munkamenetadatokat, és hogyan olvassa vissza őket. A támogatott formátumok viselkedése és korlátai eltérnek; a dokumentált alapértelmezés a php. Önmagában tehát sem egy php_serialize bejegyzés a konfigurációban, sem a php érték látványa egy futó alkalmazásban nem dönti el az érintettséget. Az ellenőrzéskor a kezdeti konfiguráció mellett az alkalmazás és a keretrendszer indítókódját, valamint az egyedi munkamenet-kezelést is át kell nézni: mi volt a kezdőérték, megváltozott-e, és a váltás megelőzte-e a munkamenet megnyitását? A PHP kézikönyve a munkamenetek beállításairól

Mi köze a fájlfeltöltésnek a munkamenethez?

A PHP feltöltéskövető funkciója lehetővé teszi, hogy egy webalkalmazás még a fájl átvitele közben megjelenítse, hol tart a feltöltés. Miközben az egyik kérésben érkezik a fájl, a böngésző egy másik kérésben lekérdezheti a munkamenetbe írt állapotadatokat.

Az időzítés a lényeg: a PHP már az alkalmazás szkriptjeinek végrehajtása előtt adatokat írhat a feltöltésről a munkamenetbe. A kérés feldolgozása tehát megkezdődik, mielőtt az alkalmazás a saját indítókódjában megváltoztatná a munkamenet beállításait. Ezért az érintettséget nem lehet pusztán a session_start() hívás környezetéből megítélni. A PHP feltöltéskövetési dokumentációja

A feltöltéskövetés kikapcsolása nem tiltja le magát a fájlfeltöltést. Azok a funkciók viszont megváltozhatnak, amelyek a PHP által rögzített állapotadatokra épülnek. A beállítás módosítása után ezért a tényleges feltöltés mellett a folyamatjelzőt és – ahol van ilyen lehetőség – a feltöltés megszakítását is érdemes kipróbálni.

Mit lehet tenni a javítás megjelenéséig?

Az érintett alkalmazásokhoz javasolt beállítás:

session.upload_progress.enabled = 0

A módosítást olyan PHP- vagy kiszolgálókonfigurációban kell alkalmazni, amely már a kérés feldolgozásának kezdetén érvényes. A szkriptben utólag végrehajtott ini_set() hívás a feltöltéskövetés letiltásához már elkéshet. A CERT-EU azt javasolja, hogy a beállítás átírása után indítsák újra az összes PHP-kiszolgálófolyamatot. Több példányon futó szolgáltatásnál minden olyan szerveren és konténerben ellenőrizni kell a változást, amely feltöltési kérést fogadhat. A CERT-EU intézkedési javaslatai · A PHP műszaki útmutatója a beállítás alkalmazásához

A korábbi PHP2Shell-hibákra továbbra is a javított futtatókörnyezet telepítése szükséges. A feltöltéskövetés letiltása az újonnan ismertetett útvonalat lezárja, de a korábbi CVE-2026-109619 többféleképpen kiváltható, és ezek közül csak az egyik kapcsolódik ehhez a funkcióhoz. Ha a régebbi hibák javítása nem végezhető el időben, a CERT-EU az internet felől elérhető alkalmazások elkülönítésének mérlegelését javasolja a frissítés telepítéséig és ellenőrzéséig. Ahol pedig az alkalmazás egyáltalán nem használja a PHP feltöltéskövetését, ott a javítás után is érdemes kikapcsolva hagyni. A CVE-2026-109619 hivatalos közleménye

Miben különbözik az új hiba a két eredeti PHP2Shell-sérülékenységtől?

A CVE-2026-109618 a memória elfogyásának kezelését érinti. Ha egy memóriafoglalás meghiúsul, a PHP félbehagyhat egy műveletet, miközben a kéréshez tartozó belső adatszerkezetek még csak részben épültek fel. A kérés lezárásakor a futtatókörnyezet mégis érvényesnek tekintheti ezeket az adatokat. Apache mod_php alatt a kutatók igazolták, hogy ez hitelesítés nélkül kódfuttatáshoz vezethet, a webes kérést kezelő folyamat jogosultságaival. A kihasználás megbízhatóságát a konkrét PHP-kiadás, a betöltött bővítmények, a memória elrendezése és a kérést továbbító kiszolgáló működése is befolyásolja. A javítás megakadályozza, hogy a lezárás során a PHP ilyen érvénytelen állapotot dolgozzon fel. A CVE-2026-109618 műszaki leírása

A CVE-2026-109619 esetében egy kiszolgálófolyamatban olyan belső hivatkozás maradhat fenn, amely egy már befejezett kérés felszabadított memóriájára mutat. Ha ugyanez a folyamat kapja a következő kérést, annak feldolgozása közben még azelőtt használhatja az elavult hivatkozást, hogy az inicializálás törölné. Ez felszabadítás utáni memóriahasználatot (use-after-free) eredményez. Az egyik igazolt útvonal a munkamenet-alapú feltöltéskövetést használja, de más útvonalak a hibakezeléshez és a futtatókörnyezet egyéb műveleteihez kapcsolódnak. A CVE-2026-109619 műszaki leírása

Az alábbiak az október 21-i első hivatalos kiadások, amelyek mindkét eredeti PHP2Shell-hibát javították. A CVE-2026-115560 javítását egyik sem tartalmazza.

PHP-ágA CVE-2026-109618 és a CVE-2026-109619 első javított kiadása
PHP 8.28.2.35
PHP 8.38.3.36
PHP 8.48.4.27
PHP 8.58.5.12

Régebbi PHP-ág használatakor a disztribúció vagy a hosszú távú támogatást nyújtó szállító közleményéből kell ellenőrizni, hogy az adott csomag megkapta-e a két korábbi javítást. Ha nincs megfelelően karbantartott csomag, támogatott kiadásra kell áttérni. A PHP október 21-i biztonsági közleménye · A CERT-EU útmutatója régebbi telepítésekhez

A korábbi hibák vizsgálatát érdemes október 17-ig visszavezetni

Az Amazon fenyegetéselemző csapata a MadPot nevű, támadások megfigyelésére használt csapdarendszerben október 17-én PHP2Shell-kihasználási kísérletet rögzített. Ez négy nappal megelőzte az október 21-i biztonsági kiadást. A forgalom egy kereskedelmi anonimizáló hálózathoz kapcsolt IP-címről érkezett. A megfigyelés a korábbi PHP2Shell-hibákra vonatkozott, nem a két nappal később bejelentett CVE-2026-115560-ra. Az Amazon MadPot-vizsgálata

Az Amazon ezért azt javasolja, hogy a korábbi PHP2Shell-kitettséget vizsgáló szervezetek legalább október 17-ig tekintsenek vissza. A webszerverek naplóiban látott gyanús kéréseket érdemes összevetni azzal, hogy a webszolgáltatás indított-e váratlan folyamatot, vagy történt-e megmagyarázhatatlan fájlmódosítás az alkalmazáskiszolgálón.

A csapdarendszerben rögzített próbálkozás nem bizonyítja, hogy egy éles rendszert sikerült feltörni. A dátum azért fontos, mert ha a naplóvizsgálat a javítás megjelenésének napján kezdődik, korábbi kísérletek maradhatnak ki belőle. A frissítés a szoftverhibát zárja le; a korábbi jogosulatlan hozzáférés kérdését a megőrzött bizonyítékok alapján lehet tisztázni.

Mi nem derült még ki az új sérülékenységről?

A PHP október 23-i előzetes közleménye megnevezte a szükséges beállításokat és a védekezési lehetőséget, de nem közölt hivatalos CVSS-pontszámot, teljes érintettverzió-listát vagy konkrét javított kiadási számot. A projekt a részletes műszaki tájékoztatót a soron következő rendes hibajavító kiadással együtt ígérte. Az sem derül ki a közleményből, hogy az új sérülékenység ugyanarra a programhibára vezethető-e vissza, mint a CVE-2026-109619. A feltöltéskövetés közös érintettsége önmagában ezt nem bizonyítja. A PHP előzetes tájékoztatója

Az új hibát ezért érdemes önálló tételként követni: dokumentálni, hogy az alkalmazás vált-e munkamenet-formátumot, szükség esetén letiltani a feltöltéskövetést, ellenőrizni a futó folyamatok beállítását, majd nyomon követni a végleges javítást. Ettől külön feladat az október 21-i két javítás telepítésének igazolása és a korábbi támadási kísérletek vizsgálata. A leltárba a külső szállítók termékeibe csomagolt PHP-példányokat is be kell vonni; az ilyen függőségek azonosításához a CERT-EU a holland NCSC nyilvános nyilvántartását ajánlja kiindulópontként.

Eredeti cím: PHP Discloses Another Unpatched RCE Flaw Days After Emergency PHP2Shell Updates

Az oldal tartalma nem másolható!