Na kratko: Ranljivost Joomla, o kateri se zdaj govori, se imenuje PHP2Shell in je v PHP na strežniku, ne v Joomla. Posodobitev Joomla je ne zapre. Po popravku PHP in ponovnem zagonu preglejte configuration.php, prepise predlog, razširitve in seznam Super User.
Kaj PHP2Shell pomeni za Joomla
Joomla je CMS v PHP in podeduje vsako šibkost PHP pod njim. Ranljivosti CVE-2026-109618 in CVE-2026-109619 po navedbah ekipe PHP omogočata izvajanje škodljive kode brez prijave. Prizadeti so običajni načini delovanja PHP-FPM, Apache z mod_php, php-cgi, FrankenPHP in LiteSpeed.
Prav manjše spletne strani Joomla društev, obrtnih podjetij ali zvez pogosto tečejo na shared hostingu in se redko vzdržujejo. Tam je posodobitev PHP pri ponudniku gostovanja. Vaša naloga je, da povprašate o stanju in spletno stran preverite glede sledi. Katere različice so prizadete, kaže prispevek Katere različice PHP so prizadete?.
Ranljivost Joomla: preverite različico PHP
V skrbniškem območju Sistem > Sistemske informacije prikažejo različico PHP in najpomembnejše nastavitve PHP. To je različica, s katero Joomla na spletu dejansko teče. Odpravljene različice izvorne kode so 8.5.12, 8.4.27, 8.3.36 in 8.2.35. Če Joomla prikaže starejšo številko, je backport kljub temu lahko nameščen; to mora potrditi vaš ponudnik gostovanja.
Na shared hostingu je različico PHP pogosto mogoče preklopiti v uporabniškem meniju ponudnika za vsako domeno. Vendar to preklaplja samo med različicami, ki jih ponudnik zagotavlja; ali so popravljene, odloča ponudnik. Prehod na novejšo glavno različico je kljub temu lahko smiseln, če jo podpirata vaša različica Joomla in vse razširitve. Prej to preizkusite, saj starejše razširitve pri novejših različicah PHP pogosto odpovejo z napakami.
Joomla sam navaja minimalne zahteve za PHP po glavnih različicah. Katere različice PHP podpira vaša različica Joomla, preverite v sistemskih zahtevah na joomla.org. Pri zelo starih različicah Joomla lahko zamenjava PHP najprej zahteva nadgradnjo Joomla.
Tipična skrivališča za škodljivo kodo v Joomla
| Mesto | Vsebina | Na kaj biti pozoren |
|---|---|---|
configuration.php |
Dostop do podatkovne zbirke, $secret, poti za dnevnike in temp |
Datum spremembe, vstavljena koda |
images/, media/ |
Slike in mediji | Datoteke PHP so sumljive |
tmp/ |
Začasne datoteke, tudi od namestitev | Ostanki tujih paketov |
templates/<name>/html/ |
Prepisi predlog s kodo PHP | Neznani ali spremenjeni prepisi |
plugins/system/ |
Sistemski vtičniki, ki se naložijo ob vsakem klicu | Neznani vtičniki |
administrator/logs/ |
Dnevniki | Zavarovati pred spremembami |
.htaccess |
Preusmeritve, pravila rewrite | Preusmeritve samo za iskalnike |
Sistemski vtičniki so posebej priljubljeni, ker se izvedejo ob vsakem klicu strani. Neznan vtičnik v tej mapi morate vedno znati pojasniti.
Neškodljivi pregledi v ukazni vrstici (Joomla 4 in novejši ima lastno konzolo):
# Datoteke PHP v mapah za medije in temp
find images media tmp -type f -name "*.php"
# Izpiši uporabnike in razširitve
php cli/joomla.php user:list
php cli/joomla.php extension:list
Če vaša spletna stran Joomla obiskovalce iz Googla preusmerja na tuje strani ali Google prikazuje opozorilo, je strežnik zelo verjetno že ogrožen. Takrat posodobitev ne zadošča, potrebno je čiščenje in nato preverjanje v Search Console.
Skrbniški dostop in razširitve
Skrbniško območje je pod /administrator. V uporabniški skupini »Super Users« poiščite neznane račune in račune nekdanjih izvajalcev. Vklopite dvofaktorsko prijavo, ki jo Joomla prinaša, in uporabljajte osebne namesto skupnih računov.
Razširitve iz Joomla Extensions Directory in od tretjih ponudnikov so na številnih spletnih straneh številne: obrazci, galerije, gradniki strani, novice. Vsaka prinaša lastno kodo PHP in pogosto lastne funkcije nalaganja. Razširitve, katerih ponudnik ne dostavlja več posodobitev, so trajno tveganje in otežujejo vsako nadgradnjo PHP. Neuporabljeno popolnoma odstranite.
Kaj posodobitev Joomla zmore in česa ne
Posodobitev Joomla zamenja datoteke jedra in zapre znane ranljivosti v Joomla. PHP ne popravi, ne dotakne se prepisov predlog in tujih razširitev ter ne odstrani datotek, ki ne sodijo v jedro. Tudi vnosi v podatkovni zbirki, kot so novi Super User, ostanejo.
Če je bila vaša spletna stran že spremenjena, pomaga potek v prispevku Spletna stran vdrta? Nujna pomoč na daljavo. Za iskanje stranskih vrat se splača vodnik Prepoznavanje in odstranjevanje webshellov.
Če je vašo spletno stran Joomla vzpostavila agencija ali samostojni izvajalec, pri njih povprašajte, katere razširitve in predloge so bile individualno prilagojene. Prilagojenih datotek ni mogoče preprosto primerjati z izvirnim paketom in potrebujejo posamičen pregled.
Kako PHP SOS pomaga konkretno?
- Stanje PHP poizvemo pri vašem ponudniku gostovanja ali ga preverimo na vašem strežniku, vključno s ponovnim zagonom.
- Dnevnike, datoteke in podatkovno zbirko zavarujemo pred vsako spremembo.
- Jedro primerjamo z izvirnim paketom ter preverimo prepise, sistemske vtičnike, mape za medije in Super User.
- Ob najdbah spletno stran očistimo, obnovimo dostope in spremljamo odstranjevanje opozoril Googla.
Pogosta vprašanja
Ali je Joomla prizadet zaradi PHP2Shell?
Joomla sam nima nove ranljivosti, vendar teče na PHP. Če PHP na strežniku ni popravljen, lahko napadalec po navedbah ekipe PHP izvede kodo brez prijave. Posodobitev Joomla tega ne spremeni.
Kje v Joomla najdem različico PHP?
V skrbniškem območju pod Sistem > Sistemske informacije. Tam vidite tudi nastavitve PHP. Ali je nameščen backport, iz številke ne razberete; to mora potrditi vaš ponudnik gostovanja.
Zakaj so prepisi predlog tveganje?
Prepisi (overrides) ležijo v mapi predloge in vsebujejo kodo PHP, ki nadomešča izpis komponent in modulov. Vnesena koda tam komaj pade v oči, ker se prepisi ob posodobitvah Joomla ne zamenjajo.