← voltar
CVE-2022-24990criticalsob ataqueransomwareCWE-306

CVE-2022-24990

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 83%
da publicação à arma0 dias
Publicada no NVD7 de fev.
1ª PoC8 de mar.
metasploit7 de mar.
CISA KEV+3d
probabilidade de exploração
83%top 1% das CVEs
exploração observada
simCISA + VulnCheck
10 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2023-03-03

Apply updates per vendor instructions.

Resumo

CVE-2022-24990 é uma falha de exposição de informação sensível no firmware TOS dos NAS TerraMaster: um atacante não autenticado que envia o header "User-Agent: TNAS" ao endpoint module/api.php?mobile/webNasIPS recebe na resposta um campo PWD com um código de autenticação interno do dispositivo. O CVSS 9.8 e a entrada da CISA no KEV rotulam isso como "Remote Command Execution", mas a descrição oficial da CVE cobre apenas o vazamento de credencial/bypass de autenticação; o RCE completo, documentado por pesquisadores e replicado em PoCs públicos, depende de encadear esse leak com uma segunda falha de instanciação de objeto PHP em outro endpoint do mesmo módulo (rastreada separadamente como CVE-2022-24989). Importa porque está no catálogo KEV com prazo de correção vencido e é varrida ativamente por ferramentas automatizadas (Nuclei, Metasploit) contra interfaces de gerência expostas.

Detalhamento técnico

O roteador de api.php mapeia a URL em uma classe e um método PHP e os invoca dinamicamente. Antes de chamar o método, há três camadas de proteção: (1) uma lista NO_LOGIN_CHECK em api.php que isenta certas funções da verificação de sessão; (2) dentro do construtor de mobile.class.php, arrays $notCheck e $notHeader que isentam certas funções da verificação de login (loginCheck()) e da verificação de User-Agent/Authorization/timestamp, respectivamente. A função webNasIPS está presente nas três listas simultaneamente — é a única com esse privilégio —, então nenhuma das três verificações de autenticação é aplicada quando ela é chamada.

A implementação de webNasIPS monta um payload de diagnóstico com hostname, versão de firmware, número de série, informações de rede, MAC address e, criticamente, a linha "PWD: $pwd", onde $pwd = $this->REQUESTCODE — um token interno usado pelo próprio TOS para autenticar chamadas subsequentes da API mobile. Esse valor é devolvido em texto claro a qualquer requisição HTTP que apenas informe o header User-Agent correto, sem exigir sessão, senha ou assinatura HMAC.

O padrão é uma combinação de CWE-306 (Missing Authentication for Critical Function) — a lógica de whitelist bypassa por completo o controle de acesso para esse endpoint — com exposição de informação sensível (dado de autenticação) na resposta. O atacante não controla parâmetros de entrada; o ponto controlado é apenas o header User-Agent, e o retorno da falha é determinístico e público para qualquer dispositivo TOS vulnerável acessível na rede.

Como é explorada

A exploração é uma única requisição HTTP GET não autenticada para module/api.php?mobile/webNasIPS com o header User-Agent: TNAS; não há necessidade de conta, sessão prévia ou configuração não padrão no NAS — a pré-condição real é apenas que a interface de gerência web do TOS esteja alcançável pelo atacante (rede interna ou, com mais gravidade, exposta diretamente à internet). Complexidade de ataque é trivial: um curl basta para obter o campo PWD na resposta.

Isoladamente, o valor de REQUESTCODE vazado funciona como token de autenticação da API mobile, o que já permite a um atacante contornar controles de acesso em outras funções desse módulo. Pesquisadores da Octagon Networks demonstraram que esse leak, encadeado com uma falha distinta de instanciação arbitrária de objeto PHP em outro endpoint (createRaid), permite escalar de information disclosure para execução remota de comandos como root — é esse encadeamento completo que o PoC público no GitHub (0xf4n9x/CVE-2022-24990) e o módulo Metasploit implementam sob o rótulo desta CVE, ainda que a segunda etapa técnica corresponda a uma vulnerabilidade separada (CVE-2022-24989).

A CISA confirma exploração ativa em ambiente real (entrada no catálogo KEV, adicionada em 10/02/2023, com prazo de correção em 03/03/2023) e classifica formalmente o item como CWE-306. A superfície de ataque típica são NAS TerraMaster com a interface web/TOS exposta à internet sem VPN ou controle de acesso de rede.

Versões

Afetadas
TerraMaster TOS 4.2.29 e versões anteriores, conforme a descrição oficial da CVE.
Corrigidas em
TOS 4.2.31, segundo o relatório técnico da Octagon Networks ("Patches are distributed for 4.2.31 now"). Não há confirmação nas fontes consultadas sobre a situação da versão 4.2.30.

Como se proteger

Atualizar o firmware TOS para 4.2.31 ou versão posterior. A Octagon Networks, que reportou a falha, confirma que "patches are distributed for 4.2.31"; não há confirmação pública sobre se a versão intermediária 4.2.30 já contém a correção, então não assuma isso sem checar o changelog do fornecedor.

Se a atualização não for viável imediatamente, o controle compensatório real é isolar a interface de gerência do TOS: remover exposição direta à internet, colocar o NAS atrás de VPN ou de uma rede de gerência segregada, e bloquear/filtrar requisições externas para module/api.php?mobile/*, especialmente as que carregam User-Agent contendo "TNAS". Isso reduz a superfície mas não corrige a falha lógica — outras funções nas mesmas listas de bypass (getDiskList, createRaid, getInstallStat, getIsConfigAdmin, setAdminConfig, isConnected) podem ter exposição equivalente e não foram cobertas pela troca desse endpoint específico.

O que não funciona como mitigação: trocar a senha de administrador do NAS. O problema é a ausência de autenticação no próprio endpoint, não uma credencial fraca — o valor exposto (REQUESTCODE) é um token de sessão/autenticação da API, não a senha do usuário, e é regenerado pela lógica interna do TOS, não pelo usuário.

Como detectar

Em logs do nginx/TOS, procure requisições GET para /module/api.php?mobile/webNasIPS com header User-Agent contendo a string "TNAS" originadas de IPs fora da rede de gerência esperada — esse é o padrão de requisição único e reconhecível da exploração, sem necessidade de payload adicional. A Broadcom/Symantec publica uma assinatura de ataque (ASID 33732) para esse tráfego, e existem templates Nuclei e um módulo Metasploit cujos padrões de requisição também podem ser usados como referência de detecção em IDS/WAF.

Não há um sinal confiável do lado da resposta visível a um defensor de perímetro, já que o campo "PWD:" vazado só é observável por quem capturar o tráfego de saída do próprio NAS ou tiver acesso ao dispositivo — na prática, a detecção depende quase inteiramente do padrão da requisição de entrada, não da resposta.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
TerraMaster NAS 4.2.29 and earlier allows remote attackers to discover the administrative password by sending "User-Agent: TNAS" to module/api.php?mobile/webNasIPS and then reading the PWD field in the response.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.