Bezpečnostní upozornění k rozšíření iCagenda
Pokud jste ode mě obdrželi e-mail, který vás odkazuje na tuto stránku, je to proto, že se zdá, že
váš web běží na verzi rozšíření iCagenda (com_icagenda od JoomliCu, rozšíření pro kalendář
událostí pro redakční systém Joomla), která je postižena známým bezpečnostním problémem. Tato
stránka vysvětluje, o jaký problém jde, jak zkontrolovat, zda se týká vašeho webu, a jak jej
opravit.
Toto upozornění se týká chyby CVE-2026-48939, kritické, aktivně zneužívané zranitelnosti, která umožňuje neautentizované libovolné nahrání souboru vedoucí ke vzdálenému spuštění kódu prostřednictvím front-endového formuláře rozšíření „Odeslat událost”. Dne 10. července 2026 byla zařazena do katalogu Known Exploited Vulnerabilities americké agentury Cybersecurity and Infrastructure Security Agency.
Dvě podmínky, a obě musí platit
Váš web je zasažen problémem se vzdáleným spuštěním kódu, pokud platí obě tato tvrzení:
- iCagenda je v řadě 4.0.x, ve verzi nižší než 4.0.8 (tedy 4.0.0 až 4.0.7), a
- jádro Joomly je nižší než 6.1.2.
Pokud je iCagenda ve verzi 4.0.8 nebo novější, nejste postiženi. A pokud je vaše jádro Joomly ve verzi 6.1.2 nebo novější, nejste postiženi ani v tomto případě, a to ani se starou verzí iCagendy, protože samotné jádro nahrání blokuje. Pokud toto platí o vašem webu, můžete zde přestat číst, kromě poznámky, že aktualizace iCagendy se přesto vyplatí.
Druhá podmínka je bod, ve kterém se tato stránka neshoduje s vlastním doporučením dodavatele, které uvádí, že problém se týká pouze webů provozujících Joomlu 6. Ve skutečnosti zasahuje i plně aktualizované weby na Joomle 4 a Joomle 5, a důkazy pro to uvádím níže, protože pokud budete sledovat odkaz, uvidíte, že dodavatel tvrdí opak.
Pokud používáte dotčenou verzi, aktualizujte iCagendu, a protože tato chyba byla zneužívána ještě předtím, než existovala oprava, také zkontrolujte svůj web na známky toho, že se tam někdo dostal dřív (viz Pokud jste používali dotčenou verzi níže).
Poznámka pro každého na starší řadě 3.9.x. Zveřejněný rozsah CVE zahrnuje i 3.9.x a dodavatel opravil i tuto řadu, ve verzi 3.9.15. Podle mého vlastního zkoumání a testování řada 3.9.x používá jinou, chráněnou cestu kódu pro nahrávání, takže výsledek v podobě vzdáleného spuštění kódu zde není dosažitelný: na Joomle 4 a 5 nahrávání blokuje jádro, a na Joomle 6 tato cesta kódu vůbec neexistuje, takže daná funkce jednoduše skončí chybou. To není důvod aktualizaci ignorovat. Stejná vydání opravují chybějící kontrolu oprávnění, která umožňuje anonymnímu návštěvníkovi vložit na váš web neschválenou událost (a na Joomle 4 a 5 spolu s ní i soubor povoleného typu). Nižší závažnost, přesto stojí za opravu: aktualizujte na verzi 3.9.15 nebo novější. Mějte také na paměti, že dodavatel poskytuje bezpečnostní opravy pro řadu 3.9.x pouze do 13. října 2026.
Je tato zpráva legitimní?
Ano. Jedná se o zprávu o zodpovědném odhalení chyby v dobré víře od nezávislého bezpečnostního výzkumníka. Nežádám vás o peníze, hesla ani přístup k vašemu webu a nepokusil jsem se do něj vloupat, nic na něj nahrát ani nic zneužít.
Přečetl jsem si pouze dva veřejné soubory, které váš web poskytuje komukoli, kdo si o ně
požádá: manifest komponenty iCagenda na cestě
/administrator/components/com_icagenda/icagenda.xml a manifest jádra Joomly na cestě
/administrator/manifests/files/joomla.xml. Oba jsou obyčejné XML soubory s verzí a jsou to
stejné dva soubory popsané níže v části
Jak zkontrolovat své verze, takže si můžete ověřit přesně to, co
jsem viděl já. To je vše. Konkrétně jsem neodeslal váš formulář události, nic jsem nenahrál a
nepožádal jsem o adresář s přílohami na vašem webu. Tato cesta se dále na této stránce objevuje
pouze jako místo, kde se můžete podívat vy sami na svém vlastním webu. Nic na této kontrole se
nedotýká vašich dat, vaší administrace ani žádné soukromé části vašeho webu.
Pokud byste chtěli ověřit, kdo jsem, podívejte se na kontaktní údaje na konci této stránky a na stránku O mně.
Proč na tom záleží
iCagenda na webech postavených na Joomle publikuje kalendář událostí. Jednou z jejích funkcí je,
že návštěvník může prostřednictvím front-endového formuláře odeslat událost, volitelně s přílohou
souboru, který se uloží do složky images/icagenda/frontend/attachments/.
V postižených verzích je toto odeslání přijato bez přihlášení a příloha je zapsána na disk bez jakékoli kontroly, o jaký typ souboru jde, přičemž se zachová název i přípona, kterou zvolil odesílatel. Tato kombinace umožňuje útočníkovi umístit na váš server program dle vlastního výběru a spustit jej: úplné vzdálené spuštění kódu, bez nutnosti jakéhokoli účtu a bez jakékoli spolupráce z vaší strany.
Aby to platilo, nemusí být nic zapnuto. Formulář nemusí být zveřejněný ani viditelný pro návštěvníky: v postižených verzích řadič, který za ním stojí, přijímal odeslání bez ohledu na to.
Toto není teoretické riziko. Podle NVD je ohodnocena 9,8 z 10 (a 10,0 podle přidělující autority podle novějšího systému bodování) a je aktivně zneužívána. Dodavatel uvádí, že zneužívání začalo 15. června 2026 v 08:00 UTC, ještě před vznikem opravy, a označuje útoky za automatizované. CISA ji zařadila do katalogu Known Exploited Vulnerabilities dne 10. července 2026.
Popisuji to na úrovni, kterou majitel webu potřebuje k tomu, aby mohl jednat, a nic navíc. Nezveřejňuji podrobnosti, které by někomu umožnily chybu reprodukovat, a žádám vás, abyste se o to nepokoušeli ani na svém vlastním webu, ani na webu kohokoli jiného. Přečtení vašich dvou čísel verzí, jak je popsáno níže, vám řekne vše, co potřebujete k rozhodnutí.
Pokud můj e-mail tento problém uváděl, znamená to, že verze, které váš web hlásí, spadají do postiženého rozsahu v obou ohledech. Netestoval jsem, zda je váš konkrétní web zneužitelný nebo zda je již napaden.
V čem se tato stránka neshoduje s doporučením dodavatele
Doporučení dodavatele stojí za přečtení a odkazuji na ně níže. Dodavatel vydal opravu rychle a jeho pokyny jsou dobré. Jedna věta o rozsahu v něm ale neobstojí, a protože je to právě ta věta, která by většinu čtenářů této stránky svedla k tomu, aby polevili v ostražitosti, chci ukázat svůj postup, místo abych to jen tvrdil. Doporučení uvádí:
Nezabezpečené nahrávání souborů bylo ve výchozím nastavení blokováno na všech verzích Joomly před Joomlou 6. Kritickou zranitelností v nahrávání byla postižena pouze instalace iCagendy na Joomle 6 (6.0.0-6.1.1).
Toto jsem naměřil na izolovaných instalacích, které jsou moje vlastní. V žádném okamžiku nebyl zapojen žádný web třetí strany.
- iCagenda 4.0.x provádí nahrávání prostřednictvím frameworkové třídy
Joomla\Filesystem\File, která pochází z balíčkujoomla/filesystem, jenž je součástí jádra Joomly. Nepoužívá starší třídu CMS Joomly se stejným názvem, což je ta, která vždy obsahovala kontrolu bezpečného souboru a která je pravděpodobně tou, kterou má doporučení na mysli. - Tato frameworková metoda získala vlastní kontrolu bezpečného souboru (parametr
$allowUnsafea testisSafeFile) až vjoomla/filesystem4.2.0, což je verze, která je součástí Joomly 6.1.2. - Verze skutečně dodávané s vydáními Joomly, která jsem zkontroloval: Joomla 4.4.14 obsahuje filesystem 2.0.2 (bez kontroly), Joomla 5.4.7 obsahuje 3.2.0 (bez kontroly) a Joomla 6.1.2 obsahuje 4.2.0 (kontrola přítomna).
Plně aktualizovaný web na Joomle 4 nebo Joomle 5 s iCagendou 4.0.0 až 4.0.7 tedy je vystaven riziku, a proto tato stránka uvádí podmínku pro Joomlu jako „nižší než 6.1.2” místo „pouze Joomla 6”. Nic ve zveřejněném záznamu CVE, v záznamu NVD ani v katalogu CISA neomezuje tento problém podle verze Joomly; jediné místo, kde se takové omezení objevuje, je právě tato věta v doporučení dodavatele.
Jak zkontrolovat své verze
Nemusíte mi věřit na slovo ani u jednoho z obou čísel, a je třeba zkontrolovat obě.
Vaše verze iCagendy, z manifestu (nepotřebujete se přihlásit): otevřete
yourdomain.com/administrator/components/com_icagenda/icagenda.xml
a přečtěte si její prvek <version>. To je jeden ze dvou souborů, které jsem četl.
Vaše verze iCagendy, z administrace:
- Přihlaste se do administrace Joomly (obvykle na adrese
yourdomain.com/administrator). - Přejděte na Systém poté Správa poté Rozšíření.
- Vyhledejte iCagenda a poznamenejte si nainstalovanou verzi.
Dávejte pozor, který icagenda.xml čtete. Balíček iCagendy obsahuje také přibalený
vyhledávací plugin s manifestem stejného názvu, který nese svoje vlastní, nesouvisející číslo
verze. Pouze cesta ke komponentě uvedená výše vám řekne, jakou verzi rozšíření skutečně máte.
Vaše verze jádra Joomly: v administraci přejděte na Systém poté Informace o systému.
Nebo si přečtěte /administrator/manifests/files/joomla.xml a vezměte jeho prvek <version>. To
je ten druhý soubor, který jsem četl.
Verzi iCagendy nelze zjistit ze zdrojového kódu vaší veřejné stránky, a neměli byste se o to ani pokoušet. Front-endové assety rozšíření nesou celowebový mediální hash Joomly namísto čísla verze, a jediné číslo připomínající verzi, které se ve zdrojovém kódu stránky skutečně objevuje, patří balíčku assetů modulu kalendáře (nízké číslo, jako například 1.0.4) a s komponentou nemá nic společného. Jediným spolehlivým způsobem kontroly je soubor manifestu nebo obrazovka administrace.
Poté použijte pravidlo z horní části této stránky: řada 4.0.x nižší než 4.0.8 a zároveň jádro nižší než 6.1.2 znamená, že jste postiženi.
Jak aktualizovat
Nejbezpečnější cestou je aktualizace přímo přes Joomlu, a to po předchozí záloze:
- Zálohujte svůj web (soubory i databázi) před provedením jakýchkoli změn. Většina poskytovatelů hostingu nabízí zálohování jedním kliknutím, nebo můžete použít zálohovací rozšíření pro Joomlu.
- V administraci Joomly otevřete Rozšíření poté Správa poté Aktualizace a klikněte na Najít aktualizace. Pokud je zde uvedena aktualizace iCagendy, nainstalujte ji odsud.
- Pokud se zde žádná aktualizace neobjeví, stáhněte si aktuální vydání přímo od dodavatele, JoomliC, a nainstalujte je přes Rozšíření poté Instalovat.
- Kterou verzi nainstalovat: verze 4.0.8 je vydání, které tento problém opravuje, ale aktuální vydání v době psaní tohoto textu je 4.0.11, a vydání po 4.0.8 přidávají další ochranu kolem stejné funkce, včetně blokování spouštění kódu ze složky médií iCagendy. Přejděte rovnou na 4.0.11, místo abyste se zastavili u 4.0.8. Na starší řadě přejděte na 3.9.15 nebo novější.
- Alternativně, aktualizace jádra Joomly na verzi 6.1.2 nebo novější rovněž uzavírá tento konkrétní problém, ale není náhradou za aktualizaci rozšíření: chybějící kontrola oprávnění je v samotné iCagendě a opraví ji pouze aktualizace iCagendy.
- Po aktualizaci potvrďte nové číslo verze podle výše uvedených kroků a zkontrolujte, že se váš kalendář nadále zobrazuje a že odesílání událostí stále funguje tak, jak očekáváte.
Když už v tom budete, vyplatí se ověřit, že je aktuální i samotná Joomla a vaše ostatní rozšíření, protože stejná zásada platí pro všechna.
Pokud jste používali dotčenou verzi
Protože tato chyba byla zneužívána ještě předtím, než byla k dispozici oprava, web, na kterém běžela dotčená verze, by neměl předpokládat, že aktualizace stačí. Aktualizace uzavírá dveře, ale neřekne vám, zda jimi už někdo neprošel. Stojí za to zkontrolovat to s klidnou hlavou, a ne v očekávání nejhoršího: většina webů nenajde nic. Slovy samotného dodavatele:
Aktualizace uzavírá vstupní bod a chrání funkci pro přílohy souborů, ale neuklidí již napadený web. […] Uchovejte kopii veškerých podezřelých souborů jako důkaz, smažte je, změňte svá hesla a přihlašovací údaje k Joomle a proveďte audit celého webu, nejen složky iCagenda.
Zde je to, co vy (nebo váš webmaster) můžete na svém vlastním webu hledat:
-
PHP soubory ve složce
images/icagenda/frontend/attachments/. Tato složka by měla obsahovat pouze přílohy událostí. Na hostingu s Linuxem je kontrola tato:find images/icagenda/frontend/attachments -name '*.php' -type f - Neschválené anonymní události čekající ve vaší moderační frontě, což byste nečekali, pokud jste nikdy neotevřeli odesílání událostí veřejnosti.
- Záznamy ve vašich přístupových protokolech od skeneru, který se hlásí jako
icagenda-batch/1.0.
Od verze 4.0.8 iCagenda také sama kontroluje známky napadení a po aktualizaci vás upozorní, pokud nějaké najde. Dodavatel otevřeně přiznává, že chybějící upozornění není zárukou, takže jde spíše o užitečný signál než o čisté potvrzení.
Pokud něco z toho najdete, považujte web za napadený: uchovejte kopie podezřelých souborů jako důkaz a poté je odstraňte, změňte všechny přístupové údaje (administrace Joomly, databáze, FTP/SSH, hostingový panel), zkontrolujte své uživatelské účty v Joomle a skupiny, do kterých patří, a proveďte audit celého webu, nejen složky iCagenda. Obnovení ze zálohy pořízené před 15. červnem 2026 bývá často bezpečnější než čištění na místě, protože zadní vrátka ponechaná útočníkem mohou tento úklid zvrátit. Pokud má vaše organizace tým IT bezpečnosti nebo národní CERT, zapojte je.
Chci být jasný: tyto ukazatele jsem na vašem webu nekontroloval a nevím, zda byl váš web postižen. Tento seznam je zde proto, abyste si to mohli zkontrolovat sami.
Nemám webmastera / nevím, kudy dál
Pokud nejste osobou, která web udržuje, prosím, přesměrujte tuto stránku na toho, kdo to dělá (vašeho webového vývojáře, agenturu nebo poskytovatele hostingu). Rychle poznají výše uvedené kroky.
Pokud web udržujete sami a zaseknete se, rád vám zdarma pomůžu najít správný směr. Kontaktujte mě pomocí kontaktních údajů níže.
Kontakt
Evan Harris, bezpečnostní výzkumník
- E-mail: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
O takových problémech vás kontaktuji čistě proto, abych pomohl provozovatelům zabezpečit jejich weby. Pokud byste raději nechtěli, abych vás znovu kontaktoval, stačí mi dát vědět a budu to respektovat.
Odkazy
Oficiální hlášení a sledování
Dodavatel (JoomliC)