CVE-2022-23227
Prioriza la corrección. Ella está bajo explotación confirmada por CISA.
The impacted product is end-of-life (EoL) and/or end-of-service (EoS). Users should discontinue utilization of the product.
Resumen
Falta de autenticação no endpoint handle_import_user.php do NVRmini2 da NUUO permite que qualquer atacante remoto, sem login, envie um arquivo TAR criptografado que o dispositivo processa para importar usuários no sistema. Isoladamente já é grave (CWE-306), mas o impacto real é code execution como root: encadeada com uma falha antiga de directory traversal no BusyBox (CVE-2011-5325) usado no firmware, o atacante consegue gravar um webshell sob o diretório web e assumir o dispositivo por completo. É KEV da CISA, mas o produto está em fim de vida — não existe patch e a orientação oficial é descontinuar o uso, não mitigar.
Detalle técnico
O script /NUUO/web/handle_import_user.php aceita um upload multipart (campo upload_file) sem qualquer verificação de sessão ou credencial, grava o conteúdo em /tmp/user.cfg e invoca o binário cgi_system com a ação importuser, passando bfolder e bfile como argumentos. Essa cadeia roda com privilégios de root, já que cgi_system é executado pelo daemon web como root. A função de importação (localizada no offset 0x2B990 no firmware 03.11.0000.0016 analisado pelo pesquisador) decripta o arquivo recebido usando um esquema de criptografia proprietário da NUUO, desempacota o TAR resultante e lê arquivos shadow e passwd contidos nele, adicionando ao /etc/passwd e /etc/shadow do sistema qualquer usuário com UID igual ou maior que 1000.
O segundo elo da cadeia é CVE-2011-5325, um path traversal clássico (CWE-35) no processo de extração de arquivos TAR do BusyBox 1.16.1 (versão usada no firmware do NVRmini2), que permite que entradas do arquivo (incluindo symlinks) escrevam fora do diretório de destino pretendido. Como a rotina de importação de usuário do cgi_system desempacota o TAR fornecido pelo atacante sem sanitizar caminhos, é possível abusar dessa extração para depositar arquivos arbitrários — por exemplo sob /NUUO/web/, o webroot do dispositivo.
O atacante controla o conteúdo do TAR (após contornar a criptografia, ver seção de exploração) e, por consequência, controla nomes de arquivo, symlinks e conteúdo gravado no sistema de arquivos, incluindo um webshell PHP e entradas de shadow/passwd forjadas.
A combinação das duas falhas — upload não autenticado que decripta e desempacota TAR arbitrário, mais traversal na extração — transforma uma falha de autenticação em execução remota de código como root.
Cómo se explota
O maior obstáculo prático não é a falta de autenticação (que é trivial de abusar), e sim o esquema de criptografia proprietário que o dispositivo exige para o arquivo TAR de importação de usuários. O pesquisador que descobriu a falha não reverteu esse algoritmo; em vez disso, usou uma técnica de contorno: fez downgrade do firmware para uma versão de 2016 vulnerável a um exploit anterior seu, obteve shell como root por essa via, e a partir daí usou o próprio binário do dispositivo (cgi_system exportuser) e gdbserver para induzir o equipamento a criptografar, com sua própria chave/algoritmo, um payload malicioso — um webshell e um arquivo de shadow forjado embutidos em um TAR com um symlink apontando para o diretório web. Esse artefato criptografado gerado a partir de um dispositivo já comprometido pode então ser reenviado, sem qualquer autenticação, para qualquer outro NVRmini2 (qualquer versão de firmware) via handle_import_user.php.
Com esse arquivo em mãos, o vetor final é uma única requisição HTTP POST não autenticada contra o endpoint, entregando o TAR criptografado malicioso. O dispositivo decripta, desempacota (disparando o traversal do BusyBox) e grava o webshell sob o webroot, além de criar um usuário de sistema utilizável via SSH. A partir daí o atacante tem execução de código arbitrário como root — confirmado publicamente com um módulo Metasploit (linux/http/nuuo_nvrmini_unauth_rce_r2) que automatiza a cadeia completa e entrega uma sessão Meterpreter com uid=0.
A falha está no catálogo KEV da CISA como exploração confirmada em ambiente real, embora a CISA não classifique o uso como associado a campanhas de ransomware conhecidas. Não há pré-condição de configuração não padrão: o endpoint é exposto por padrão em qualquer instalação do NVRmini2 com interface web acessível na rede, e nenhuma credencial é necessária.
Versiones
Cómo protegerse
Não existe patch oficial. O pesquisador reportou a cadeia à NUUO em 2019/2020 e novamente em 2020; firmwares subsequentes (até 03.11.0000.0016) não corrigiram a falha, o que levou à divulgação como 0day em janeiro de 2022. A CISA, ao incluir a CVE no catálogo KEV em dezembro de 2024, registra a ação recomendada como descontinuar o uso do produto, já que o NVRmini2 está em fim de vida (EoL/EoS) segundo carta oficial da NUUO — não há atualização de firmware prevista.
Como controle compensatório real, na ausência de patch: isolar completamente o dispositivo de qualquer rede não confiável (sem exposição à internet, segmentação de rede dedicada, sem acesso direto de estações de usuário final), e bloquear/filtrar acesso ao endpoint /handle_import_user.php em qualquer proxy ou firewall de aplicação intermediário, caso o tráfego web do dispositivo passe por um. Isso reduz a superfície mas não elimina o risco caso o segmento seja comprometido por outra via.
Não funciona como mitigação: apenas trocar senhas de usuários administrativos ou desabilitar contas — a falha não depende de credenciais existentes, e o próprio mecanismo de importação de usuário permite criar novas contas. Também não basta atualizar para a última versão de firmware disponível (03.11.0000.0016), pois essa é justamente uma das versões confirmadas como vulneráveis pelo pesquisador.
Cómo detectar
As fontes analisadas não descrevem uma assinatura de detecção específica ou indicador de comprometimento publicado pelo fornecedor ou pela CISA. Do ponto de vista de log de aplicação web, requisições POST não autenticadas para o caminho /handle_import_user.php contendo corpo multipart com campo upload_file são anômalas e merecem investigação, já que esse endpoint não deveria receber tráfego de rotina; a presença de arquivos .cfg criados em /tmp com nomes no padrão user também é um artefato do processo de importação descrito no advisório. Não há confirmação de que produtos de segurança de rede ou IDS possuam regra dedicada para esta CVE especificamente, então a ausência de alerta não indica ausência de exploração.