
Uma vulnerabilidade de injeção de comandos do sistema operacional no programa CGI da Zyxel
Uma Vulnerabilidade de Injeção de Comando no Sistema Operacional no Programa CGI do Zyxel
A vulnerabilidade, descoberta pela primeira vez em 13 de abril de 2022, causou execução remota de código em produtos de firewall da Zyxel. Esta importante vulnerabilidade com uma pontuação CVSS de 9,8 foi bloqueada com a atualização lançada pela Zyxel 15 dias após seu surgimento. Pelo menos 20.800 modelos foram afetados neste processo, principalmente na Europa. A vulnerabilidade deve-se ao comando "setWanPortSt" dentro do applet de provisionamento zero-touch. O acesso ao comando "setWanPortSt" é através do endpoint /ztp/cgi-bin/handler. Nenhum exploit foi observado desde que a Zyxel trouxe uma atualização para seu modelo em relação à vulnerabilidade. A versão do software dos modelos afetados foi atualizada para v5.30, e foi enfatizado que a atualização automática de software deve estar ativa para prevenir a vulnerabilidade.
Em 13 de abril de 2022, a Rapid7 relatou uma vulnerabilidade que afeta dispositivos de firewall da Zyxel, permitindo que atacantes injetem comandos arbitrários remotamente como um usuário "nobody" sem autenticação. Essa vulnerabilidade foi tratada em nível crítico e a pontuação CVSS foi determinada como 9,8. A Zyxel então tratou a vulnerabilidade emitindo uma atualização de segurança em 28 de abril de 2022. Em 12 de maio de 2022, a Rapid7 publicou um advisory e um módulo Metasploit para essa vulnerabilidade.
Pesquisadores do ShadowServer começaram a monitorar tentativas de explorar o CVE-2022-30525. Pelo menos 20.800 dos modelos de firewall Zyxel afetados foram expostos online durante as investigações. Foi observado que a maioria dos modelos afetados estava na França e Itália.

A vulnerabilidade decorre do uso de “os.system” com dados fornecidos pelo atacante. O endpoint /ztp/cgi-bin/handler é usado para lançar o ataque. Handler é um script Python que pode executar vários comandos diferentes. Jake Baines, que primeiro relatou o erro, explicou a vulnerabilidade em seu blog da seguinte forma: “A Rapid7 descobriu e relatou uma vulnerabilidade que afeta firewalls Zyxel que suportam Zero Touch Provisioning (ZTP), que inclui a série ATP, série VPN e a série USG FLEX (incluindo USG20-VPN e USG20W-VPN). A vulnerabilidade, identificada como CVE-2022-30525, permite que um atacante remoto e não autenticado alcance a execução arbitrária de código como o usuário nobody no dispositivo afetado.” O problema surge de um comando chamado "setWanPortSt" dentro da implementação de provisionamento zero-touch, que permite que o provisionamento remoto altere as configurações de IP das portas do firewall.
Um PoC foi publicado para entender melhor como a exploração é feita. Victorian Machinery é um exploit de prova de conceito para CVE-2022-30525. A vulnerabilidade é uma injeção de comando remota e não autenticada que afeta firewalls Zyxel que suportam provisionamento zero-touch.

Primeiro, o alvo é explorado usando um listener netcat e um reverse shell é capturado. Por padrão, “nc” é executado fornecendo “nc-path”. Em Python, uma cópia do processo principal é criada usando a operação “os.fork()”. Então, se o id do processo for 0, uma requisição POST é feita para o endereço URL especificado. A URL contém o protocolo, o endereço remoto a ser explorado, a porta remota e o endpoint “/ztp/cgi-bin/handler”, respectivamente. Graças ao endpoint /ztp/cgi-bin/handler aqui, a funcionalidade do comando “setWanPortSt” pode ser acessada, que permite alterar as configurações de IP das portas do firewall. Quando o payload é examinado, vê-se que o alvo do comando é a porta 1270 do protocolo DHCP. Dessa forma, os atacantes podem fornecer execução remota de código como nobody.
A Shadowserver Foundation, o grupo que investiga a exploração em todo o mundo, não divulgou mais informações sobre as tentativas observadas de exploração e suas características. Foi anunciado que não houve tentativa de abuso desde segunda-feira, 16 de maio de 2022, mas as investigações continuam.
Administradores de dispositivos afetados são aconselhados a atualizar o firmware para V5.30 o mais rápido possível. Jake Baines também disse para ativar as atualizações automáticas de firmware, se possível. A Zyxel foi criticada por lidar com a vulnerabilidade silenciosamente, mas na declaração foi explicado que isso se deveu a "falha de comunicação durante o processo de coordenação de divulgação". Funcionários internos foram informados de que criar uma nova política de "Assinaturas de Protocolo HTTP" criando um dicionário para mitigação manual pode prevenir a exploração.
Como resultado, essa vulnerabilidade, que ocorreu em produtos de firewall Zyxel, afetou muitos modelos em um nível crítico. Embora o problema tenha sido tratado em pouco tempo, o impacto do exploit foi bastante grande. O fato de nenhum exploit ter sido encontrado há muito tempo mostra que as atualizações podem fechar a vulnerabilidade de segurança por enquanto.