← back
CVE-2016-0151highunder attackransomwareCWE-269

CVE-2016-0151

83Vexday Risk Score

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

ssvc Actcvss 7.8epss 63%
from disclosure to weapon15 days
Published on NVDApr 12
1st PoC+15d
CISA KEV+2176d
exploitation probability
63%top 1% 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 CSRSS (Client-Server Run-time Subsystem) do Windows 8.1, Windows Server 2012/2012 R2, Windows RT 8.1 e Windows 10 (Gold e 1511), causada por gerenciamento incorreto de tokens de processo. Um usuário já autenticado localmente pode rodar uma aplicação especialmente construída para obter um processo com token elevado (efetivamente rodando na Sessão 0), abrindo caminho para escalar a administrador. Importa porque está no catálogo KEV da CISA e tem PoC pública, mas o pré-requisito de logon local já concedido limita bastante o cenário de risco a máquinas multiusuário, servidores de terminal ou pós-comprometimento inicial.

Technical detail

O componente CSRSS (basesrv.dll) expõe o método RPC BaseSrvCheckVDM, que verifica se a Virtual DOS Machine (VDM) está instalada e habilitada. No Windows 8 e versões posteriores (builds de 32 bits) a VDM vem desabilitada por padrão; quando isso ocorre, o CSRSS tenta 'ajudar' criando um processo na área de trabalho para pedir a instalação da VDM. O token usado para criar esse novo processo vem do token de impersonation do chamador — não do primário. Um atacante local pode impersonar o token anônimo (Anonymous Logon) antes de chamar CsrClientCallServer, fazendo o CSRSS usar esse token anônimo como token primário do novo processo. Como o token anônimo tem Session ID 0, o processo resultante é criado na Sessão 0, área normalmente reservada a serviços do sistema (CWE-264, gerenciamento incorreto de privilégios).

How it’s exploited

A cadeia identificada pelo Google Project Zero (issue 692) explora BaseSrvLaunchProcess: o CSRSS impersona o cliente, duplica o token anônimo como token primário, depois reverte e impersona o token real do processo chamador (via BasepImpersonateClientProcess) apenas para a chamada de NtCreateUserProcess. Isso quebra a expectativa de que o token anônimo restringiria o acesso a arquivos: o processo final acaba rodando com contexto de segurança do usuário atual, mas na Sessão 0. Combinando isso com abuso de CreateProcessWithLogonW (flag LOGON_NETCREDENTIALS_ONLY, informando o PID do processo anônimo como pai), o atacante consegue criar um processo arbitrário com o token do usuário corrente executando na Sessão 0 — sessão isolada desde o Vista, onde é possível criar objetos nomeados em \BaseNamedObjects sem o privilégio SeCreateGlobalPrivilege e potencialmente interferir com serviços que assumem confiança baseada na Sessão 0.

Versions

Affected
Windows 8.1 (32 e 64 bits); Windows Server 2012 e Windows Server 2012 R2 (incluindo Server Core); Windows RT 8.1; Windows 10 (edição original/Gold, 32 e 64 bits) e Windows 10 versão 1511 (32 e 64 bits). A Microsoft também cita Windows Server 2016 Technical Preview 4 e 5 como afetados, recomendando aplicação via Windows Update.
Fixed in
KB3146723 para Windows 8.1, Windows Server 2012, Windows Server 2012 R2 e Windows RT 8.1; KB3147461 para Windows 10 (Gold); KB3147458 para Windows 10 versão 1511. Todas distribuídas via MS16-048, publicado em 12 de abril de 2016.

How to protect

A correção definitiva é aplicar o MS16-048 (KB3148528), que ajusta como o Windows gerencia tokens de processo em memória. Os pacotes específicos são KB3146723 para Windows 8.1, Windows Server 2012, Windows Server 2012 R2 e Windows RT 8.1, e as atualizações cumulativas KB3147461 (Windows 10 RTM) e KB3147458 (Windows 10 versão 1511) para as edições correspondentes de 32 e 64 bits, incluindo instalações Server Core. A própria Microsoft declara não ter identificado fatores mitigantes nem workarounds para esta vulnerabilidade — não há flag de registro ou configuração alternativa documentada que neutralize o problema sem o patch.

How to detect

Não há assinatura de rede a procurar, já que a exploração é inteiramente local: o vetor é uma chamada RPC interna ao CSRSS (BaseSrvCheckVDM) seguida de manipulação de tokens de impersonation. Em telemetria de endpoint, sinais possíveis incluem criação inesperada de processos filhos do csrss.exe fora do padrão normal, processos rodando com logon 'Anonymous Logon' na Sessão 0, ou aparecimento anômalo de processos como notepad.exe/painel de controle suspensos criados por um usuário comum imediatamente após uma falha reportada de instalação de VDM. Nenhuma das fontes consultadas (boletim da Microsoft, PoC, CISA) documenta indicadores oficiais de detecção ou IOCs de campanhas reais que exploraram essa CVE.

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.
The Client-Server Run-time Subsystem (CSRSS) in Microsoft Windows 8.1, Windows Server 2012 Gold and R2, Windows RT 8.1, and Windows 10 Gold and 1511 mismanages process tokens, which allows local users to gain privileges via a crafted application, aka "Windows CSRSS Security Feature Bypass Vulnerability."
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.