Egy webes kérés, és a támadó máris a szervereden van - a php2shell kritikus PHP-rés szinte minden verziót érinthet

Egy webes kérés, és a támadó máris a szervereden van - a php2shell kritikus PHP-rés szinte minden verziót érinthet – illusztráció

Két kritikus, távoli kódfuttatást lehetővé tevő rés vált ismertté a PHP-ban, amelyeket a kutatók php2shell néven emlegetnek: aki kihasználja, bejelentkezés nélkül, egyetlen webes kéréssel futtathat saját kódot a szerveren. A CERT-EU szerint a PHP 5-től szinte minden kiadás érintett lehet - ha tehát PHP-n fut az oldalad vagy a webshopod, vagy van egy tárhelyed, és fogalmad sincs, mi fut rajta, érdemes végigolvasni, mi történt.

Egy kérés, és jön a shell

A támadás tétje röviden ennyi: egy kérés, és a támadó shellt, vagyis parancssori hozzáférést kap a szerveredhez - innen a php2shell név. Részletes technikai leírás még nem jelent meg, mert a PHP csapata a részleteket a frissítéssel együtt teszi közzé; eddig csak annyi bizonyos, hogy mindkét hiba 9,2 pontot kapott a CVSS 4.0-s skálán. A neten terjedő, nem hivatalos anyagok a PHP munkamenet-kezelését emlegetik, ezeket azonban még senki nem erősítette meg. A Tenable kutatói arra is figyelmeztetnek, hogy a felbukkanó, állítólag működő támadókódok egy része kártevőt rejthet - most tehát különösen rossz ötlet kipróbálni őket.

Kiszivárgott, ezért hiteles

A két hibát eredetileg csütörtökön, október 22-én jelentették volna be hivatalosan. Október 20-án reggel viszont egy Hacker News-bejegyzésben megjelent az azonosítójuk (CVE-2026-109618 és CVE-2026-109619); a bejegyzést gyorsan törölték, de a képernyőképek és az azonosítók addigra elterjedtek a közösségi médiában. A watchTowr kutatói szerint a szivárgás hiteles: a CVE-2026-109618 azonosítójú hibát sikerült reprodukálniuk, Kirill Firsov pedig videón is bemutatta a kihasználást - ő azt az LCFR és a Calif.io kutatóinak tulajdonítja. A PHP csapata a kiszivárgás miatt egy nappal előrébb hozta a javítást: ma 14:00 UTC-kor, magyar idő szerint 16:00-kor jelenik meg, és ha a részletek továbbterjednek vagy valódi támadások indulnak, akár még korábbra is tolhatják.

Millió gépen ugyanaz a gyenge pont

A PHP korántsem ritkaság: a W3Techs mérése szerint az ismert szerveroldali nyelvű weblapok 69,3 százaléka PHP-t használ, a WordPress-, a Drupal-, a Joomla- és a Magento-világ pedig szinte teljes egészében ráépül. Silas Cutler kutató becslése szerint legalább 1,3 millió, internetről elérhető gépen fut PHP, jó részük tárhelyszolgáltatóknál és kiszolgálópaneleknél.

A valódi gond a régi verzió: egy Shodan-alapú mérés szerint a verziójukat eláruló PHP-s gépek közel 60 százalékán, mintegy 883 ezer gépen PHP 8.1 vagy annál régebbi fut. Ezekre nem lesz hivatalos javítás, mert a támogatásuk már lejárt.

És a fenyegetés nem papíron létezik: Dane Knecht, a Cloudflare technológiai igazgatója szerint a cég hálózatán már az első támadási kísérleteket látják, ezért tűzfalszabályokat vezettek be minden ügyfelüknél, az ingyenes csomagot használóknál is. Csakhogy a Cloudflare csak a rajta átfolyó forgalmat látja - a te szervereden ettől még ott lesz a rés.

Mit tegyél, ha nálad is fut PHP?

Tartós megoldásból egy van: frissíteni kell. Gina Peter Banyard, a PHP egyik központi fejlesztője fogalmazta meg a legegyértelműbben: az egyetlen megoldás a PHP frissítése, illetve újabb verzióra cserélése. A kiszivárgás kapcsán felbukkant konfigurációs tippekre (például a session.upload_progress kikapcsolására) Joe Ferguson, a PHP 8.6 kiadásáért felelős fejlesztő röviden csak ennyit mondott: "az ini-beállítások úgysem mentenek meg". Röviden a teendők:

  • Nézd meg, hol fut egyáltalán PHP: szervereken, konténerekben és meglepően sok Windows-programban is, saját php.exe-vel. A tárhelyed és a cPanel/Plesk panelek is közölni fogják a frissítési ütemtervet.
  • A támogatott verziókra ma 16:00-tól megérkezik a javítás. Kevin Beaumont kutató szerint a javított kiadások a 8.2.35, a 8.3.36, a 8.4.27 és a 8.5.12 lesznek; a végleges számok a kiadáskor derülnek ki, a Linux-disztribúciók pedig jellemzően a szokásosnál gyorsabban adják ki a saját csomagjaikat - bennük a javítás a náluk futó régebbi PHP-ágakba épül be.
  • 8.1 vagy régebbi alatt nincs mit frissíteni: a CERT-EU szerint az ilyen rendszereket el kell különíteni az internettől, hosszú távon pedig verziót váltani. (Igen, a kilenc éve futó 5.6-ost is - azt már senki nem fogja helyetted megfoltozni.)
  • Amíg a frissítés meg nem jön, figyeld, mit indít el a PHP: ha a php-fpm vagy a httpd hirtelen shellt, curlt vagy wgetet indít, az gyanús - az ilyesmi jellemzően a támadás első nyoma.

Ma este, ne később

A php2shellnél most tart a legrosszabb rész: a betörő már tudja, hol a gyenge zár, a lakat meg csak ma délután érkezik - és mindenkinek magának kell felszerelnie. Amíg a javítás mindenkihez el nem jut, a botok az ilyen réseket órákon, sokszor perceken belül beépítik a támadásaikba. Ha támogatott PHP-d fut, ma este frissíts, ne a heti karbantartási ablakra várj; ha régi, a verzióváltást ez a hír már nem engedi tovább halogatni.