← back
CVE-2019-3396criticalunder attackransomwareCWE-22

CVE-2019-3396

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA, has a working public exploit and 1 threat group(s) use it.

ssvc Actcvss 9.8epss 100%
from disclosure to weapon15 days
Published on NVDMar 25
1st PoC+15d
metasploitMar 25
CISA KEV+954d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 group(s)38 public exploit(s)
Who exploits it1

Groups known to exploit this vulnerability (MITRE ATT&CK attribution).

Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
Confluence Server e Data Center: todas as versões antes de 6.6.12; de 6.7.0 até antes de 6.12.3; de 6.13.0 até antes de 6.13.3; de 6.14.0 até antes de 6.14.2.
Fixed in
6.6.12 (branch 6.6.x), 6.10.3 (branch 6.10.x), 6.12.3 (branch 6.12.x), 6.13.3 (branch 6.13.x), 6.14.2 (branch 6.14.x), e 6.15.1 (release consolidado recomendado pela Atlassian).

How to protect

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.

How to detect

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.

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.
The Widget Connector macro in Atlassian Confluence Server before version 6.6.12 (the fixed version for 6.6.x), from version 6.7.0 before 6.12.3 (the fixed version for 6.12.x), from version 6.13.0 before 6.13.3 (the fixed version for 6.13.x), and from version 6.14.0 before 6.14.2 (the fixed version for 6.14.x), allows remote attackers to achieve path traversal and remote code execution on a Confluence Server or Data Center instance via server-side template injection.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
public PoCs found38 VexDay Proof
exploitdbVexDay Proofwww.exploit-db.com/exploits/46731exploitdbwww.exploit-db.com/exploits/49465unverifiedgithubgithub.com/Yt1g3r/CVE-2019-3396_EXP174githubgithub.com/jas502n/CVE-2019-3396145githubgithub.com/pyn3rd/CVE-2019-339639githubgithub.com/x-f1v3/CVE-2019-339622githubgithub.com/0xNinjaCyclone/cve-2019-33963githubgithub.com/Avento/CVE-2019-3396-Memshell-for-Behinder2githubgithub.com/PetrusViet/cve-2019-33962githubgithub.com/am6539/CVE-2019-33960githubgithub.com/HK4zCzi/CVE-2019-3396-Velocity-Server-Side-Template-Injection0githubgithub.com/vntest11/confluence_CVE-2019-33960githubgithub.com/tranphuc2005/CVE-2019-33960githubgithub.com/tanw923/test10githubgithub.com/skommando/CVE-2019-3396-confluence-poc0githubgithub.com/JonathanZhou348/CVE-2019-3396TEST0githubgithub.com/dothanthitiendiettiende/CVE-2019-33960githubgithub.com/xiaoshuier/CVE-2019-33960githubgithub.com/quanpt103/CVE-2019-33960githubgithub.com/W2Ning/CVE-2019-33960githubgithub.com/yuehanked/cve-2019-33960githubgithub.com/46o60/CVE-2019-3396_Confluence0githubgithub.com/kh4sh3i/CVE-2019-33960githubgithub.com/tno01/cve-2019-33960githubgithub.com/s1xg0d/CVE-2019-33960vulncheckvulncheck.com/xdb/7f86f9ea50f4unverifiedvulncheckvulncheck.com/xdb/c0e4abf9eb81unverifiedvulncheckvulncheck.com/xdb/c8e79cc8ed08unverifiedvulncheckvulncheck.com/xdb/fb62fcd4b481unverifiedvulncheckvulncheck.com/xdb/7f52c8890f19unverifiedvulncheckvulncheck.com/xdb/fb022ff5fe3aunverifiedvulncheckvulncheck.com/xdb/f0c5b22fe8f3unverifiedvulncheckvulncheck.com/xdb/328bcc29bf72unverifiedvulncheckvulncheck.com/xdb/c8a8c265c9e9unverifiedcve_referencepacketstormsecurity.com/files/152568/Atlassian-Confluence-Widget-Connector-Macro-Velocity-Template-Injection.htmlunverifiedcve_referencepacketstormsecurity.com/files/161065/Atlassian-Confluence-6.12.1-Template-Injection.htmlunverifiedcve_referencewww.exploit-db.com/exploits/46731/unverifiedvulncheckvulncheck.com/xdb/cf39bffa0254unverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.