← back
CVE-2020-7961criticalunder attackCWE-502

CVE-2020-7961

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 9.8epss 100%
from disclosure to weapon6 days
Published on NVDMar 20
1st PoC+6d
metasploitNov 25
CISA KEV+593d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
26 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

Falha de deserialização insegura (CWE-502) no serviço JSON Web Services (JSONWS) do Liferay Portal, que permite a um atacante remoto e não autenticado enviar um objeto Java serializado malicioso e obter execução arbitrária de código no servidor. É crítica de fato, não só no papel: está na CISA KEV, tem exploração confirmada em campanha de botnet real (FreakOut) e EPSS próximo de 1.

Technical detail

O JSONWS é a camada de API do Liferay Portal que expõe métodos de serviço via HTTP/JSON para integração remota. Parte dessa camada aceita e desserializa objetos Java enviados pelo cliente sem validar o tipo ou a origem dos dados antes de reconstruí-los em memória — o clássico padrão de 'unmarshalling' inseguro (CWE-502).

Como em outras vulnerabilidades de desserialização Java da época (Struts, WebLogic, Jenkins), o problema não está em uma única classe vulnerável isolada, mas na combinação entre um ponto de entrada que aceita bytes serializados controlados pelo atacante e a presença, no classpath da aplicação, de classes ('gadgets') que podem ser encadeadas para executar código arbitrário no momento em que o objeto é reconstruído — antes de qualquer verificação de autenticação ou de lógica de negócio ser aplicada.

O atacante controla integralmente o payload serializado enviado ao endpoint JSONWS. Não é necessário autenticar-se nem ter uma sessão válida: o ponto vulnerável processa o objeto durante a desserialização, etapa que ocorre antes de qualquer checagem de permissão.

How it’s exploited

O vetor é uma requisição HTTP direta ao endpoint JSONWS exposto pela instância Liferay, sem necessidade de autenticação, interação do usuário ou configuração não padrão — daí o vetor CVSS AV:N/AC:L/PR:N/UI:N. Isso torna a superfície de ataque qualquer instância do Liferay Portal acessível pela rede com a versão vulnerável.

A exploração ativa mais documentada é a campanha de botnet FreakOut (Check Point Research, janeiro de 2021), que combinou CVE-2020-7961 com CVE-2020-28188 (TerraMaster TOS) e CVE-2021-3007 (Zend Framework) em varreduras automatizadas. Nesses ataques, a exploração da desserialização é usada para injetar comandos de sistema que baixam e executam um script Python ('out.py', hospedado em domínio controlado pelo atacante) via Python 2. O script resultante integra o host a uma botnet IRC com capacidades de port scanning, coleta de fingerprint do sistema, ARP poisoning, força bruta via Telnet com credenciais padrão e, em variantes posteriores, mineração de criptomoeda (XMRig) — ou seja, o objetivo final observado na prática é controle total do host para uso como plataforma de ataque recursiva, não roubo de dados pontual.

A presença de módulo Metasploit, template Nuclei e PoC pública reduz a complexidade de exploração a praticamente zero para quem já sabe da falha: qualquer scanner automatizado consegue identificar e explorar instâncias expostas.

Versions

Affected
Liferay Portal CE anterior à 7.2.1 GA2, conforme descrição oficial do fornecedor. As fontes analisadas não detalham faixas específicas para Liferay DXP (edição enterprise).
Fixed in
Liferay Portal 7.2.1 CE GA2. Não há, nas fontes consultadas, confirmação de versões/backports específicos de Liferay DXP corrigidas — consultar advisory oficial do fornecedor para essa linha.

How to protect

O fornecedor corrige a falha na versão Liferay Portal 7.2.1 CE GA2 (Community Edition). Atualizar para essa versão ou posterior é a mitigação real, sem substituto equivalente conhecido — não há flag de configuração documentada que desative a desserialização vulnerável do JSONWS sem quebrar funcionalidade.

As fontes analisadas não trazem confirmação de números de build específicos para Liferay DXP (edição enterprise); quem roda DXP deve consultar diretamente o advisory oficial do fornecedor (portal.liferay.dev/learn/security/known-vulnerabilities) para o backport correspondente à sua linha de suporte, em vez de assumir que a correção da CE se aplica automaticamente.

Caso a atualização não seja imediata, restringir o acesso de rede ao endpoint JSONWS (bloqueio por firewall/reverse proxy a `/api/jsonws` e caminhos equivalentes, permitindo apenas origens confiáveis) reduz a exposição, mas é paliativo — não corrige a falha, apenas diminui a superfície até a atualização. Não depender de WAF genérico como solução definitiva: assinaturas para payloads de desserialização Java têm alta taxa de falso negativo contra variações de gadget chain.

How to detect

Procurar por requisições HTTP (tipicamente POST) direcionadas a endpoints JSONWS (caminhos como `/api/jsonws` ou equivalentes na instalação) cujo corpo contenha um blob binário ou base64 com a assinatura de serialização Java (bytes mágicos 0xAC 0xED, que em base64 aparecem como prefixo 'rO0AB'). Esse padrão é o indicador mais confiável de tentativa de exploração de desserialização.

Em nível de host, sinais associados à campanha FreakOut incluem processos filhos do servidor de aplicação Liferay executando comandos de shell, download de scripts via wget/curl, uso de `chmod` seguido de invocação de `python2`, e conexões de saída para domínios ou IPs não corporativos logo após uma requisição JSONWS suspeita. Esses indicadores são específicos daquela campanha e não cobrem exploração futura com payloads diferentes — na ausência desses padrões, não se pode concluir que a instância não foi explorada por outro método de pós-exploração.

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.
Deserialization of Untrusted Data in Liferay Portal prior to 7.2.1 CE GA2 allows remote attackers to execute arbitrary code via JSON web services (JSONWS).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
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.