← back
CVE-2018-8440highunder attackransomware

CVE-2018-8440

93Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 7.8epss 18%
from disclosure to weapon48 days
Published on NVDSep 13
1st PoC+48d
metasploitAug 27
CISA KEV+1292d
exploitation probability
18%top 3% of all CVEs
observed exploitation
yesCISA + VulnCheck
2 public exploit(s)
Action required by CISAfederal deadline: 2022-04-18

Apply updates per vendor instructions.

Summary

Falha de elevação de privilégio local no Windows Task Scheduler: o método SchRpcSetSecurity, exposto via ALPC, altera a lista de controle de acesso (ACL) de um arquivo sem impersonar o usuário que fez a chamada. Um usuário local sem privilégios pode usar isso para conceder a si mesmo permissão de escrita sobre praticamente qualquer arquivo do sistema, inclusive DLLs carregadas por processos SYSTEM, e escalar para execução de código com privilégios de sistema. Importa porque foi divulgada como 0day público com PoC funcional antes de existir patch, e está no catálogo KEV da CISA por exploração confirmada — mas o vetor é estritamente local, não remoto.

Technical detail

O componente afetado é o Task Scheduler (schedsvc.dll, com lógica auxiliar em taskcomp.dll). O método RPC SchRpcSetSecurity(path, sddl, flags) é chamado por qualquer processo local via ALPC e serve para definir o security descriptor de uma tarefa ou pasta de tarefas em um caminho de arquivo arbitrário. A função RpcServer::SetSecurity, que implementa esse método, chama a operação de sistema de arquivos SetSecurityFile antes de iniciar a impersonação do cliente chamador — quando deveria impersonar primeiro. O resultado é que a alteração de ACL é executada com a identidade do próprio serviço, Local System, e não com a identidade (normalmente restrita) do usuário que fez a chamada. Isso é essencialmente uma falha de controle de autorização/impersonação incorreta (CWE-269 — gerenciamento incorreto de privilégios).

How it’s exploited

O SandboxEscaper (pesquisador que divulgou a falha) demonstrou o abuso da seguinte forma, conforme análise do 0patch: um usuário sem privilégios cria, na pasta %SystemRoot%\Tasks (onde a criação de novas tarefas é permitida a usuários não administradores), um arquivo .job que na verdade é um hard link apontando para um arquivo protegido do sistema (no PoC, uma DLL usada pelo spooler de impressão). Em seguida, o atacante chama SchRpcSetSecurity sobre esse .job para 'liberar' as permissões — como a chamada não é impersonada, a alteração de ACL se propaga para o arquivo de sistema apontado pelo hard link, tornando-o gravável pelo usuário comum. Com isso o atacante sobrescreve o arquivo de sistema com conteúdo malicioso e aciona a execução dele por um processo privilegiado (no exemplo, disparando o serviço de spooler de impressão para carregar a DLL adulterada), obtendo execução de código como SYSTEM.

Exigências reais: acesso local interativo com uma conta já autenticada, mesmo de baixo privilégio (PR:L no vetor CVSS); nenhuma interação de usuário adicional é necessária; não há componente de rede/remoto. É, portanto, uma vulnerabilidade de escalonamento pós-comprometimento inicial ou de ambiente multiusuário compartilhado (terminal server, RDS, estações compartilhadas), não uma falha explorável remotamente por si só.

A CISA confirma exploração ativa (entrada no catálogo KEV), e existem PoC pública original e módulo Metasploit, o que reduz bastante a barreira técnica para reprodução — a complexidade de exploração é baixa uma vez obtido acesso local.

Versions

Affected
Windows 7; Windows Server 2008; Windows Server 2008 R2; Windows Server 2012; Windows Server 2012 R2; Windows 8.1; Windows RT 8.1; Windows Server 2016; Windows 10; Windows 10 Servers — conforme lista de produtos afetados publicada pela Microsoft, sem builds específicas detalhadas nas fontes consultadas.
Fixed in
Atualização de segurança da Microsoft para CVE-2018-8440, liberada em 11 de setembro de 2018 (Patch Tuesday), que substitui schedsvc.dll com a correção na função RpcServer::SetSecurity. Números de build/KB exatos por versão de Windows não constam nas fontes utilizadas; consultar o advisory oficial da Microsoft (MSRC) para a atualização específica de cada sistema operacional afetado.

How to protect

A correção definitiva é aplicar a atualização de segurança da Microsoft para CVE-2018-8440, distribuída via Windows Update em 11/09/2018, que corrige a função RpcServer::SetSecurity em schedsvc.dll para impersonar corretamente o chamador antes (e reverter depois) da operação de definição de ACL — comportamento confirmado por diff binário (BinDiff) pelo 0patch, que mostrou a correção da Microsoft funcionalmente idêntica à sua micropatch. Não há números de KB específicos nas fontes consultadas aqui; o caminho correto é aplicar o cumulative update do mês correspondente à versão de Windows em uso, conforme instruções do fornecedor.

Como paliativo temporário — antes de existir patch oficial — o 0patch publicou uma micropatch de terceiros para diversas versões de Windows, injetando chamadas RpcImpersonateClient/RpcRevertToSelf em torno da operação vulnerável; isso é um controle compensatório de terceiros, não substitui o patch oficial e deixa de ser aplicado automaticamente quando o schedsvc.dll é atualizado (o hash do binário muda). Não há flag de registro ou configuração suportada pela Microsoft que desative apenas o comportamento vulnerável do Task Scheduler sem quebrar sua funcionalidade — restringir ou desabilitar o serviço Task Scheduler não é uma mitigação recomendada, pois quebra funcionalidades essenciais do sistema.

How to detect

As fontes consultadas não descrevem assinaturas de detecção formais publicadas pelo fornecedor ou por terceiros para esta CVE. Com base no mecanismo, sinais suspeitos a observar incluem: eventos de alteração de permissões (Security log ID 4670) em arquivos de sistema sensíveis feitos por contas não administrativas; criação de hard links dentro de %SystemRoot%\Tasks ou uso do método SchRpcSetSecurity por processos não relacionados à administração de tarefas agendadas; modificações inesperadas em DLLs do sistema (como bibliotecas usadas pelo spooler de impressão) fora de janelas de atualização; e carregamento de DLLs recém-modificadas por serviços privilegiados (schedsvc.exe, spoolsv.exe) imediatamente após uma mudança de ACL. Não há indicador de rede, já que a exploração é inteiramente local via ALPC.

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.
An elevation of privilege vulnerability exists when Windows improperly handles calls to Advanced Local Procedure Call (ALPC), aka "Windows ALPC Elevation of Privilege Vulnerability." This affects Windows 7, Windows Server 2012 R2, Windows RT 8.1, Windows Server 2008, Windows Server 2012, Windows 8.1, Windows Server 2016, Windows Server 2008 R2, Windows 10, Windows 10 Servers.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.