Fortra GoAnywhere MFT License Response Servlet Command Injection
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha de deserialização insegura no License Response Servlet do Fortra GoAnywhere MFT (CWE-502) que permite execução remota de comandos no sistema operacional subjacente. Foi explorada como zero-day antes da divulgação pública — está no catálogo KEV da CISA e tem módulo Metasploit funcional para Linux e Windows —, mas o CVSS com PR:H revela uma pré-condição que a descrição oficial de 'pré-autenticação' obscurece: o vetor documentado pelo próprio fornecedor exige acesso ao console administrativo, não ao Web Client de usuários finais.
Detalhamento técnico
A vulnerabilidade está na classe com.linoma.ga.ui.admin.servlet.LicenseResponseServlet, mapeada na URL /lic/accept (path completo típico: /goanywhere/lic/accept). Esse endpoint recebe uma 'resposta de licença' que é decriptada (o módulo Metasploit usa parâmetros de cifra AES/CBC com IV configurável) e então deserializada em objeto Java sem qualquer validação de tipo ou origem. Como o conteúdo deserializado é controlado pelo atacante, é possível construir uma gadget chain que, ao ser reconstruída pela JVM, dispara execução de comando arbitrário no sistema operacional — o clássico padrão de RCE via deserialização insegura em Java.
Como é explorada
O vetor prático documentado pelo advisory da Fortra (repassado por Brian Krebs, já que o advisory original ficou atrás de login) exige acesso ao console administrativo do GoAnywhere MFT — não ao Web Client de transferência de arquivos, que a Fortra afirma explicitamente não ser explorável por essa falha. Isso contradiz a leitura mais simples da descrição do CVE ('pre-authentication'), e o próprio vetor CVSS (PR:H) reflete essa exigência de privilégio administrativo prévio para o exploit funcional documentado. Pesquisador Kevin Beaumont identificou mais de 1.000 instâncias com o console administrativo exposto diretamente à internet — o que, combinado a credenciais padrão, reaproveitadas ou fracas, torna o pré-requisito de 'acesso ao console' bem menos restritivo na prática do que parece. O módulo Metasploit (exploit/multi/http/fortra_goanywhere_rce_cve_2023_0669) demonstra o ataque completo contra o endpoint /goanywhere/lic/accept em Linux e Windows, entregando shell com privilégios do processo do GoAnywhere (observado como root em Linux e NT AUTHORITY\SYSTEM em Windows nos testes dos desenvolvedores). A Fortra recomendou revisar usuários administrativos por indícios de contas criadas por 'system' — sinal de que atacantes usaram o RCE inicial para criar novos usuários admin como persistência.
Versões
Como se proteger
A correção definitiva é atualizar para a versão 7.1.2 ou posterior, lançada pela Fortra em 7 de fevereiro de 2023. Antes de existir patch, a Fortra publicou um paliativo: editar o arquivo [install_dir]/adminroot/WEB-INF/web.xml e remover (ou comentar) o bloco e do 'License Response Servlet' (classe com.linoma.ga.ui.admin.servlet.LicenseResponseServlet, mapeado em /lic/accept), seguido de reinício da aplicação — em ambiente clusterizado, isso precisa ser replicado em todos os nós, não só num deles. Esse paliativo desativa a licença de resposta e reduz superfície de ataque, mas é edição manual de configuração de produção com risco de erro humano e precisa ser revertido/validado após a atualização.
Como detectar
Requisições HTTP(S) para o endpoint /goanywhere/lic/accept (ou /lic/accept) partindo de origens que não são o processo legítimo de ativação de licença — especialmente se o console administrativo estiver exposto à internet — são o principal indicador de tentativa de exploração. Pós-exploração, a Fortra recomenda auditar contas administrativas por usuários novos e não reconhecidos, em particular criados pelo próprio 'system', o que indica criação automatizada de conta de persistência via o RCE. Não há assinatura de payload universal confiável, já que o objeto deserializado varia por gadget chain e é encriptado antes do envio; a ausência de logs de acesso ao console administrativo de fontes externas é, por si, um sinal relevante de exposição a esse vetor.