Foi identificada uma vulnerabilidade (CVE-2022-31793) no servidor HTTP muhttpd, utilizado predominantemente em roteadores e pontos de acesso, que permite a um invasor não autenticado fazer o upload de arquivos arbitrários através do envio de uma solicitação HTTP especialmente formatada, conforme as permissões que o servidor HTTP possui (em muitos dispositivos, o muhttpd é executado com privilégios de root). Por exemplo, um atacante pode acessar arquivos com senhas, configurações de acesso sem fio, parâmetros de conexão do provedor e chaves privadas.
O problema é causado por um erro no processamento do caminho na solicitação, permitindo que arquivos sejam acessados fora do diretório raiz do servidor web. O ataque consiste em indicar no início do caminho qualquer caractere adicional que não seja um ponto, barra ou interrogação. Por exemplo, para fazer o upload do arquivo /etc/hosts, basta enviar a solicitação "GET a/etc/hosts" ou "GET a/etc/hosts" (printf "GET b/etc/hosts\n\n" | nc servidor porta).
A razão para o comportamento descrito é que a abertura do arquivo solicitado é feita pelo comando "open(&req->filename[1], O_RDONLY)" com a execução prévia da função chdir() para mudar para a raiz. Indicar &req->filename[1] faz com que o primeiro caractere do caminho seja ignorado (os desenvolvedores presumiram que o primeiro caractere seria sempre "/"). Assim, ao solicitar "GET /etc/hosts", o servidor tentará abrir o arquivo pelo caminho relativo "etc/hosts", mas se um caractere adicional for indicado no início ("GET a/etc/hosts") — o caminho subsequente será processado totalmente. servidor webO problema está presente desde a primeira versão do muhttpd e foi corrigido na versão 1.1.7. Entre os dispositivos que utilizam o muhttpd, a presença do problema foi confirmada em roteadores da SaskTel e Arris. Potencialmente, o problema também pode ocorrer em dispositivos fabricados pelas empresas AT&T, Frontier e Windstream. Ao restringir o acesso à porta HTTP apenas para a rede interna, um ataque pode ser realizado a partir da rede externa através da técnica de "DNS rebinding", que permite que, ao abrir uma determinada página no navegador, uma solicitação HTTP seja enviada para uma porta de rede que não está acessível para acesso direto pela internet.
O problema está presente desde a primeira versão do muhttpd e foi corrigido na versão 1.1.7. Entre os dispositivos que utilizam muhttpd, a presença do problema foi confirmada em roteadores SaskTel e Arris. Potencialmente, o problema também pode ocorrer em dispositivos fabricados pelas empresas AT&T, Frontier e Windstream. Ao limitar o acesso à porta HTTP apenas para a rede interna, um ataque pode ser realizado a partir de uma rede externa usando a técnica de "DNS rebinding", que permite que, ao abrir uma determinada página no navegador, um pedido HTTP seja enviado para uma porta de rede que não é acessível diretamente pela internet.
Fonte: opennet.ru
