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.

Diagrama operacional NetUSB
Diagrama operacional NetUSB
Fonte: KCodes

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.

Correção aplicada pela Netgear
Correção aplicada pela Netgear
Fonte: SentinelLabs

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.

Fonte: https://www.bleepingcomputer.com/