Stručně: Zranitelnost Joomly, o které se nyní mluví, se jmenuje PHP2Shell a je v PHP serveru, ne v Joomle. Aktualizace Joomly ji neuzavře. Po záplatě PHP a restartu byste měli zkontrolovat configuration.php, přepisy šablon, rozšíření a seznam Super Userů.
Co PHP2Shell znamená pro Joomlu
Joomla je CMS v PHP a zdědí každou slabinu PHP pod sebou. Zranitelnosti CVE-2026-109618 a CVE-2026-109619 umožňují podle týmu PHP spuštění škodlivého kódu bez přihlášení. Týkají se běžných provozních režimů PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed.
Zejména menší weby na Joomle u spolků, řemeslných firem nebo svazů často běží na sdíleném hostingu a málokdy se udržují. Tam je aktualizace PHP na poskytovateli hostingu. Vaším úkolem je zjistit stav a web zkontrolovat, zda nenese stopy. Které verze jsou postiženy, ukazuje článek Které verze PHP jsou postiženy?.
Zranitelnost Joomly: kontrola verze PHP
V administraci zobrazuje Systém > Systémové informace verzi PHP a nejdůležitější nastavení PHP. To je verze, se kterou Joomla na webu skutečně běží. Opravené verze upstreamu jsou 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Pokud Joomla zobrazí starší číslo, může být přesto nasazen backport; to musí potvrdit váš poskytovatel hostingu.
Na sdíleném hostingu lze verzi PHP často přepnout v zákaznickém menu poskytovatele pro každou doménu. Tím se ale přepíná jen mezi verzemi, které poskytovatel nabízí; zda jsou záplatované, rozhoduje poskytovatel. Přechod na novější hlavní verzi může být přesto užitečný, pokud ji vaše verze Joomly a všechna rozšíření podporují. Vyzkoušejte to předem, protože starší rozšíření se na novějších verzích PHP často zastaví s chybovými hlášeními.
Joomla sama uvádí minimální požadavky na PHP pro každou hlavní verzi. Které verze PHP vaše verze Joomly podporuje, ověříte podle systémových požadavků na joomla.org. U velmi starých stavů Joomly může změna PHP nejprve vyžadovat upgrade Joomly.
Typické úkryty škodlivého kódu v Joomle
| Místo | Obsah | Na co dát pozor |
|---|---|---|
configuration.php |
Přístup k databázi, $secret, cesty pro logy a temp |
Datum změny, vložený kód |
images/, media/ |
Obrázky a média | Soubory PHP jsou podezřelé |
tmp/ |
Dočasné soubory, i z instalací | Zbytky cizích balíčků |
templates/<name>/html/ |
Přepisy šablon s kódem PHP | Neznámé nebo změněné přepisy |
plugins/system/ |
Systémové pluginy, které se načítají při každém volání | Neznámé pluginy |
administrator/logs/ |
Protokoly | Zálohovat před změnami |
.htaccess |
Přesměrování, pravidla přepisování | Přesměrování jen pro vyhledávače |
Systémové pluginy jsou obzvlášť oblíbené, protože se spouštějí při každém zobrazení stránky. Neznámý plugin v této složce byste měli vždy umět vysvětlit.
Neškodné kontroly na příkazové řádce (Joomla 4 a novější má vlastní konzoli):
# Soubory PHP ve složkách médií a temp
find images media tmp -type f -name "*.php"
# Vypsat uživatele a rozšíření
php cli/joomla.php user:list
php cli/joomla.php extension:list
Pokud váš web na Joomle přesměrovává návštěvníky z Googlu na cizí stránky nebo Google zobrazuje varování, je server velmi pravděpodobně už kompromitován. Pak nestačí aktualizace, je potřeba čištění a poté ověření v Search Console.
Přístup správce a rozšíření
Administrace leží na adrese /administrator. Zkontrolujte skupinu uživatelů „Super Users“, zda neobsahuje neznámé účty a účty bývalých dodavatelů. Aktivujte dvoufázové přihlášení, které Joomla nabízí, a používejte osobní místo sdílených účtů.
Rozšíření z Joomla Extensions Directory a od třetích stran je u mnoha webů mnoho: formuláře, galerie, nástroje pro tvorbu stránek, newslettery. Každé přináší vlastní kód PHP a často vlastní funkce nahrávání. Rozšíření, jejichž výrobce už aktualizace nedodává, jsou trvalým rizikem a ztěžují každý upgrade PHP. Nepoužívané odinstalujte úplně.
Co aktualizace Joomly zvládne a co ne
Aktualizace Joomly nahradí soubory jádra a uzavře známé zranitelnosti v Joomle. Nezáplatuje PHP, nedotkne se přepisů šablon ani cizích rozšíření a neodstraní soubory, které nepatří k jádru. Také záznamy v databázi, například noví Super Useři, zůstanou zachovány.
Pokud byl váš web už změněn, pomůže postup v části Web napaden? Vzdálená pohotovostní pomoc. Při hledání zadních vrátek se vyplatí průvodce Jak rozpoznat a odstranit webshelly.
Pokud váš web na Joomle zřídila agentura nebo freelancer, zeptejte se tam, která rozšíření a šablony byly individuálně upraveny. Upravené soubory nelze jednoduše porovnat s originálním balíčkem a vyžadují individuální kontrolu.
Jak konkrétně pomáhá PHP SOS?
- Stav PHP zjistíme u vašeho poskytovatele hostingu nebo jej ověříme na vašem serveru, včetně restartu.
- Logy, soubory a databázi zálohujeme před každou změnou.
- Porovnáme jádro s originálním balíčkem a zkontrolujeme přepisy, systémové pluginy, složky médií a Super Usery.
- Při nálezech web vyčistíme, obnovíme přístupy a provedeme vás odstraněním varování Googlu.
Časté dotazy
Týká se PHP2Shell Joomly?
Joomla sama žádnou novou zranitelnost nemá, ale běží na PHP. Pokud PHP serveru není záplatované, může útočník podle týmu PHP spustit kód bez přihlášení. Aktualizace Joomly na tom nic nemění.
Kde v Joomle najdu verzi PHP?
V administraci v nabídce Systém > Systémové informace. Uvidíte tam i nastavení PHP. Zda je nasazen backport, z čísla nepoznáte; to musí potvrdit váš poskytovatel hostingu.
Proč jsou přepisy šablon (template overrides) riziko?
Přepisy leží ve složce šablony a obsahují kód PHP, který nahrazuje výstup komponent a modulů. Vložený kód si tam stěží někdo všimne, protože se přepisy při aktualizacích Joomly nenahrazují.