Bug do KCodes NetUSB expõe milhões de roteadores a ataques RCE
Uma falha de execução remota de código de alta gravidade rastreada como CVE-2021-45388 foi descoberta no módulo de kernel KCodes NetUSB, usado por milhões de dispositivos roteadores de vários fornecedores.
A exploração bem-sucedida dessa falha permitiria que um agente de ameaças remoto executasse código no kernel e, embora algumas restrições se apliquem, o impacto é amplo e pode ser grave.
A descoberta da vulnerabilidade vem de pesquisadores do SentinelLabs que compartilharam seu relatório técnico com o Bleeping Computer antes da publicação.
O que é NetUSB e como é direcionado
Alguns fabricantes de roteadores incluem portas USB nos dispositivos, permitindo que os usuários compartilhem impressoras e unidades USB na rede.
NetUSB é uma solução de conectividade de módulo de kernel desenvolvida pela KCodes, permitindo que dispositivos remotos em uma rede interajam com os dispositivos USB diretamente conectados a um roteador.
O SentinelOne descobriu um segmento de código vulnerável no módulo do kernel que não valida o valor do tamanho de uma chamada de alocação de memória do kernel, resultando em um estouro de número inteiro.
A função ‘SoftwareBus_fillBuf’ pode então usar essa nova região para uma gravação maliciosa fora dos limites com dados de um soquete de rede sob o controle do invasor.
Algumas limitações podem dificultar a exploração da vulnerabilidade, conforme descrito abaixo.
- O objeto alocado sempre estará no slab kmalloc-32 do heap do kernel. Como tal, a estrutura deve ter menos de 32 bytes de tamanho para caber.
- O tamanho fornecido é usado apenas como tamanho máximo de recebimento e não como um valor estrito.
- A estrutura deve ser pulverizável de uma perspectiva remota.
- A estrutura deve ter algo que possa ser sobrescrito que a torne útil como alvo (por exemplo, uma estrutura Type-Length-Value ou um ponteiro).
No entanto, o módulo NetUSB vulnerável tem um tempo limite de dezesseis segundos para receber uma solicitação, permitindo mais flexibilidade ao explorar um dispositivo.
“ Embora essas restrições dificultem a criação de um exploit para essa vulnerabilidade, acreditamos que não seja impossível e, portanto, aqueles com roteadores Wi-Fi podem precisar procurar atualizações de firmware para o roteador”, alertou o SentinelOne em seu relatório .
Fornecedores e patches afetados
Os fornecedores de roteadores que usam módulos NetUSB vulneráveis são Netgear , TP-Link , Tenda , EDiMAX , Dlink e Western Digital .
Não está claro quais modelos são afetados pelo CVE-2021-45388, mas geralmente é aconselhável usar produtos com suporte ativo que recebam atualizações regulares de firmware de segurança.
Como a vulnerabilidade afeta tantos fornecedores, o Sentinel One alertou o KCodes primeiro, em 9 de setembro de 2021, e forneceu um script PoC (prova de conceito) em 4 de outubro de 2021, para verificar o patch lançado naquele dia.
Os fornecedores foram contatados em novembro e uma atualização de firmware foi agendada para 20 de dezembro de 2021.
A Netgear lançou uma atualização de segurança para corrigir o CVE-2021-45388 em produtos afetados e com suporte em 14 de dezembro de 2021.
De acordo com o comunicado de segurança publicado em 20 de dezembro de 2021, os produtos Netgear afetados são os seguintes:
- D7800 corrigido na versão de firmware 1.0.1.68
- R6400v2 corrigido na versão de firmware 1.0.4.122
- R6700v3 corrigido na versão de firmware 1.0.4.122
A solução implementada pela Netgear foi adicionar uma nova verificação de tamanho à função ‘tamanho fornecido’, evitando a gravação fora dos limites.
A Bleeping Computer entrou em contato com todos os fornecedores afetados para solicitar um comentário sobre o cronograma de lançamento de uma atualização de firmware, mas ainda não recebemos uma resposta.