Aktuális helyzet: PHP2Shell. Két kritikus PHP-rés (CVSS 9,2) lehetővé teszi kártékony kód futtatását bejelentkezés nélkül. Javítások 2026. 10. 21. óta.Mi a teendő most →

Drupal PHP-biztonság a PHP2Shell után: így védje a weboldalát

A Drupal PHP-n fut, így érinti a PHP2Shell, ha a szerver nincs javítva. Az állapotjelentés, a settings.php, a files mappa és a szerepkörök jogai a fontosak.

Állapot 4 perc olvasási időPlatformok

Röviden: A Drupal PHP-biztonsága a PHP2Shell után elsősorban a szervert érinti: a rés a PHP-ben van, nem a Drupalban. Ellenőrizze a PHP-állapotot az állapotjelentésben és az üzemeltetőnél, indítsa újra az összes PHP-folyamatot, majd vizsgálja át a settings.php fájlt, a files könyvtárat és a szerepkörök jogait.

A Drupal és a PHP2Shell: a helyzet

A Drupalt gyakran használják nagyobb weboldalakhoz, portálokhoz és közfeladatot ellátó szervek számára, sokszor sok szerkesztővel és interfésszel. A CVE-2026-109618 és a CVE-2026-109619 PHP-rések a PHP-csapat szerint lehetővé teszik kártékony kód távoli futtatását bejelentkezés nélkül. Az nem számít, hogy maga a Drupal mennyire jól gondozott.

A Drupalnak saját biztonsági csapata van, amely a magra és a modulokra vonatkozó közleményeket tesz közzé. A PHP2Shell nem tartozik ide, mert nem Drupal-rés. Aki csak a Drupal-közleményeket követi, ezért átsiklhatott a hír fölött.

A nagyobb Drupal-projektekben a felelősség gyakran több helyre oszlik: egy ügynökség gondozza a kódot, egy adatközpont üzemelteti a szervereket, a szerkesztőség a házban ül. Tisztázza írásban, ki juttatja be a PHP-frissítést, ki indítja az újraindítást, és ki ellenőrzi, történt-e előtte valami. Terheléselosztó mögötti több webszerveres felállásoknál minden egyes szervernek javítottnak és újraindítottnak kell lennie, különben a kérések egy része régi PHP-n marad.

Drupal PHP-biztonság: verzió és javítási állapot ellenőrzése

A Jelentések > Állapotjelentés alatt a Drupal megmutatja azt a PHP-verziót, amellyel a weboldal fut, a konfigurációra vonatkozó figyelmeztetésekkel együtt. A parancssorban a drush status a CLI-s PHP verzióját adja meg, amellyel a cron-feladatok és a telepítések is futnak. Mindkettőnek javítottnak kell lennie.

A javított upstream verziók: 8.5.12, 8.4.27, 8.3.36 és 8.2.35. A disztribúciók és a tárhelyszolgáltatók a javításokat részben backportként juttatják be, ilyenkor a szám ugyanaz marad; a megerősített csomagállapot az irányadó. Hogy a Drupal-verziója mely PHP-verziókat támogatja, azt a rendszerkövetelmények szerint a drupal.org oldalon ellenőrizheti. A frissítés után az újraindítás is hozzátartozik, amelyet a A PHP-FPM és az összes worker újraindítása oldal ír le.

Könyvtárak és fájlok, amelyek számítanak

Hely Tartalom Ellenőrzési pont
sites/default/settings.php adatbázis, hash-só, trusted_host_patterns módosítás dátuma, beszúrt include-ok
sites/default/files/ nyilvános feltöltések, generált képek, CSS és JS nincs PHP-fájl, van .htaccess
privát fájlkönyvtár védett feltöltések, gyakran a dokumentumgyökéren kívül hozzáférési jogok
modules/contrib/, modules/custom/ a drupal.org modulai és egyedi fejlesztések módosított vagy ismeretlen modulok
themes/ témák Twig-sablonokkal idegen JavaScript
vendor/ Composer-függőségek composer audit

A Drupal a files könyvtárban létrehoz egy .htaccess fájlt, amely megakadályozza a PHP futtatását. Apache alatt hat, Nginx alatt nem. Ott saját szabály kell:

location ~* ^/sites/.+/files/.+\.php$ {
    deny all;
}

Veszélytelen ellenőrzések a beépített eszközökkel és a Drushsal:

find sites/*/files -type f -name "*.php"
drush pm:list --status=enabled --type=module
composer audit
Tipp

Vesse össze a szerveren lévő kódállapotot a Git-tárolójával. A Composert használó Drupal-projekteknél ez a leggyorsabb mód az idegen vagy módosított fájlok megtalálására, mert minden eltérésnek megmagyarázhatónak kell lennie.

Szerepkörök, jogok és modulok mint kockázat

A bejelentkezés a /user/login, az adminisztrációs terület az /admin alatt található. A Drupalban nem csak az adminisztrátori fiókok döntenek a biztonságról, hanem az egyes jogosultságok. Az olyan jogok, mint a modulok, felhasználók, jogosultságok vagy teljes HTML-t engedő szövegformátumok kezelése, gyakorlatilag adminisztrátori jogok. Az Emberek és a Jogosultságok alatt ellenőrizze, mely szerepköröknek mik a jogaik, és kik tartoznak ezekhez a szerepkörökhöz.

A contrib modulok erősen bővítik a Drupalt, de saját kódot hoznak. Az aktív gondozás nélküli modulok és a régi egyedi fejlesztések gyakran az oka annak, hogy a PHP-frissítést elhalasztják. A függőségekről bővebben a Composer-függőségek ellenőrzése résekre oldalon olvashat.

Mit tud egy Drupal-frissítés, és mit nem

Egy mag- vagy modulfrissítés lezárja az ebben a kódban lévő hibákat, és lehetővé tehet újabb PHP-verziókat. A PHP-t nem javítja, idegen fájlokat nem távolít el a sites/default/files mappából, nem állít vissza jogosultságokat, és nem töröl titokban létrehozott fiókokat. A gyorsítótár is kiszolgálhat manipulált tartalmakat, amíg ki nem ürítik. Gyanú esetén a hash-sót és az adatbázis-hozzáférést meg kell újítani.

A multisite telepítéseknél több weboldal osztozik ugyanazon a kódon, de a sites/ alatt mindegyiknek saját settings.php fájlja és saját files könyvtára van. Ilyenkor minden weboldalt külön ellenőrizzen. Az egyik oldalon talált lelet a közös kód miatt többnyire az összes többit is érinti.

Hogyan segít konkrétan a PHP SOS?

  • Ellenőrizzük a Drupal-szerver web- és CLI-s PHP-ját, és megerősíttetjük a javítást és az újraindítást.
  • Mentjük a naplókat és az adatokat, és összevetjük a kódállapotot az Ön tárolójával vagy az eredeti csomagokkal.
  • Ellenőrizzük a settings.php fájlt, a files könyvtárat, a szerverszabályokat, a szerepköröket és a jogosultságokat.
  • Kívánságra átvesszük a folyamatos gondozást a biztonsági karbantartási szerződés keretében, hogy a PHP- és Drupal-frissítések ne fussanak újra szét.

Gyakori kérdések

Segít egy Drupal biztonsági frissítés a PHP2Shell ellen?

Nem. A Drupal-frissítések a Drupal-mag és a modulok hibáit zárják le. A PHP2Shell a szerver PHP-jában van, és PHP-frissítést vagy megerősített backportot, valamint az összes PHP-folyamat újraindítását igényli.

Hol mutatja a Drupal a PHP-verziót?

A Jelentések alatti állapotjelentésben. A Drushsal a drush status a parancssor PHP-verzióját mutatja. A két adat eltérhet, és egyikből sem ismerhető fel biztosan a backport.

Véd a files mappában lévő .htaccess Nginx alatt is?

Nem. A Drupal által létrehozott .htaccess fájlt csak az Apache értékeli ki. Nginx alatt saját szabály kell a szerverkonfigurációban, amely letiltja a PHP-fájlokat a files könyvtárban.

Mit jelent a trusted_host_patterns?

A settings.php-ban lévő beállítás határozza meg, mely hosztnevek alatt válaszol a Drupal. Védi a manipulált Host-adatokon keresztüli támadások ellen, és minden éles telepítésbe beletartozik.

Források

Azonnali kapcsolat

Minden óra számít. Írjon nekünk most.

Ismertesse röviden a rendszert, a PHP-verziót és a megfigyelését. Jelentkezünk, tisztázzuk a helyzetet, és távolról dolgozunk, amíg az incidens le nem zárul és dokumentálva nem lesz.

Azonnali segítség