Scanner em Python e prova de conceito para CVE-2026-49049, uma escrita arbitrária de arquivos no Joomla Helix3 que permite upload de web shell PHP e execução remota de código.
Este repositório contém um scanner em Python e uma prova de conceito para uma vulnerabilidade no componente Joomla Helix3. O bug é um problema de escrita arbitrária de arquivos que pode levar à execução remota de código (RCE) quando um atacante consegue gravar um payload PHP em um local acessível pela web.
O comportamento vulnerável ocorre quando um parâmetro de requisição é usado para controlar um caminho de arquivo ou o conteúdo de um arquivo sem a validação adequada. No caso da interface AJAX do Helix3, o endpoint aceita dados que podem ser usados para gravar arquivos no sistema de arquivos do servidor. Se a aplicação não restringir o caminho de destino e não verificar o conteúdo, um atacante pode criar um script PHP malicioso em um local que o servidor web executa.
Em outras palavras, a vulnerabilidade não é apenas "um arquivo pode ser gravado" — é uma cadeia perigosa:
Este é um cenário clássico de escrita arbitrária de arquivos para web shell.
Uma vez que um atacante consegue gravar um arquivo PHP na raiz do site ou em outro diretório executável, ele pode:
O impacto é grave porque permite que um atacante transforme uma simples falha de escrita de arquivo em comprometimento total do servidor.
O problema raiz é tipicamente semelhante a esta lógica:
$file = $_POST['layoutName'];
$content = $_POST['content'];
file_put_contents($file, $content);
Se o valor de $file é controlado pelo atacante e o caminho não é restrito, a aplicação pode gravar código PHP em um caminho executável. O script malicioso fica então disponível para o navegador e pode ser executado pelo servidor web.
Este projeto inclui uma ferramenta Python multithread que tenta:
Ele registra alvos vulneráveis em results.txt e armazena a saída PHP bruta em raw_result.txt.
A correção deve eliminar gravações de arquivos não confiáveis e impor validação estrita. As etapas de remediação recomendadas estão abaixo.
Atualize o Joomla e o componente/plugin Helix3 para a versão estável mais recente. Atualizações de segurança frequentemente removem ou restringem o endpoint vulnerável que permite operações de escrita arbitrária.
Se a funcionalidade AJAX do Helix3 não for necessária, desative-a completamente. Remover o acesso ao endpoint inseguro reduz significativamente a superfície de ataque.
Não permita caminhos arbitrários no sistema de arquivos. A aplicação deve permitir gravações apenas dentro de um diretório pequeno e fixo que não seja acessível publicamente e que não seja executado como PHP.
A validação deve rejeitar:
../Antes de gravar qualquer arquivo:
Apenas administradores confiáveis devem ter permissão para usar endpoints que gravam arquivos. Exija autenticação adequada e verificações de permissão antes de aceitar qualquer requisição de gravação.
Nunca grave conteúdo bruto controlado pelo atacante em arquivos executáveis sem validação estrita. Além disso, o hardening do servidor deve incluir:
requestsCrie um arquivo contendo as URLs alvo, por exemplo targets.txt:
http://example.com
https://joomla-site.local
http://127.0.0.1
Em seguida, execute:
python3 cve-2026-49049.py targets.txt
O script criará:
results.txt — URLs vulneráveis detectadasraw_result.txt — payloads PHP brutos observados durante os testesEste projeto destina-se a fins educacionais, pesquisa de segurança legítima e avaliação de vulnerabilidades autorizada. Ele não deve ser usado contra sistemas sem permissão explícita. O uso indevido é estritamente proibido.
O conteúdo deste repositório é fornecido para ajudar pesquisadores e administradores a entender, identificar e remediar um problema de segurança real. Use-o com responsabilidade e apenas em ambientes controlados onde você tenha autorização apropriada.