← back
CVE-2024-21338highunder attackransomwareCWE-822

Windows Kernel Elevation of Privilege Vulnerability

88Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 7.8epss 60%
from disclosure to weapon49 days
Published on NVDFeb 13
1st PoC+49d
CISA KEV+20d
exploitation probability
60%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
18 public exploit(s)
Action required by CISAfederal deadline: 2024-03-25

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Summary

Falha de elevação de privilégio no driver appid.sys (Application Identity, usado pelo AppLocker) do kernel do Windows. Um IOCTL exposto pelo driver não valida corretamente os privilégios de quem o chama, permitindo que um atacante com acesso local — na prática, com privilégios administrativos, segundo a exploração documentada — obtenha leitura e escrita arbitrária em memória de kernel. Importa porque foi usada como zero-day pelo grupo Lazarus para instalar uma versão atualizada do rootkit FudModule, evitando a técnica ruidosa de BYOVD (trazer um driver vulnerável de terceiros) já que appid.sys é um componente nativo, assinado e presente por padrão no Windows.

Technical detail

O driver appid.sys implementa o dispatcher de IOCTLs do serviço Application Identity, componente do AppLocker. A CISA classifica a falha como CWE-822 (o texto oficial da vulnerabilidade fala em 'exposed IOCTL with insufficient access control'), ou seja, o dispatcher aceita chamadas de IOCTL sem impor os checks de controle de acesso adequados sobre quem pode invocá-las e sobre os dados de entrada. Isso dá ao chamador em modo usuário influência sobre estruturas internas do driver que deveriam ser tratadas como confiáveis.

O PoC público (Exploit-DB #52275) explora a função interna AipSmartHashImageFile do appid.sys. O código monta um buffer de IOCTL cujo layout muda conforme a versão do Windows (build < 22000 para Windows 10 vs. Windows 11), usa o pseudo-handle -2 (thread atual) duplicado e consultas a NtQuerySystemInformation com SystemHandleInformation/SystemModuleInformation para vazar endereços de objetos de kernel (ETHREAD, FILE_OBJECT) e do módulo ntoskrnl. Com esses endereços resolvidos, o exploit usa o IOCTL vulnerável para escrever no campo PreviousMode da estrutura ETHREAD (offset 0x232 documentado no PoC), forçando o kernel a tratar chamadas subsequentes da thread como se já estivessem em modo kernel — uma primitiva clássica de leitura/escrita arbitrária de memória de kernel a partir de modo usuário.

A Avast, que reportou a falha à Microsoft, descreve o cenário como 'admin-to-kernel': a Microsoft não trata essa fronteira como limite de segurança formal, mas na prática ela impede que malware com privilégios de administrador dance livremente dentro do kernel sem depender de driver de terceiros vulnerável (BYOVD). Ao explorar um driver nativo e assinado, o atacante evita os dois pontos de detecção clássicos de BYOVD: gravar um driver vulnerável no disco e carregá-lo via serviço.

How it’s exploited

O vetor é local — não há componente de rede. O CVSS (AV:L/AC:L/PR:L/UI:N) indica exploração sem interação do usuário e com privilégios baixos como pré-requisito formal, mas a exploração documentada pelo Lazarus e pelo PoC público assume que o atacante já executa código com privilégios administrativos na máquina (pós-comprometimento). Ou seja, não é uma escalada de usuário anônimo para SYSTEM a partir do zero: é a etapa que transforma 'admin local' em 'controle total de kernel', o que é crítico para operações de APT que precisam desativar EDR/AV e ocultar presença.

Na campanha documentada pela Avast, o grupo Lazarus usou a falha como zero-day (antes da correção de fevereiro de 2024) para implantar uma versão atualizada do rootkit data-only FudModule, obtendo uma primitiva de leitura/escrita de kernel e, a partir dela, manipulação direta de objetos de kernel (DKOM) — incluindo uma técnica nova de manipulação de handle table para tentar suspender processos protegidos PPL associados a Microsoft Defender, CrowdStrike Falcon e HitmanPro.

Depois da divulgação e patch, surgiu PoC público (Exploit-DB, abril de 2025) que reproduz o mecanismo de forma independente, reduzindo a barreira de entrada para replicar a exploração em ambientes não corrigidos. A CVE está no catálogo KEV da CISA com confirmação de exploração ativa in-the-wild antes da correção.

Versions

Affected
Microsoft Windows 10 Version 1809; Windows 10 Version 21H2; Windows 10 Version 22H2; Windows 11 version 21H2; Windows 11 version 22H2; Windows 11 version 22H3; Windows 11 Version 23H2; Windows Server 2019 — conforme listado pelo fornecedor no advisory MSRC.
Fixed in
Corrigido pela atualização de segurança de fevereiro de 2024 (Patch Tuesday) da Microsoft. Os números de build/KB específicos por versão do Windows não estão detalhados nas fontes consultadas; consulte o advisory oficial da MSRC (link em referências) para o KB exato aplicável a cada versão listada.

How to protect

A correção definitiva é aplicar a atualização de segurança de fevereiro de 2024 (Patch Tuesday) da Microsoft para o build específico de cada versão listada — consulte o advisory da MSRC para o número de KB exato de cada sistema operacional, pois as fontes consultadas não detalham os números de build corrigidos por versão. A CISA exigiu a correção (ou descontinuação do produto, na ausência de mitigação) para agências federais dos EUA até 25/03/2024, prazo que serve de referência de urgência para qualquer ambiente exposto.

Não há workaround oficial documentado além do patch: appid.sys é um componente nativo do Windows, presente independentemente de o AppLocker estar configurado ou não, então desativar políticas de AppLocker não é uma mitigação validada pelo fornecedor. Bloqueio de driver de terceiros (vulnerable driver blocklist) não se aplica aqui, já que o driver é nativo e assinado — essa é justamente a razão pela qual esse tipo de falha é mais perigoso que um BYOVD clássico.

Como controle compensatório, monitorar e restringir rigorosamente quem obtém privilégios administrativos locais reduz a superfície, já que a exploração documentada parte de um atacante que já tem esse nível de acesso. Isso não substitui o patch, apenas limita quem pode chegar ao ponto de disparar a falha.

How to detect

Não há assinatura de arquivo confiável para caçar, como haveria em um BYOVD clássico: appid.sys é nativo, assinado e legítimo, então sua mera presença não indica nada. Sinais possíveis incluem chamadas anômalas de IOCTL ao dispositivo do AppID a partir de processos que não são o serviço Application Identity legítimo, padrões de duplicação do pseudo-handle -2 seguidos de consultas a NtQuerySystemInformation com SystemHandleInformation/SystemModuleInformation vindas de processos não relacionados a ferramentas administrativas, e tentativas de suspensão ou manipulação de processos PPL associados a soluções de segurança (Defender, EDR).

Como indicador secundário, a Avast e outros pesquisadores publicaram IOCs e detalhes de comportamento do rootkit FudModule associado a essa exploração; presença desses artefatos (manipulação direta de objetos de kernel, DKOM, alterações em handle tables) é evidência de exploração bem-sucedida, mas sua ausência não descarta uma tentativa — a exploração em si deixa poucos rastros em disco.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
Windows Kernel Elevation of Privilege Vulnerability
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:F/RL:O/RC:C
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.