CVE-2021-27852
Priorize a correção. Ela está sob exploração confirmada pelo CISA.
Versions 6 and earlier for this product are end-of-life and must be removed from agency networks. Versions 7 and later are not considered vulnerable.
Resumo
Checkbox Survey, aplicação ASP.NET para criação de formulários e pesquisas, implementa sua própria versão de View State e desserializa esse dado com LosFormatter sem validação de integridade, permitindo execução remota de código não autenticada. A falha está confirmada como explorada ativamente e consta no catálogo KEV da CISA, que determina a remoção imediata de versões 6 e anteriores — não há prazo de "atualizar quando possível" aqui, o produto é tratado como fim de vida.
Detalhamento técnico
O ASP.NET nativo usa View State para persistir estado de página entre requisições, protegido por um Message Authentication Code (MAC) que impede alteração do payload serializado pelo cliente. O Checkbox Survey, em vez de usar esse mecanismo padrão, implementa sua própria lógica de View State: recebe um parâmetro _VSTATE na requisição e o desserializa diretamente via System.Web.UI.LosFormatter. Como essa manipulação é feita pelo código da aplicação e não pelo pipeline padrão do ASP.NET, a configuração de MAC do servidor é ignorada — o dado nunca passa pela verificação de assinatura que normalmente protegeria contra adulteração.
Isso é uma Deserialization of Untrusted Data (CWE-502) clássica: o atacante controla integralmente o conteúdo do campo _VSTATE, e o LosFormatter desserializa qualquer objeto .NET serializado ali, sem checagem de tipo ou origem. Em cenários de desserialização insegura no .NET, isso tipicamente permite construir cadeias de gadgets (ObjectDataProvider e afins, dependendo do que está carregado no AppDomain) que resultam em execução arbitrária de código no contexto do processo do servidor web.
O ponto crítico é a ausência de MAC: mesmo que o ASP.NET subjacente estivesse configurado corretamente para proteger View State nativo, a lógica customizada do Checkbox Survey contorna essa proteção porque ela mesma faz o parsing e a desserialização do parâmetro, fora do fluxo que o framework protegeria.
Como é explorada
O vetor é uma requisição HTTP especialmente construída contendo um parâmetro _VSTATE malicioso, enviada a qualquer instância pública do Checkbox Survey vulnerável. Não é necessária autenticação, interação do usuário, nem configuração não padrão — a falha está no comportamento padrão da aplicação em qualquer instalação de versão anterior à 7.0. A complexidade de ataque é baixa: quem entende a mecânica de desserialização de View State no .NET (LosFormatter/gadgets conhecidos do ecossistema) tem tudo que precisa para montar o payload.
O resultado final é execução de código arbitrário com os privilégios do processo do servidor web (IIS/w3wp.exe, tipicamente). Isso dá ao atacante controle equivalente a comprometimento do host onde a aplicação corre, não apenas da aplicação em si.
A CISA confirma exploração em campo (entrada no KEV) e o CERT/CC também registra relatos de exploração ativa. Não há detalhes públicos sobre quais campanhas ou atores usaram a falha, apenas a confirmação de que ela foi/é explorada.
Versões
Como se proteger
A correção do fornecedor é migrar para Checkbox Survey 7.0 ou posterior, versão que eliminou o uso de View State customizado — a partir dela a vulnerabilidade não existe estruturalmente, não é uma configuração que se liga ou desliga. Não há patch para a linha 6.x: o fornecedor não mantém mais essa versão.
Para quem não pode migrar imediatamente, a única mitigação real reconhecida pelo CERT/CC e pela CISA é remover o Checkbox Survey (versão 6 ou anterior) dos sistemas expostos. Não existe workaround de configuração documentado que neutralize a falha mantendo a versão vulnerável em produção — como a checagem de MAC do ASP.NET é ignorada pela lógica própria da aplicação, ajustar configurações do IIS/ASP.NET (como forçar MAC) não resolve, porque o problema está no código do CheckboxWeb.dll, não no framework.
Controles compensatórios como WAF podem reduzir a superfície bloqueando padrões conhecidos do parâmetro _VSTATE malformado, mas isso é mitigação de perímetro, não remediação — a CISA determina remoção do software, não apenas isolamento de rede, para agências federais dos EUA sob a diretriz do KEV.
Como detectar
Sinal de tentativa de exploração em logs de acesso web: requisições HTTP contendo o parâmetro _VSTATE com payloads anormalmente grandes, malformados ou com estrutura de dados serializados .NET (frequentemente reconhecíveis por prefixos binários típicos de LosFormatter/BinaryFormatter) fora do padrão esperado de um campo de estado de formulário legítimo. Erros de desserialização nos logs de aplicação/IIS relacionados a LosFormatter ou exceções de tipo inesperado no processamento de _VSTATE também são indício.
Não há assinatura única e confiável publicada pelo fornecedor ou pelo CERT/CC para identificar exploração retroativamente — a detecção depende de inspeção manual de logs de requisição em busca do parâmetro _VSTATE anômalo e de monitoramento de comportamento anômalo do processo do servidor web (spawns de processo inesperados, por exemplo) após requisições a endpoints do Checkbox Survey.