Ako ste od mene primili e-poštu koja vas upućuje na ovu stranicu, to je zato što vaše web-mjesto, čini se, koristi verziju iCagende (JoomliCov com_icagenda, proširenja za kalendar događaja za sustav za upravljanje sadržajem Joomla) koja je zahvaćena poznatim sigurnosnim propustom. Ova stranica objašnjava u čemu je propust, kako provjeriti odnosi li se na vas i kako ga otkloniti.

Ova se obavijest odnosi na CVE-2026-48939, kritičan, aktivno iskorištavan propust koji omogućuje neautenticirano proizvoljno učitavanje datoteka koje vodi do udaljenog izvršavanja koda kroz obrazac „Submit an Event” na prednjem dijelu proširenja. Dodan je u katalog Known Exploited Vulnerabilities američke Agencije za kibernetičku sigurnost i sigurnost infrastrukture (CISA) 10. srpnja 2026.

Dva uvjeta, i oba moraju vrijediti

Vaše je web-mjesto zahvaćeno propustom koji dovodi do udaljenog izvršavanja koda kada su oba ova uvjeta istinita:

  1. iCagenda je na liniji 4.0.x, na verziji ispod 4.0.8 (to jest, 4.0.0 do 4.0.7), i
  2. Jezgra Joomle je ispod 6.1.2.

Ako je iCagenda 4.0.8 ili novija, niste zahvaćeni. A ako je jezgra vaše Joomle 6.1.2 ili novija, isto tako niste zahvaćeni, čak i uz staru iCagendu, jer sama jezgra blokira učitavanje. Ako to opisuje vaše web-mjesto, ovdje možete prestati čitati, osim napomene da je ažuriranje iCagende ipak vrijedno provesti.

Drugi je uvjet dio u kojem se ova stranica ne slaže sa samom proizvođačevom obavijesti, koja tvrdi da propust doseže samo web-mjesta na Joomli 6. On jednako doseže i potpuno ažurirana web-mjesta na Joomli 4 i Joomli 5, a dokaze za to iznosim u nastavku, jer ćete, slijedite li poveznicu, vidjeti da proizvođač tvrdi suprotno.

Ako ste na zahvaćenoj verziji, ažurirajte iCagendu, a budući da se ovaj propust iskorištavao prije nego što je ispravak postojao, također provjerite ima li na vašem web-mjestu znakova da je netko ondje bio prije vas (vidi Ako ste bili na zahvaćenoj verziji u nastavku).

Napomena za sve na starijoj liniji 3.9.x. Objavljeni raspon CVE-a uključuje i 3.9.x, a proizvođač je zakrpao i tu liniju, u verziji 3.9.15. Prema mojem vlastitom čitanju i testiranju, linija 3.9.x za učitavanje koristi drugačiji, zaštićen put u kodu, pa ishod u obliku udaljenog izvršavanja koda ondje nije dohvatljiv: na Joomli 4 i 5 učitavanje blokira jezgra, a na Joomli 6 taj put u kodu uopće više ne postoji, pa značajka jednostavno vraća pogrešku. To nije razlog da zanemarite ažuriranje. Ista izdanja ispravljaju propust u provjeri ovlaštenja koji anonimnom posjetitelju omogućuje da na vaše web-mjesto ubaci neodobreni događaj (a na Joomli 4 i 5, uz njega i datoteku dopuštene vrste). Niža ozbiljnost, ali i dalje vrijedi ispraviti: ažurirajte na 3.9.15 ili noviju verziju. Imajte na umu i da proizvođač sigurnosne zakrpe za liniju 3.9.x pruža samo do 13. listopada 2026.

Je li ova poruka vjerodostojna?

Da. Ovo je dobronamjerna obavijest po načelu odgovorne objave od neovisnog istraživača sigurnosti. Ne tražim od vas novac, lozinke ni pristup vašem web-mjestu i nisam pokušao provaliti u njega, bilo što učitati niti bilo što iskoristiti.

Ono što sam pročitao bile su dvije javne datoteke koje vaše web-mjesto poslužuje svakome tko ih zatraži: manifest komponente iCagende na /administrator/components/com_icagenda/icagenda.xml i manifest jezgre Joomle na /administrator/manifests/files/joomla.xml. Obje su obične XML datoteke s verzijom, i riječ je o istim dvjema datotekama opisanima u odjeljku Kako provjeriti svoje verzije u nastavku, tako da možete vidjeti točno ono što sam vidio i ja. To je sve. Konkretno nisam poslao vaš obrazac za prijavu događaja, nisam ništa učitao i nisam zatražio direktorij za privitke na vašem web-mjestu. Ta se putanja dalje na ovoj stranici pojavljuje samo kao mjesto na kojem vi možete provjeriti vlastito web-mjesto. Ništa u ovoj provjeri ne dira vaše podatke, vašu administratorsku zonu niti bilo koji privatni dio vašeg web-mjesta.

Ako želite provjeriti tko sam, pogledajte kontaktne podatke na dnu ove stranice i stranicu O meni.

Zašto je to važno

iCagenda na Joomla web-mjestima objavljuje kalendar događaja. Jedna od njezinih značajki posjetitelju omogućuje da putem obrasca na prednjem dijelu prijavi događaj, uz mogućnost prilaganja datoteke, koja završava u images/icagenda/frontend/attachments/.

U zahvaćenim verzijama ta se prijava prihvaća bez prijave, a privitak se zapisuje na disk bez ikakve provjere o kojoj je vrsti datoteke riječ, zadržavajući ime i ekstenziju koje je odabrao onaj tko je datoteku poslao. Ta kombinacija napadaču omogućuje da na vaš poslužitelj postavi program po vlastitom izboru i pokrene ga: potpuno udaljeno izvršavanje koda, bez potrebe za računom i bez ikakve suradnje s vaše strane.

Ništa ne treba biti uključeno da bi se ovo odnosilo na vas. Obrazac ne mora biti objavljen ni vidljiv posjetiteljima: u zahvaćenim verzijama upravljački kôd (kontroler) iza njega prihvaćao je prijavu bez obzira na to.

Ovo nije teorijski rizik. NVD ga je ocijenio s 9,8 od 10 (a nadležno tijelo za dodjelu s 10,0 prema novijem sustavu bodovanja), i aktivno se iskorištava u stvarnim uvjetima. Proizvođač izvještava da je iskorištavanje počelo 15. lipnja 2026. u 08:00 UTC, prije nego što je ispravak postojao, i opisuje napade kao automatizirane. CISA ga je dodala u katalog Known Exploited Vulnerabilities 10. srpnja 2026.

Ovo opisujem na razini koja je vlasniku web-mjesta potrebna da bi postupio, i ništa dalje od toga. Ne objavljujem pojedinosti koje bi nekome omogućile da to reproducira, i molio bih vas da to ne pokušavate ni na vlastitom ni na tuđem web-mjestu. Očitavanje vaša dva broja verzije, kako je opisano u nastavku, govori vam sve što trebate znati da biste odlučili što učiniti.

Ako je moja e-poruka navela ovaj propust, to znači da verzije koje vaše web-mjesto prijavljuje po oba mjerila spadaju u zahvaćeni raspon. Nisam testirao je li vaše konkretno web-mjesto iskoristivo ili je već kompromitirano.

Gdje se ova stranica razilazi s proizvođačevom obavijesti

Proizvođačevu obavijest vrijedi pročitati i poveznicu na nju donosim u nastavku. Ispravak su objavili brzo, a njihove su upute dobre. No jedna rečenica o dosegu propusta u njoj ne stoji, a kako je riječ upravo o rečenici koja bi većinu čitatelja ove stranice navela da se opuste, radije ću pokazati svoj rad nego samo tvrditi. Obavijest kaže:

Nesigurna učitavanja datoteka već su prema zadanim postavkama bila blokirana na svim verzijama Joomle prije Joomle 6. Samo je instalacija iCagende na Joomli 6 (6.0.0-6.1.1) imala kritičnu ranjivost učitavanja.

Evo što sam izmjerio, na vlastitim izoliranim instalacijama. Web-mjesto treće strane nije u tome sudjelovalo ni u jednom trenutku.

  • iCagenda 4.0.x učitavanje obavlja preko framework klase Joomla\Filesystem\File, koja dolazi iz paketa joomla/filesystem što ga jezgra Joomle nosi sa sobom. Ne koristi stariju klasu istog imena iz Joomla CMS-a, onu koja oduvijek nosi provjeru sigurnosti datoteke i za koju pretpostavljam da je ona na koju obavijest misli.
  • Ta je metoda iz frameworka vlastitu provjeru sigurnosti datoteke (parametar $allowUnsafe i test isSafeFile) dobila tek u joomla/filesystem 4.2.0, verziji koja dolazi uz Joomlu 6.1.2.
  • Verzije koje su stvarno isporučene uz izdanja Joomle koja sam provjerio: Joomla 4.4.14 nosi filesystem 2.0.2 (bez provjere), Joomla 5.4.7 nosi 3.2.0 (bez provjere), i Joomla 6.1.2 nosi 4.2.0 (provjera postoji).

Dakle, potpuno zakrpano web-mjesto na Joomli 4 ili Joomli 5 koje koristi iCagendu 4.0.0 do 4.0.7 jest izloženo, i zato ova stranica uvjet vezan uz Joomlu navodi kao „ispod 6.1.2” umjesto „samo Joomla 6”. Ništa u objavljenom zapisu CVE-a, u NVD zapisu ni u CISA-inu katalogu ne ograničava ovaj propust prema verziji Joomle; rečenica iz obavijesti jedino je mjesto na kojem se takvo ograničenje pojavljuje.

Kako provjeriti svoje verzije

Ne morate mi vjerovati na riječ ni za jedan od ta dva broja, a provjeriti ih treba oba.

Vaša verzija iCagende, iz datoteke manifesta (prijava nije potrebna): otvorite

yourdomain.com/administrator/components/com_icagenda/icagenda.xml

i pročitajte njezin element <version>. To je jedna od dviju datoteka koje sam pročitao.

Vaša verzija iCagende, iz administratorske zone:

  1. Prijavite se u svoju Joomla administraciju (obično na yourdomain.com/administrator).
  2. Idite na System pa Manage pa Extensions.
  3. Potražite iCagendu i zabilježite instaliranu verziju.

Pazite koju datoteku icagenda.xml čitate. Paket iCagende uz sebe isporučuje i ugrađeni dodatak za pretraživanje s manifestom istog imena, koji nosi svoj vlastiti, nepovezani broj verzije. Samo vam putanja komponente iznad govori koju verziju proširenja stvarno koristite.

Verzija vaše jezgre Joomle: u administraciji idite na System pa System Information. Ili pročitajte /administrator/manifests/files/joomla.xml i uzmite njezin element <version>. To je druga datoteka koju sam pročitao.

Verziju iCagende ne možete utvrditi iz izvornog koda svoje javne stranice, i ne biste to trebali ni pokušavati. Resursi proširenja na prednjem dijelu nose zajednički hash medija cijelog Joomla web-mjesta, a ne broj verzije, a jedini broj nalik verziji koji se doista pojavljuje u izvornom kodu stranice pripada paketu resursa modula kalendara (nizak broj poput 1.0.4) i nema nikakve veze s komponentom. Datoteka manifesta ili zaslon u administraciji jedina su pouzdana provjera.

Zatim primijenite pravilo s vrha ove stranice: linija 4.0.x ispod 4.0.8 i jezgra ispod 6.1.2 znači da ste zahvaćeni.

Kako se nadograditi

Najsigurniji je put ažurirati se kroz samu Joomlu, uz prethodnu izradu sigurnosne kopije:

  1. Napravite sigurnosnu kopiju svog web-mjesta (datoteke i bazu podataka) prije nego što napravite ikakve izmjene. Većina pružatelja hostinga nudi sigurnosne kopije jednim klikom, ili upotrijebite proširenje za sigurnosno kopiranje Joomle.
  2. U Joomla administraciji otvorite Extensions pa Manage pa Update, i kliknite Find Updates. Ako je navedeno ažuriranje za iCagendu, instalirajte ga odavde.
  3. Ako se ondje ne pojavi ažuriranje, preuzmite trenutačno izdanje izravno od proizvođača, JoomliC, i instalirajte ga putem Extensions pa Install.
  4. Koju verziju instalirati: 4.0.8 izdanje je koje ispravlja ovaj propust, ali trenutačno izdanje u vrijeme pisanja jest 4.0.11, a izdanja nakon 4.0.8 dodaju dodatnu zaštitu oko iste značajke, uključujući blokiranje izvršavanja koda iz medijske mape iCagende. Idite na 4.0.11, umjesto da se zaustavite na 4.0.8. Na starijoj liniji, idite na 3.9.15 ili noviju.
  5. Alternativno, nadogradnja jezgre Joomle na 6.1.2 ili noviju također zatvara ovaj konkretni propust, ali to nije zamjena za ažuriranje proširenja: propust u provjeri ovlaštenja nalazi se u samoj iCagendi i ispravlja ga jedino ažuriranje iCagende.
  6. Nakon nadogradnje, potvrdite novi broj verzije prema gornjim koracima i provjerite prikazuje li se kalendar i dalje ispravno te radi li prijava događaja onako kako očekujete.

Kad ste već ondje, vrijedi provjeriti jesu li sama Joomla i vaša ostala proširenja ažurni, budući da isto načelo vrijedi za sve njih.

Ako ste bili na zahvaćenoj verziji

Budući da se ovaj propust iskorištavao prije nego što je ispravak bio dostupan, web-mjesto na kojem je radila zahvaćena verzija ne bi trebalo pretpostaviti da je samo ažuriranje dovoljno. Ažuriranje zatvara vrata, ali vam ne govori je li kroz njih netko već prošao. To je vrijedno provjeriti mirno, a ne pretpostavljajući najgore: većina web-mjesta neće pronaći ništa. Proizvođačevim vlastitim riječima:

Ažuriranje zatvara ulaznu točku i štiti značajku privitka datoteka, ali ne čisti već kompromitirano web-mjesto. […] Sačuvajte kopiju svih sumnjivih datoteka kao dokaz, izbrišite ih, promijenite svoje Joomla lozinke i vjerodajnice te provjerite cijelo svoje web-mjesto, ne samo mapu iCagende.

Evo što vi (ili vaš webmaster) možete potražiti na svom vlastitom web-mjestu:

  • PHP datoteke pod images/icagenda/frontend/attachments/. Ta bi mapa uvijek trebala sadržavati samo privitke uz događaje. Na Linux poslužitelju, provjera glasi:

    find images/icagenda/frontend/attachments -name '*.php' -type f
    
  • Neodobreni anonimni događaji koji čekaju u vašem redu za moderiranje, koje ne biste očekivali ako nikada niste javnosti otvorili prijavu događaja.
  • Zapisi u vašim zapisnicima pristupa (access log) od skenera koji se predstavlja kao icagenda-batch/1.0.

Od verzije 4.0.8 nadalje, iCagenda i sama provjerava znakove kompromitacije te nakon ažuriranja podiže upozorenje ako ih pronađe. Proizvođač je jasno rekao da odsutnost tog upozorenja nije jamstvo, pa je to koristan signal, a ne potvrda da je sve u redu.

Ako pronađete bilo što od navedenog, tretirajte web-mjesto kao kompromitirano: sačuvajte kopije sumnjivih datoteka kao dokaz, a zatim ih uklonite, promijenite sve vjerodajnice (Joomla administracija, baza podataka, FTP/SSH, hosting panel), pregledajte svoje Joomla korisničke račune i grupe kojima pripadaju, te provjerite cijelo web-mjesto, a ne samo mapu iCagende. Vraćanje iz sigurnosne kopije napravljene prije 15. lipnja 2026. često je sigurnije od čišćenja na licu mjesta, jer stražnja vrata koja su ostala mogu poništiti čišćenje. Ako vaša organizacija ima tim za IT sigurnost ili nacionalni CERT, uključite ih.

Želim biti jasan: nisam provjeravao vaše web-mjesto ni na jedan od ovih pokazatelja i ne znam je li vaše web-mjesto bilo zahvaćeno. Ovaj je popis ovdje kako biste mogli provjeriti sami.

Nemam webmastera / zapeo sam

Ako web-mjesto ne održavate vi, proslijedite ovu stranicu osobi koja to čini (vašem web developeru, agenciji ili pružatelju hostinga). Gornje će korake brzo prepoznati.

Ako web-mjesto održavate sami i zapnete, rado ću vas besplatno usmjeriti u pravom smjeru. Javite se putem kontakata u nastavku.

Kontakt

Evan Harris, sigurnosni istraživač

Javljam se povodom ovakvih pitanja isključivo kako bih pomogao operaterima da osiguraju svoja web-mjesta. Ako ne želite da vas ponovno kontaktiram, samo mi recite i poštovat ću to.

Izvori

Službene obavijesti i praćenje

Proizvođač (JoomliC)