CVE-2022-26258
Prioritize patching. It under exploitation confirmed by CISA.
The impacted product is end-of-life and should be disconnected if still in use.
Summary
Vulnerabilidade de injeção de comando remoto (RCE) no roteador D-Link DIR-820L, firmware 1.05B03, explorável via requisição HTTP POST ao endpoint get_set.ccp manipulando o parâmetro de nome de dispositivo do menu LAN. Está no catálogo KEV da CISA com exploração confirmada, mas o produto é end-of-life — a orientação oficial não é corrigir, é desconectar.
Technical detail
A falha (CWE-78, OS Command Injection) está no manipulador da página /lan.asp, que processa o parâmetro lanHostCfg_DeviceName_1.1.1.0 enviado ao endpoint /get_set.ccp via POST com ccp_act=set. O firmware aplica filtragem tanto no front-end (JavaScript da interface web) quanto no back-end, através da função hasInjectionString implementada na biblioteca lib/libleopard.so. Essa função bloqueia caracteres de injeção comuns, mas não filtra o byte de nova linha (\n, representado como %0a na URL codificada).
Como a filtragem do front-end é só cosmética (roda no navegador e pode ser contornada capturando e editando a requisição diretamente), e a do back-end tem esse buraco específico no tratamento de \n, um atacante pode inserir \n dentro do valor do campo 'Device Name' para quebrar o contexto do parâmetro e concatenar um comando arbitrário, que é executado com privilégios do processo que processa get_set.ccp — tipicamente root no firmware embarcado.
O CVSS 3.1 publicado (AV:N/AC:L/PR:N/UI:N) indica exploração sem qualquer privilégio. Isso conflita com o PoC público, que inclui o cabeçalho Cookie: hasLogin=1 na requisição — ou seja, a exploração demonstrada assume uma sessão administrativa já autenticada no painel web. Não há, nas fontes disponíveis, evidência de bypass de autenticação encadeado nesta CVE específica; a pontuação PR:N pode refletir apenas a classificação do NVD e não necessariamente a barreira real observada no exploit documentado.
How it’s exploited
O vetor é uma requisição HTTP POST para /get_set.ccp na interface de administração web do dispositivo (por padrão em rede local, na faixa 192.168.0.x). O PoC público injeta o payload no campo lanHostCfg_DeviceName_1.1.1.0 dentro do corpo da requisição, junto com os demais parâmetros normais do formulário de configuração de LAN (IP, máscara, DHCP etc.), usando %0a para quebrar a linha e concatenar um comando — o exemplo documentado inicia um telnetd com shell, dando acesso remoto interativo ao dispositivo.
O pré-requisito prático mais relevante é a sessão autenticada (cookie hasLogin=1) — o exploit documentado não é pré-autenticação. Isso reduz a superfície de risco em redes onde o painel de gestão não está exposto à internet e as credenciais administrativas não foram comprometidas, mas não elimina o risco: senhas padrão, reutilização de credenciais e exposição indevida da interface de gerenciamento à WAN são cenários comuns em equipamentos SOHO desse porte e tornam a exploração trivial.
A CISA confirma exploração ativa em ambiente real (por isso a entrada no catálogo KEV), sem detalhar campanhas específicas. O resultado da exploração é execução de comando arbitrário com privilégios do processo de gerenciamento web — controle total do dispositivo, incluindo pivotagem para a rede interna atrás dele.
Versions
How to protect
D-Link classifica o DIR-820L como end-of-life e não indica atualização de firmware que corrija esta falha nas fontes disponíveis. A orientação oficial registrada pela CISA no catálogo KEV é direta: se o equipamento ainda estiver em uso, deve ser desconectado e substituído — não há patch a aplicar.
Como controle compensatório enquanto a substituição não ocorre: desabilitar completamente o acesso à interface de administração web pela WAN (isso deveria já estar desabilitado por padrão, mas convém verificar), restringir o acesso ao painel a uma VLAN de gerência isolada, trocar credenciais padrão e revisar se há sessões administrativas de longa duração ou tokens reutilizáveis que facilitem o sequestro de sessão necessário para o exploit documentado.
Não funciona como mitigação: confiar apenas na filtragem de front-end da interface web (é a própria causa da falsa sensação de segurança que o bug explora) ou assumir que a ausência de exposição direta à internet elimina o risco — dispositivos SOHO comprometidos por outros vetores (malware em host da LAN, CSRF contra a sessão do administrador) ainda alcançam o endpoint vulnerável.
How to detect
Em logs do servidor web embarcado ou de captura de tráfego HTTP na rede local, procurar requisições POST para /get_set.ccp com ccp_act=set contendo o parâmetro lanHostCfg_DeviceName_1.1.1.0 com sequências de escape %0a (ou caracteres de nova linha decodificados) seguidas de comandos de shell (ex.: chamadas a telnetd, sh, wget, busybox). A presença de sessões administrativas web com Cookie hasLogin=1 originadas de IPs não habituais dentro da LAN é outro indicador, já que o exploit documentado depende de sessão autenticada.
Como o DIR-820L é um dispositivo SOHO tipicamente sem logging centralizado ou exportação de logs para SIEM, não há garantia de visibilidade histórica de exploração — a ausência de log não indica ausência de comprometimento. Presença de telnetd ativo, contas de shell inesperadas ou processos desconhecidos em execução no dispositivo (verificável via interface de gerência, se ainda íntegra) é sinal indireto de exploração já concluída.