25 de maio de 20268 min de leitura

Exploração do KnowledgeDeliver via Vulnerabilidade de Desserialização de ViewState

Google Threat Intelligence Group

Google Cloud

Banner - Exploração do KnowledgeDeliver via Vulnerabilidade de Desserialização de ViewState

Exploração do KnowledgeDeliver via Vulnerabilidade de Desserialização de ViewState

TL;DR: A vulnerabilidade CVE-2026-5426 no LMS KnowledgeDeliver (Digital Knowledge) explorou chaves machineKey ASP.NET idênticas entre clientes, permitindo RCE via ViewState deserialization sem autenticação. O atacante implantou web shell BLUEBEAM (Godzilla) em memória, adulterou arquivos JS e distribuiu backdoor Cobalt Strike. Para empresas brasileiras que usam ASP.NET legado, a lição é clara: chaves de cryptografia compartilhadas são um vetor crítico e devem ser rotacionadas imediatamente.

Introdução

No final de 2025, a Mandiant respondeu a um incidente de segurança envolvendo um servidor web comprometido rodando o KnowledgeDeliver — um Learning Management System (LMS) desenvolvido pela Digital Knowledge, amplamente utilizado no Japão. A Mandiant identificou uma vulnerabilidade crítica que permitia Remote Code Execution (RCE) sem autenticação. Um ator de ameaça desconhecido aproveitou esse acesso para injetar código malicioso na plataforma, com o objetivo de infectar usuários que visitassem o site.

A vulnerabilidade decorre do uso de chaves machineKey ASP.NET pré-compartilhadas e idênticas em múltiplas implantações de clientes. Ela foi explorada como zero-day e agora é rastreada como CVE-2026-5426.

Por que chaves machineKey compartilhadas são um risco sistêmico?

Instalações do KnowledgeDeliver feitas antes de 24 de fevereiro de 2026 utilizavam um arquivo web.config padronizado fornecido pelo vendor. Esse arquivo continha valores machineKey hardcoded usados pelo ASP.NET para criptografar e assinar dados, incluindo payloads de ViewState.

Como essas chaves eram idênticas em ambientes independentes de clientes, um ator de ameaça que obtivesse as chaves de uma implantação poderia comprometer qualquer outra instância do KnowledgeDeliver exposta à internet.

Exemplo da linha de configuração encontrada no web.config:

<machineKey decryptionKey="<REDACTED>" validationKey="<REDACTED>" />

O ViewState do ASP.NET persiste o estado da página entre postbacks. Quando a machineKey é conhecida, um atacante pode criar um payload malicioso de ViewState. Ao enviá-lo em uma requisição HTTP (via parâmetro __VIEWSTATE), o servidor é induzido a desserializá-lo.

Essa técnica segue o padrão das vulnerabilidades de desserialização de ViewState que afetaram Sitecore (reportadas anteriormente pela Mandiant) e os ataques de injeção de código usando chaves machineKey ASP.NET divulgadas publicamente (reportados pela Microsoft). Fica claro: manter a machineKey única e segura não é opcional.

O que aconteceu após a exploração?

Uma vez com acesso, os atacantes focaram em manter presença e expandir o impacto.

Implantação do web shell BLUEBEAM

O atacante implantou um web shell in-memory baseado em .NET chamado BLUEBEAM (também conhecido como Godzilla). O uso de BLUEBEAM é consistente com o reportado pela Microsoft. Esse malware opera inteiramente em memória dentro do processo worker do IIS (w3wp.exe), dificultando a detecção por scanners baseados em arquivo. Ele permite que o atacante execute comandos e payloads adicionais enviando dados criptografados via corpo de requisições HTTP POST.

Adulteração de arquivos

O atacante executou comandos para escalar o controle sobre o sistema de arquivos do servidor web:

  • Modificação de permissões: Usou icacls para conceder acesso total a "Everyone" no diretório da aplicação web.
  • Adulteração de JavaScript: Modificou um arquivo JavaScript da aplicação, adicionando código para:
    • Exibir um falso alerta de segurança, induzindo usuários a instalar um "plugin de autenticação de segurança".
    • Carregar silenciosamente um script malicioso remoto hospedado em um domínio controlado pelo atacante.

Infecção por Cobalt Strike

O script remoto convencia usuários a baixar um instalador falso, que infectava as estações com o backdoor BEACON do Cobalt Strike. O payload era criptografado com uma chave que usava o nome da organização comprometida, indicando que o atacante preparou esse payload especificamente para o alvo.

Como caçar essa atividade na sua infraestrutura?

Organizações devem monitorar os seguintes indicadores para identificar exploração de ViewState e atividade pós-exploração.

1. Logs de Eventos da Aplicação (Event ID 1316)

Monitore o log de Aplicação do Windows para Event ID 1316, fonte ASP.NET 4.0.30319.0 (ou similar).

  • Tentativa falha (falha de integridade): Event code: 4009-++-Viewstate verification failed. Reason: The viewstate supplied failed integrity check. — Pode indicar tentativa de ataque com chave incorreta.
  • Execução bem-sucedida (ViewState inválido): Event code: 4009-++-Viewstate verification failed. Reason: Viewstate was invalid. — Confirma que os checks de integridade foram aprovados. A desserialização foi tentada e pode ter sido bem-sucedida. O payload pode ou não ter sido executado.

A Mandiant conseguiu descriptografar strings de payload registradas nas mensagens de log usando as machineKeys do servidor, recuperando um payload relacionado ao web shell BLUEBEAM.

2. Atividade suspeita de processos

Monitore processos filhos incomuns gerados por w3wp.exe. Comandos observados:

  • cmd.exe /c ...
  • whoami
  • powershell.exe

3. Monitoramento de integridade de arquivos

Monitore alterações não autorizadas em arquivos .js, .aspx ou .config dentro da raiz web. Especificamente, procure por adição de carregadores de script remoto ou lógica incomum em bibliotecas comuns.

4. Strings User-Agent anômalas

A Mandiant identificou strings User-Agent compostas por dois identificadores distintos concatenados, consistentes com as reportadas na vulnerabilidade zero-day de desserialização de ViewState. Exemplos:

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) chromeframe/10.0.648.205 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

Remediação e Mitigação

  • Rotacione as machineKeys: Gere imediatamente uma chave machineKey única e criptograficamente forte para cada instância do KnowledgeDeliver. Essa é a única forma de invalidar o segredo compartilhado.
  • Restrinja o acesso: Se possível, limite o acesso ao LMS a faixas de IP conhecidas da organização.
  • Investigação: Realize uma caça completa a essa atividade e conduza uma investigação minuciosa se houver sinais de exploração.

Perspectivas e Implicações

A exploração do KnowledgeDeliver destaca os riscos severos do uso de segredos compartilhados em templates de deployment. Uma única chave vazada pode comprometer um ecossistema inteiro de instalações. Implementar segredos únicos e monitoramento robusto de endpoints é a defesa essencial contra ataques de desserialização.

Indicadores de Compromisso (IOCs)

Nome do Arquivo Tipo SHA-256
LoadLibrary.dll BLUEBEAM 7c1f99dca8e5a7897892f9d224a6495023a2cfd2671697d229d355978c415ed2

Google Security Operations (SecOps)

As seguintes buscas no SecOps podem ser usadas para caçar essa atividade:

(metadata.log_type = "WINEVTLOG" or metadata.log_type = "WINEVTLOG_XML") 
metadata.product_event_type = "1316"
additional.fields["Message"] = /Event code: 4009\b/ nocase
(metadata.event_type = "PROCESS_LAUNCH" or metadata.event_type = "PROCESS_OPEN") AND
principal.process.command_line = /w3wp.exe/ nocase AND
target.process.command_line = /cmd.+ \/c |whoami|powershell/ nocase

Clientes SecOps têm acesso às seguintes regras e mais nos pacotes Mandiant Hunting Rules, Mandiant Frontline Threats e Mandiant Intel Emerging Threats:

  • ASP.NET ViewState Deserialization Attempt
  • W3wp Launching Cmd With Recon Commands
  • W3wp Launching Encoded Powershell
  • W3wp Launching Icalcls
  • Web Server Process Launching Whoami
  • IIS ViewState Exploitation Success
  • IIS ViewState Exploitation Followed by Web Root File Tampering
  • Possible Windows Exchange Server Spawning Shell

Agradecimentos

A Mandiant agradece à equipe da Digital Knowledge pela colaboração nesta divulgação.

Perguntas Frequentes

  • O que é a vulnerabilidade CVE-2026-5426?

    • É uma vulnerabilidade crítica de desserialização de ViewState no LMS KnowledgeDeliver, que permite execução remota de código não autenticada. A causa raiz é o uso de chaves machineKey ASP.NET idênticas (hardcoded no web.config) em múltiplas instâncias, permitindo que um atacante que conheça as chaves compromise qualquer servidor exposto.
  • Como saber se minha instância do KnowledgeDeliver foi comprometida?

    • Monitore Event ID 1316 no log de aplicação do Windows (ASP.NET 4.0.30319.0) com código 4009 – especialmente mensagens 'Viewstate was invalid', que indicam que a desserialização foi tentada com sucesso. Verifique também processos filhos anômalos do w3wp.exe, alterações não autorizadas em arquivos .js/.aspx/.config e User-Agent strings concatenadas incomuns.
  • Qual é a única correção definitiva para essa falha?

    • Rotacionar imediatamente as chaves machineKey em cada instância do KnowledgeDeliver, gerando valores únicos e criptograficamente fortes. Isso invalida o segredo compartilhado e impede a forja de payloads ViewState. Medidas adicionais incluem restringir acesso ao LMS por IP e realizar uma investigação forense completa.
  • Esse tipo de ataque é comum no Brasil?

    • Embora o incidente documentado tenha ocorrido no Japão, o padrão de ataque – desserialização de ViewState com chaves machineKey hardcoded – já foi reportado globalmente em outras plataformas ASP.NET (Sitecore, Exchange). Empresas brasileiras que mantêm legados em .NET Framework e usam templates de configuração compartilhados estão igualmente expostas.
  • O que é o BLUEBEAM (Godzilla) e como ele age?

    • BLUEBEAM é um web shell in-memory baseado em .NET, executado dentro do processo w3wp.exe do IIS. Ele opera exclusivamente em memória, dificultando detecção por scanners de arquivo. Permite que o atacante execute comandos arbitrários e entregue payloads adicionais via requisições HTTP POST criptografadas.

Artigo originalmente publicado por Google Threat Intelligence Group em Cloud Blog.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset