← back
CVE-2016-3976highunder attackCWE-22

CVE-2016-3976

83Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 7.5epss 47%
from disclosure to weapon75 days
Published on NVDApr 7
1st PoC+75d
CISA KEV+2036d
exploitation probability
47%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
3 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

Path traversal na CrashFileDownloadServlet do SAP NetWeaver Application Server Java, versões 7.1 a 7.5, permite a leitura de arquivos arbitrários do sistema via parâmetro fileName sem autenticação. A CISA confirma exploração ativa em ambiente real e inclui a falha no catálogo KEV — o risco não é teórico, apesar do CVSS 7.5 (só confidencialidade) subestimar o impacto real em ambientes SAP, onde ler o arquivo certo (chaves, credenciais) costuma virar acesso administrativo completo.

Technical detail

A falha é um directory traversal clássico (CWE-22) na servlet CrashFileDownloadServlet, componente do SAP NetWeaver AS Java usado para download de arquivos de crash/dump. O parâmetro fileName da requisição HTTP é concatenado ao caminho base sem sanitização adequada contra sequências de escape de diretório, permitindo que o atacante suba na árvore de diretórios usando '..\' (dot-dot-backslash, sintaxe de path Windows) para acessar arquivos fora do diretório esperado pela servlet.

O atacante controla inteiramente o valor de fileName na requisição GET. Não há indicação nas fontes de que a servlet valide extensão, whitelist de diretório ou normalize o caminho antes de ler o arquivo do disco — a única barreira é a ausência de tratamento correto de '..' na string, o que a torna trivialmente contornável.

O PoC divulgado pela ERPScan (descobridora da falha) mostra a leitura de SecStore.key, arquivo que armazena material criptográfico usado pelo NetWeaver para proteger credenciais e segredos internos do secure storage. Isso eleva o impacto de 'leitura de arquivo' para potencial comprometimento total: quem obtém esse arquivo, combinado com outras informações do sistema, pode decifrar segredos armazenados e escalar para acesso administrativo — daí a nota do próprio advisory de que a falha 'permite ler arquivos e depois escalar privilégios', mesmo o CVSS oficial marcando apenas Confidencialidade Alta e Integridade/Disponibilidade nulas.

How it’s exploited

O vetor é uma única requisição HTTP GET não autenticada para o endpoint da CrashFileDownloadServlet, com o parâmetro fileName manipulado (ex.: sequência '..\' seguida do caminho do arquivo alvo). Não há necessidade de autenticação prévia, interação do usuário, nem configuração não padrão conhecida — a servlet é parte do runtime padrão do NetWeaver AS Java 7.1-7.5, exposta em qualquer instância acessível via HTTP/HTTPS. A complexidade de exploração é baixa: existe PoC público desde 2016 (Exploit-DB EDB-ID 39996, mesmo conteúdo do advisory ERPSCAN-16-012) e o vetor é apenas manipulação de parâmetro de URL.

O pré-requisito real de impacto está no que o atacante já sabe sobre a estrutura de diretórios do NetWeaver: caminhos como o de SecStore.key são bem documentados publicamente, o que reduz drasticamente o esforço de reconhecimento. A ERPScan optou por não publicar o PoC completo mesmo após o prazo de divulgação responsável, justamente por reconhecer que muitas instâncias SAP NetWeaver ficam expostas à internet e a falha permite exfiltração de segredos que viabilizam escalonamento de privilégios subsequente.

A inclusão no catálogo KEV da CISA (adicionada em 03/11/2021, prazo de correção 03/05/2022) confirma exploração observada em ambiente real, embora a CISA não detalhe se está associada a campanhas de ransomware ('Known To Be Used in Ransomware Campaigns: Unknown'). O resultado final para o atacante é leitura de arquivo arbitrário no sistema de arquivos do servidor NetWeaver, sem escrita ou execução direta — mas com potencial de virar ponto de entrada para comprometimento mais profundo dependendo do arquivo lido.

Versions

Affected
SAP NetWeaver Application Server (AS) Java, versões 7.1 a 7.5 (conforme advisory ERPScan e descrição oficial da CVE). O próprio advisório da ERPScan nota que outras versões podem estar afetadas, mas não foram testadas.
Fixed in
Correção disponibilizada pela SAP via Security Note 2234971 (publicada em 08/03/2016). As fontes disponíveis não detalham números exatos de patch level/Support Package por sub-versão — consultar a nota diretamente no SAP Support Launchpad para os patches específicos aplicáveis a cada versão do AS Java 7.1-7.5.

How to protect

O fornecedor publicou correção via SAP Security Note 2234971 (data de publicação pública: 08/03/2016). A ação recomendada pela CISA no catálogo KEV é 'aplicar atualizações conforme instruções do fornecedor' — as fontes disponíveis não especificam números de patch level ou Support Package Stack exatos que corrigem cada sub-versão entre 7.1 e 7.5; para aplicar a correção é necessário acessar a SAP Note 2234971 diretamente no SAP Support Launchpad (link nas referências) e seguir a versão de patch indicada para o ambiente específico.

Como paliativo real quando a instalação imediata da nota não é viável: restringir o acesso à CrashFileDownloadServlet via regras de proxy reverso ou firewall de aplicação que bloqueiem sequências de path traversal ('../' e '..\') no parâmetro fileName, e isolar a interface administrativa/de diagnóstico do NetWeaver de exposição direta à internet. Isso reduz a superfície mas não elimina a causa raiz — qualquer bypass de encoding no filtro (ex.: variações de encoding de barra) pode contornar uma regra de WAF mal escrita.

Não funciona como mitigação: confiar apenas em autenticação de rede geral (VPN corporativa) sem correção do código, já que a vulnerabilidade não exige autenticação na própria aplicação — qualquer usuário com acesso de rede ao serviço explora a falha. Também não é suficiente ocultar a servlet por 'security through obscurity' sem bloqueio explícito, dado que o caminho da CrashFileDownloadServlet é conhecido publicamente desde 2016.

How to detect

Requisições HTTP GET para o endpoint da CrashFileDownloadServlet contendo sequências '..\' ou '../' no parâmetro fileName em logs de acesso web (HTTP access log do NetWeaver ou proxy reverso) são o indicador direto de tentativa de exploração — especialmente se o valor do parâmetro referenciar caminhos fora da árvore de diretórios de crash dump esperada, como referências a diretórios de configuração, security ou data.

Não há assinatura única confiável além da presença dessas sequências no parâmetro, já que a requisição em si é uma simples chamada GET sem payload adicional ou múltiplos estágios — isso significa que ataques bem-sucedidos anteriores à instrumentação de log podem não deixar rastro caso o log de acesso não tenha sido retido ou não capture parâmetros de query string completos.

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.
Directory traversal vulnerability in SAP NetWeaver AS Java 7.1 through 7.5 allows remote attackers to read arbitrary files via a ..\ (dot dot backslash) in the fileName parameter to CrashFileDownloadServlet, aka SAP Security Note 2234971.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.