← back
CVE-2026-48939criticalunder attackCWE-434

Joomla Extension - icagenda.com - Remote Code Execution in iCaganda extension for Joomla < 4.0.8/3.9.15

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 10epss 83%
from disclosure to weapon9 days
Published on NVDJun 20
1st PoC+9d
CISA KEV+20d
exploitation probability
83%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
4 public exploit(s)
Action required by CISAfederal deadline: 2026-07-13

Apply mitigations in accordance with vendor instructions, ensuring compliance with CISA’s BOD 26-04 Prioritizing Security Updates Based on Risk (see URL in Notes) guidance and CISA’s “Forensics Triage Requirements” (see URL in Notes). Follow applicable BOD 26-04 guidance for cloud services or discontinue use of the product if mitigations are unavailable. Stakeholders are responsible for evaluating each asset's internet exposure and ensuring adherence to BOD 26-04 patching guidelines.

Summary

O componente iCagenda para Joomla permite que qualquer visitante não autenticado envie um arquivo PHP através do formulário público de submissão de eventos e o execute no servidor, resultando em comprometimento total. O CVSS 4.0 de 10.0 é justificado no cenário mais grave, mas a execução do PHP só ocorre em sites rodando Joomla 6 — em Joomla 2.5, 3, 4 e 5 o core bloqueia uploads inseguros por padrão, e o impacto se reduz a criação de eventos não aprovados sem login. A falha está no catálogo KEV da CISA com exploração ativa confirmada antes mesmo da divulgação pública completa.

Technical detail

Existem dois defeitos combinados na mesma funcionalidade. O primeiro é upload irrestrito de arquivo (CWE-434, classificação usada pela CISA no KEV): o formulário frontend 'Submit an Event' do iCagenda tem um campo de anexo cujo processamento grava o arquivo enviado com a extensão original, sem allowlist de extensões, sem verificação de MIME type e sem inspeção de conteúdo, diretamente em images/icagenda/frontend/attachments/ sob a raiz web pública.

O segundo defeito é controle de acesso inadequado (CWE-284, classificação usada no PoC do pesquisador): o iCagenda tem uma opção que restringe quem pode submeter eventos, normalmente configurada como 'Registered' (apenas usuários logados). Essa verificação é aplicada somente na view que decide se o formulário é exibido na tela — o controller que processa de fato a submissão, acessível em index.php?option=com_icagenda&task=registration.submit, nunca checa essa permissão. Isso significa que a restrição de acesso é cosmética: qualquer requisição POST direta ao endpoint de processamento contorna a exigência de login, independentemente da configuração do site.

O atacante controla o conteúdo do arquivo e sua extensão (o valor de jform[attachment]), o único fator fora de seu controle é se a instância de Joomla subjacente permite a execução do PHP resultante — o que, segundo o advisory do fornecedor (JoomliC), só acontece no Joomla 6, já que versões anteriores do core Joomla filtram uploads potencialmente perigosos por padrão nesse caminho.

How it’s exploited

Não é necessária conta nem sessão autenticada. O atacante obtém um token de formulário CSRF de qualquer página pública do iCagenda (por exemplo, a lista de eventos) e envia uma requisição POST diretamente ao endpoint de processamento com um arquivo .php disfarçado de anexo. A opção 'Registered only' do componente não bloqueia essa requisição porque a checagem nunca chega ao controller.

Em sites rodando Joomla 6, o arquivo gravado em images/icagenda/frontend/attachments/ é executável: uma segunda requisição GET a esse caminho executa o PHP enviado, entregando execução remota de comando completa — leitura de dados, modificação de conteúdo, instalação de backdoor ou uso do servidor como pivô. Em Joomla 2.5, 3, 4 e 5, o mesmo bypass de autenticação existe, mas o core bloqueia a execução do upload malicioso; o resultado nesses casos é limitado à criação de eventos não aprovados por um visitante anônimo, um impacto bem menor que o sugerido pelo CVSS de 10.0.

Houve exploração ativa antes da divulgação pública completa: um pesquisador identificou em log de acesso de cliente um bot autoidentificado com User-Agent icagenda-batch/1.0 fazendo o upload seguido imediatamente de uma requisição ao arquivo enviado — padrão de quem já sabia exatamente onde bater. O próprio fornecedor (JoomliC) relatou ataques automatizados desde 15/06/2026, 08h UTC. A CISA incluiu a falha no catálogo KEV em 10/07/2026 com prazo de correção de apenas três dias (13/07/2026), sob a diretriz BOD 26-04 — prazo curtíssimo que reflete a gravidade e a exploração confirmada, não um risco teórico.

Versions

Affected
iCagenda 3.2.1 até 3.9.14 (linha 3.x) e 4.0.0 até 4.0.7 (linha 4.x)
Fixed in
4.0.8 (linha 4.x, lançada em 15/06/2026) e 3.9.15 (backport para a linha legada 3.x, lançada em 16/06/2026)

How to protect

Atualizar para iCagenda 4.0.8 (linha 4.x, lançada em 15/06/2026) ou 3.9.15 (linha 3.x legada, lançada em 16/06/2026) é a correção. Não há detalhamento técnico disponível sobre exatamente o que a versão corrigida altera no código de validação de upload ou no controller de submissão — apenas que ambos os problemas (upload sem restrição e bypass de controle de acesso) são endereçados nessas versões.

Se a atualização imediata não for possível, a única alternativa real documentada é remover ou renomear temporariamente a pasta do componente com_icagenda no servidor, o que elimina o vetor mas derruba toda a funcionalidade de calendário/eventos do site — custo alto, mas efetivo. Um mito que precisa ser desfeito explicitamente: despublicar o componente na área administrativa do Joomla NÃO protege contra a falha, porque o endpoint de processamento (task=registration.submit) permanece acessível independentemente do estado de publicação ou de o menu de submissão estar visível.

Dependência do core do Joomla não é mitigação suficiente: mesmo que o site rode uma versão do Joomla anterior à 6 (onde o upload malicioso não é executado), o bypass de controle de acesso continua ativo e permite criação de eventos não aprovados por qualquer visitante sem login — um problema de integridade que só a atualização do componente resolve.

How to detect

Procurar em logs de acesso web por requisições POST para index.php?option=com_icagenda&task=registration.submit (ou variações com task=submit) contendo um campo jform[attachment] com extensão executável (.php, .phtml, etc.), seguidas de requisições GET para caminhos sob /images/icagenda/frontend/attachments/ com o mesmo padrão de nome de arquivo — especialmente se a URL contiver parâmetros suspeitos como ?cmd=. O User-Agent icagenda-batch/1.0 foi observado em ataques reais reportados pelo fornecedor e por pesquisadores, mas é trivialmente forjável pelo atacante; tratar como indicador adicional de triagem, não como confirmação isolada de comprometimento. Na ausência desses padrões nos logs, revisar diretamente o conteúdo da pasta de anexos por arquivos com extensão executável é o método mais confiável de detecção retroativa.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
A vulnerability in the iCagenda extension for Joomla allows the upload of arbitrary files in the file attachment feature, ultimately resulting in PHP code upload and execution.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:A/AU:Y/U:Red
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.