Um pesquisador de segurança divulgou uma falha de estouro de buffer no heap do AnyDesk para Linux versão 8.0.2, chamada AnyPwn.
A vulnerabilidade permite a execução remota de comandos antes de o usuário aprovar o controle da área de trabalho. Como o serviço do AnyDesk geralmente é executado com privilégios de root, a exploração bem-sucedida pode dar aos invasores acesso root ao sistema. A falha foi identificada com o uso do V12 e corrigida no AnyDesk versão 8.0.3.
Uma demonstração de prova de conceito, criada por Rick de Jager, da equipe de segurança da V12, mostra o método de exploração por meio de conexões diretas à porta 7070 do protocolo TCP (Protocolo de Controle de Transmissão) em sistemas Linux x86_64. O ataque tem como alvo um arquivo binário específico do AnyDesk 8.0.2, executado em modo de serviço, com deslocamentos ajustados para o ambiente testado. A exploração de outras versões exigiria adaptações, e os pesquisadores não fizeram essa demonstração neste caso.
Falha no AnyDesk
A vulnerabilidade está no protocolo de sessão do AnyDesk, especificamente no manipulador de pacotes de fluxo do modo 5. Esse componente confia indevidamente no tamanho da carga informado por uma origem remota, sem verificar antes se o valor cabe nos dados restantes do pacote. Para calcular o espaço necessário, soma um cabeçalho de objeto de 16 bytes usando aritmética de 32 bits.
Um invasor pode especificar o tamanho de carga 0xfffffff0. Ao somar 0x10, o resultado é 0x100000000, que é truncado para 0 em 32 bits. Cálculos semelhantes se aplicam a valores de até 0xffffffff, resultando em alocações de apenas 0 a 15 bytes.
O comprimento lógico real do objeto continua grande. No entanto, o ponteiro para os dados fica 16 bytes além do início da área alocada. Como consequência, a cópia de dados controlados pelo invasor grava além da memória reservada.
O invasor não precisa enviar grandes quantidades de dados: um quadro pequeno, com o tamanho malicioso e os bytes que causam o estouro, pode corromper a memória.
O processo de exploração combina a preparação do alocador de memória com a programação orientada a retorno (ROP, na sigla em inglês). Uma pulverização inicial do heap, organizada por tamanho, preenche as classes de alocação relevantes, enquanto conexões adicionais de clientes criam possíveis objetos-alvo.
A tentativa de estouro busca corromper campos relacionados ao despacho em um objeto-alvo vizinho, incluindo dados de controle usados para redirecionar a execução.
Para avançar o ataque, uma pulverização separada preenche a memória com objetos ROP repetidos. Cada um contém uma sequência de instruções de retorno, seguida por uma cadeia que chama a função system() do binário-alvo com um comando escolhido pelo invasor.
O sucesso da exploração é probabilístico. Se o objeto-alvo não estiver adjacente ao buffer alterado, a tentativa pode derrubar o serviço do AnyDesk em vez de executar o comando pretendido.
Os pesquisadores também observaram que um acionador mínimo do Frida pode acessar o caminho vulnerável do protocolo por meio de conexões com retransmissores do AnyDesk.
No entanto, essa descoberta não confirma a execução completa de comandos por meio de retransmissores: a exploração divulgada demonstra um ataque completo apenas por conexões TCP diretas. O AnyDesk classificou a vulnerabilidade como limitada a conexões diretas no Linux e afirmou que Windows e macOS não são afetados.
Administradores devem atualizar instalações vulneráveis do Linux para o AnyDesk versão 8.0.3 ou posterior. Se não for possível aplicar a correção imediatamente, restringir o acesso à porta TCP 7070 pode reduzir a exposição a ataques diretos confirmados. Essa medida, porém, não substitui a atualização das instalações vulneráveis.
Detenha ameaças cibernéticas antes que causem impacto e acelere em 21 minutos o MTTR (tempo médio para resolução). Integre o ambiente isolado de análise da ANY.RUN ao seu SOC (centro de operações de segurança).