← back
CVE-2020-25223criticalunder attackCWE-78

CVE-2020-25223

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 97%
from disclosure to weapon338 days
Published on NVDSep 25
1st PoC+338d
metasploitSep 18
CISA KEV+546d
exploitation probability
97%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
4 public exploit(s)
Action required by CISAfederal deadline: 2022-04-15

Apply updates per vendor instructions.

Summary

Falha de injeção de comando de SO (CWE-78) no WebAdmin do Sophos SG UTM que permite execução remota de código como root, sem autenticação. O vetor é uma requisição HTTP manipulada contra o endpoint webadmin.plx, explorando como o identificador de sessão (SID) é tratado antes de chegar ao serviço de backend confd. Foi encontrada via programa de bug bounty, mas depois de divulgada passou a ser explorada ativamente — está no catálogo KEV da CISA e tem módulo Metasploit, template Nuclei e PoC pública.

Technical detail

O endpoint webadmin.plx (um script Perl) processa a maior parte do tráfego web do WebAdmin. Em requisições HTTP POST, o SID enviado pelo cliente é passado ao confd (serviço de backend) para validação, e o processo tenta ler o SID como arquivo dentro do diretório /var/confd/var/sessions. Depois de passar por algumas subrotinas, esse valor chega como segundo argumento à função open() do Perl.

O problema é clássico de uso inseguro de open() em Perl com dados controlados pelo atacante: quando o segundo argumento de open() não é tratado como caminho de arquivo puro (forma de dois argumentos, sem modo explícito), o Perl pode interpretar metacaracteres do shell dentro dele, permitindo que uma string formatada como comando seja executada em vez de simplesmente aberta como arquivo.

Existe ainda um bypass de validação: uma RewriteRule (^/var → webadmin.plx) redireciona requisições para /var ao mesmo script, mas esse caminho de entrada não passa pela mesma verificação por regex aplicada ao SID normal. Isso permite substituir o valor do SID por uma string de comando (o exemplo documentado por pesquisadores usa algo equivalente a 'touch /tmp/pwned') e tê-la executada com privilégios de root, já que o serviço afetado roda com essa permissão.

Não há necessidade de sessão válida, credenciais ou interação do usuário — o atacante controla diretamente o conteúdo que acaba sendo interpretado como comando pelo interpretador de comandos do sistema.

How it’s exploited

O vetor é uma única requisição HTTP (POST) contra a interface WebAdmin exposta na rede, sem necessidade de autenticação prévia. O pré-requisito real de exploração é acesso de rede à porta do WebAdmin — normalmente 4444/tcp por padrão em instalações do Sophos SG UTM — e que essa interface não esteja restrita a redes internas/confiáveis.

A complexidade é baixa: não exige engenharia social, não depende de condição de corrida, e o caminho de exploração (bypass do regex via rota /var, seguido da substituição do SID por um comando) já foi documentado publicamente, com PoC, módulo Metasploit e template Nuclei disponíveis, o que reduz a barreira técnica a praticamente zero para quem tem acesso à interface.

O resultado final é execução de comando arbitrário como root no appliance — controle total do UTM, incluindo firewall, VPN e políticas de rede que ele gerencia. A Sophos afirmou não ter evidência de exploração no momento da publicação do advisory (a falha veio de bug bounty), mas a inclusão posterior no catálogo KEV da CISA confirma exploração ativa identificada depois disso.

Versions

Affected
Sophos SG UTM em versões anteriores a v9.705 MR5, v9.607 MR7 e v9.511 MR11 (cada ramo com sua respectiva versão de corte).
Fixed in
v9.705 MR5, v9.607 MR7, v9.511 MR11, ou versões posteriores em cada ramo correspondente.

How to protect

A correção definitiva é atualizar para as versões corrigidas: v9.705 MR5, v9.607 MR7 ou v9.511 MR11 (ou posteriores), dependendo do ramo em uso. Não há patch parcial nem flag de configuração que elimine a vulnerabilidade em si — o problema está no código do webadmin.plx e só é resolvido pela atualização.

Como mitigação temporária, o próprio fornecedor recomenda restringir o acesso ao WebAdmin: em Management → WebAdmin Settings → WebAdmin Access Configuration → Allowed Networks, manter apenas a rede interna (ou outra definição de rede exclusivamente interna) como entrada permitida, removendo qualquer exposição da interface à internet. Isso reduz drasticamente a superfície de ataque, mas não corrige a falha — qualquer origem dentro da rede permitida ainda pode explorá-la sem autenticação.

Não existe mitigação eficaz via WAF genérico, já que o vetor é uma requisição legítima em formato ao endpoint nativo da aplicação (não há assinatura de payload malformado óbvia sem inspecionar a lógica específica do SID). A única mitigação real além da atualização é isolamento de rede da interface de administração.

How to detect

Como o vetor é uma requisição HTTP/POST dirigida ao endpoint webadmin.plx (ou à rota reescrita /var) na interface WebAdmin, o sinal a procurar em logs de acesso é requisições anômalas a esses caminhos com valores de SID que não correspondem ao formato esperado de identificador de sessão — em especial strings que se parecem com comandos de shell no lugar do SID. Tentativas de exploração documentadas usam comandos simples de teste (como criação de arquivo em /tmp) para confirmar execução, o que pode deixar artefatos no sistema de arquivos do appliance.

Não há um IOC de rede universalmente confiável além disso: como o tráfego é HTTP legítimo para um endpoint nativo da aplicação, sem payload malformado óbvio, a detecção depende de logging detalhado do WebAdmin e de análise do valor do SID em requisições recebidas. A ausência de logs de acesso não implica ausência de exploração, já que appliances antigos podem não reter histórico suficiente.

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.
A remote code execution vulnerability exists in the WebAdmin of Sophos SG UTM before v9.705 MR5, v9.607 MR7, and v9.511 MR11
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.