Ukratko: Joomla sigurnosna ranjivost o kojoj se trenutačno govori zove se PHP2Shell i nalazi se u PHP-u poslužitelja, a ne u Joomli. Joomla ažuriranje je ne zatvara. Nakon PHP zakrpe i ponovnog pokretanja trebali biste provjeriti configuration.php, override predložaka, proširenja i popis Super Usera.
Što PHP2Shell znači za Joomlu
Joomla je PHP CMS i nasljeđuje svaku slabost PHP-a ispod sebe. Ranjivosti CVE-2026-109618 i CVE-2026-109619 prema PHP timu omogućuju izvršavanje zlonamjernog koda bez prijave. Pogođeni su uobičajeni načini rada PHP-FPM, Apache s mod_php-om, php-cgi, FrankenPHP i LiteSpeed.
Upravo manje Joomla web-stranice udruga, obrtničkih tvrtki ili saveza često rade na zajedničkom hostingu i rijetko se održavaju. Tamo je PHP ažuriranje u rukama pružatelja hostinga. Vaš je zadatak raspitati se o stanju i provjeriti web-stranicu na tragove. Koje su verzije pogođene, prikazuje članak Koje su verzije PHP-a pogođene?.
Joomla sigurnosna ranjivost: provjera verzije PHP-a
U administratorskom području Sustav > Informacije o sustavu prikazuje verziju PHP-a i najvažnije PHP postavke. To je verzija s kojom Joomla na webu stvarno radi. Ispravljene upstream verzije su 8.5.12, 8.4.27, 8.3.36 i 8.2.35. Ako Joomla prikazuje stariji broj, backport ipak može biti ugrađen; to mora potvrditi Vaš pružatelj hostinga.
Na zajedničkom hostingu verzija PHP-a često se može prebaciti u korisničkom izborniku pružatelja po domeni. No to samo mijenja između verzija koje pružatelj stavlja na raspolaganje; jesu li zakrpane, odlučuje pružatelj. Prelazak na noviju glavnu verziju ipak može biti smislen ako ga Vaša verzija Joomle i sva proširenja podržavaju. Prethodno to testirajte jer starija proširenja kod novijih verzija PHP-a često prekidaju rad s porukama o pogreškama.
Joomla sama navodi minimalne zahtjeve za PHP po glavnoj verziji. Koje PHP verzije podržava Vaša verzija Joomle, provjerite prema sistemskim zahtjevima na joomla.org. Kod vrlo starih Joomla stanja promjena PHP-a prvo može zahtijevati Joomla nadogradnju.
Tipična skrovišta zlonamjernog koda u Joomli
| Mjesto | Sadržaj | Na što paziti |
|---|---|---|
configuration.php |
Pristup bazi podataka, $secret, putovi za logove i temp |
Datum izmjene, umetnuti kôd |
images/, media/ |
Slike i mediji | PHP datoteke su sumnjive |
tmp/ |
Privremene datoteke, i od instalacija | Ostaci stranih paketa |
templates/<name>/html/ |
Override predložaka s PHP kôdom | Nepoznati ili izmijenjeni overridei |
plugins/system/ |
Sistemski dodaci koji se učitavaju pri svakom pozivu | Nepoznati dodaci |
administrator/logs/ |
Zapisnici | Osigurati prije promjena |
.htaccess |
Preusmjeravanja, rewrite pravila | Preusmjeravanja samo za tražilice |
Sistemski dodaci osobito su omiljeni jer se izvršavaju pri svakom pozivu stranice. Nepoznati dodatak u toj mapi uvijek biste trebali moći objasniti.
Neopasne provjere u naredbenom retku (Joomla 4 i novija donosi vlastitu konzolu):
# PHP datoteke u mapama medija i temp
find images media tmp -type f -name "*.php"
# Ispis korisnika i proširenja
php cli/joomla.php user:list
php cli/joomla.php extension:list
Ako Vaša Joomla web-stranica preusmjerava posjetitelje s Googlea na strane stranice ili Google prikazuje upozorenje, poslužitelj je vrlo vjerojatno već kompromitiran. Tada ne pomaže ažuriranje, nego je potrebno čišćenje i potom provjera u Search Consoleu.
Administratorski pristup i proširenja
Administratorsko područje nalazi se na /administrator. Provjerite korisničku grupu „Super Users“ na nepoznate račune i na račune bivših pružatelja usluga. Aktivirajte dvofaktorsku prijavu koju Joomla donosi i koristite osobne umjesto zajedničkih računa.
Proširenja iz Joomla Extensions Directoryja i od trećih strana na mnogim su web-stranicama brojna: obrasci, galerije, alati za izradu stranica, newsletteri. Svako donosi vlastiti PHP kôd i često vlastite funkcije uploada. Proširenja čiji proizvođač više ne isporučuje ažuriranja trajan su rizik i otežavaju svaku nadogradnju PHP-a. Neiskorišteno u potpunosti deinstalirajte.
Što Joomla ažuriranje može, a što ne
Joomla ažuriranje zamjenjuje datoteke jezgre i zatvara poznate ranjivosti u Joomli. Ne zakrpava PHP, ne dira override predložaka i strana proširenja te ne uklanja datoteke koje ne pripadaju jezgri. I unosi u bazi podataka, poput novih Super Usera, ostaju.
Ako je Vaša web-stranica već izmijenjena, pomaže postupak na stranici Web-stranica hakirana? Hitna pomoć na daljinu. Za traženje stražnjih vrata isplati se vodič Prepoznavanje i uklanjanje webshellova.
Ako je Vašu Joomla web-stranicu uspostavila agencija ili freelancer, pitajte ih koja su proširenja i predlošci individualno prilagođavani. Prilagođene datoteke ne mogu se jednostavno usporediti s originalnim paketom i trebaju pojedinačnu provjeru.
Kako PHP SOS konkretno pomaže?
- Stanje PHP-a raspitujemo kod Vašeg pružatelja hostinga ili ga provjeravamo na Vašem poslužitelju, uključujući ponovno pokretanje.
- Osiguravamo logove, datoteke i bazu podataka prije svake promjene.
- Jezgru uspoređujemo s originalnim paketom te provjeravamo override predložaka, sistemske dodatke, mape medija i Super Usere.
- Kod nalaza čistimo web-stranicu, obnavljamo pristupe i pratimo uklanjanje Googleovih upozorenja.
Česta pitanja
Pogađa li PHP2Shell Joomlu?
Sama Joomla nema novu ranjivost, ali radi na PHP-u. Ako PHP poslužitelja nije zakrpan, napadač prema PHP timu može izvršiti kôd bez prijave. Joomla ažuriranje tu ništa ne mijenja.
Gdje u Joomli nalazim verziju PHP-a?
U administratorskom području pod Sustav > Informacije o sustavu. Tamo vidite i PHP postavke. Je li ugrađen backport, po broju ne možete prepoznati; to mora potvrditi Vaš pružatelj hostinga.
Zašto su override predložaka rizik?
Overridei se nalaze u mapi predloška i sadrže PHP kôd koji zamjenjuje izlaz komponenti i modula. Ubačeni kôd tamo se jedva primijeti jer se overridei pri Joomla ažuriranjima ne zamjenjuju.