CVE-2019-3396
Corrija agora. Ela está sob exploração confirmada pelo CISA, tem exploit funcional público e 1 grupo(s) de ameaça a utilizam.
Grupos conhecidos por explorar esta vulnerabilidade (atribuição MITRE ATT&CK).
Apply updates per vendor instructions.
Resumo
Falha de injeção de template server-side (SSTI) na macro Widget Connector do Atlassian Confluence Server e Data Center, que permite path traversal e execução remota de código sem autenticação. É crítica de fato, não só no papel: não exige credenciais, conta com exploit público e módulo Metasploit, e está no catálogo KEV da CISA com exploração confirmada em campo.
Detalhamento técnico
A macro Widget Connector existe para embutir conteúdo externo (vídeos do YouTube, Vimeo, slideshows etc.) diretamente em páginas do Confluence. Para renderizar a pré-visualização desse conteúdo, o Confluence processa um template Velocity, e o nome/caminho desse template é controlado por um parâmetro interno da macro (_template) que não é validado corretamente — isso é a raiz do CWE-22 (path traversal) citado pela CISA.
O endpoint exposto é /rest/tinymce/1/macro/preview, que aceita um corpo JSON descrevendo a macro (name=widget) e seus parâmetros. Manipulando o parâmetro do template dentro desse JSON, um atacante consegue fazer o motor Velocity do servidor carregar e renderizar um template Velocity (.vm) hospedado fora da instância — por exemplo, via uma URL FTP controlada pelo atacante.
O problema real não é só path traversal para leitura de arquivo: o próprio conteúdo do template .vm remoto é interpretado pelo engine Velocity, que permite reflection Java arbitrária (chamadas como getClass().forName(...) para instanciar Runtime, FileOutputStream etc.). Isso transforma uma injeção de caminho em execução de código Java arbitrário no contexto do processo do Confluence — SSTI clássico que escala para RCE completo.
A vulnerabilidade foi descoberta por Daniil Dmitriev e está relacionada, no mesmo lote de correções da Atlassian, ao CVE-2019-3395 (SSRF via endpoint WebDAV), tratado em ticket JIRA separado.
Como é explorada
Exploração não exige autenticação nem configuração não padrão: basta acesso de rede ao endpoint /rest/tinymce/1/macro/preview de uma instância Confluence vulnerável. O atacante envia um POST com JSON especificando a macro widget e um parâmetro de template apontando para um recurso externo sob seu controle (no PoC público, um servidor FTP montado pelo próprio módulo de exploração, servindo arquivos .vm maliciosos).
O servidor Confluence busca esse template remoto e o executa como Velocity, rodando o payload Java embutido (por padrão cross-platform, mas o módulo Metasploit também oferece payloads nativos para Windows e Linux). O resultado é execução de comando arbitrário com os privilégios do processo Confluence — tipicamente suficiente para comprometimento total do host, dependendo de como o serviço roda.
Há exploit público (Exploit-DB, módulo Metasploit classificado como 'Excellent' em confiabilidade) desde abril de 2019, poucas semanas após a divulgação, e a CISA confirma exploração ativa em campo (entrada no KEV desde novembro de 2021). Não há registro, nas fontes consultadas, de uso confirmado em campanhas de ransomware, mas a combinação de RCE não autenticado + PoC maduro a torna atrativa para varredura massiva e comprometimento oportunista.
Versões
Como se proteger
A correção é atualizar para a versão fixa do branch correspondente: 6.6.12 para a linha 6.6.x, 6.10.3 para 6.10.x, 6.12.3 para 6.12.x, 6.13.3 para 6.13.x, 6.14.2 para 6.14.x, ou for para a versão 6.15.1 (que já incorpora a correção e foi o release recomendado pela Atlassian no advisory original). Instâncias em qualquer versão anterior a esses pontos de correção, dentro das respectivas linhas, estão vulneráveis.
As fontes consultadas não documentam um workaround de configuração oficial (flag, desabilitar macro específica via configuração) para mitigar sem atualizar — a orientação da CISA no KEV é genérica: 'aplicar atualizações conforme instruções do fornecedor'. Não assuma que WAF genérico ou bloqueio superficial de path traversal resolve: a exploração passa por um endpoint de API legítimo (macro/preview) com payload em JSON, o que dificulta assinaturas simples sem gerar falsos positivos ou negativos.
Dado o tempo desde a divulgação (2019) e a presença no KEV desde 2021, qualquer instância ainda na faixa vulnerável hoje deve ser tratada como alvo de varredura ativa; a atualização de versão é o único controle com eficácia comprovada nas fontes disponíveis.
Como detectar
Procure por requisições POST ao endpoint /rest/tinymce/1/macro/preview em logs de acesso do Confluence, especialmente com corpo JSON referenciando a macro 'widget' e parâmetros de template contendo URLs externas (ftp://, http://, file://) ou padrões de path traversal (../). Conexões de saída inesperadas do host do Confluence para portas FTP ou HTTP não usuais também são sinal, já que o vetor documentado publicamente usa um servidor externo controlado pelo atacante para hospedar o template malicioso.
Não há, nas fontes consultadas, um indicador de comprometimento único e confiável pós-exploração (o payload final é arbitrário); a detecção depende de monitorar o padrão de requisição no endpoint específico e o tráfego de rede de saída anômalo do servidor Confluence.