← voltar
CVE-2021-34527highsob ataqueransomware

Windows Print Spooler Remote Code Execution Vulnerability

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 8.8epss 100%
da publicação à arma0 dias
Publicada no NVD2 de jul.
1ª PoC29 de jun.
metasploit8 de jun.
CISA KEV+124d
probabilidade de exploração
100%top 1% das CVEs
exploração observada
simCISA + VulnCheck
37 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumo

PrintNightmare é uma falha crítica no Windows Print Spooler que permite execução remota de código com privilégios SYSTEM através da função RpcAddPrinterDriverEx (e variante RpcAsyncAddPrinterDriver). A CVE existe em praticamente toda versão de Windows com o serviço de impressão ativo, de estações a controladores de domínio, e passou de PoC pública para exploração ativa documentada em menos de 48 horas — hoje está no catálogo KEV da CISA. O detalhe que a manchete '8.8 crítico' esconde: a exploração remota exige autenticação prévia no serviço (mesmo que com um usuário de baixo privilégio), o que reduz drasticamente o universo de atacantes anônimos, mas não elimina o risco em ambientes de Active Directory, onde qualquer conta de domínio comprometida se torna um trampolim para SYSTEM em qualquer host com o Spooler exposto.

Detalhamento técnico

A função RPC RpcAddPrinterDriverEx() (interface MS-RPRN) instala drivers de impressora recebendo um objeto DRIVER_CONTAINER com metadados do driver e uma flag dwFileCopyFlags controlando como os arquivos substitutos são copiados. O Print Spooler não valida adequadamente a origem e a integridade do arquivo de driver referenciado — qualquer usuário autenticado pode apontar para um driver hospedado em um servidor remoto (via SMB) e o serviço spoolsv.exe, executando como SYSTEM, carrega e executa a DLL apontada sem verificação de assinatura ou de contexto de privilégio adequado. Isso é classificado como restrição de acesso incorreta a funcionalidade privilegiada (CWE-269, privilege management).

Como é explorada

O vetor primário é RpcAddPrinterDriverEx() invocado sobre SMB, ou a variante RpcAsyncAddPrinterDriver() invocada via RPC puro — ambas atingem o mesmo caminho de código de AddPrinterDriverEx. O pré-requisito real é autenticação: um atacante precisa de credenciais válidas no sistema-alvo (mesmo que de baixo privilégio) para chamar a RPC remotamente; localmente, um usuário sem privilégios também consegue escalar para SYSTEM sem interação do usuário-alvo. Isso torna o cenário mais perigoso em redes internas e domínios AD, onde uma conta comprometida por phishing ou credential stuffing se transforma em execução SYSTEM em qualquer máquina com o Spooler acessível pela rede — inclusive controladores de domínio, cujo comprometimento equivale a takeover total do domínio.

Versões

Afetadas
Praticamente todas as versões suportadas de Windows client e server com o serviço Print Spooler habilitado, incluindo Windows 10 (versões 1507, 1607, 1809, 20H2, 21H2, 22H2), Windows 11 (21H2, 22H2) e as correspondentes edições Windows Server, conforme lista de produtos afetados publicada pela Microsoft.
Corrigidas em
Atualizações de segurança específicas por versão, distribuídas em ondas entre 1º e 7 de julho de 2021 — a Microsoft publicou correção inicial em 1º de julho e, em atualização de 7 de julho de 2021, liberou patches adicionais para Windows Server 2012, Windows Server 2016 e Windows 10 versão 1607, que haviam ficado descobertos na primeira rodada. Números exatos de KB por build não foram confirmados nas fontes consultadas; recomenda-se validar a tabela de 'Security Updates' do advisory oficial da Microsoft para a versão específica do ambiente.

Como se proteger

A correção completa exige aplicar a atualização de segurança da Microsoft para CVE-2021-34527 correspondente à versão do sistema (lançada em ondas entre 1º e 7 de julho de 2021, cobrindo inclusive Windows Server 2012, Server 2016 e Windows 10 versão 1607, que ficaram sem patch nos primeiros dias) e, adicionalmente, confirmar que as chaves de registro em HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint (NoWarningNoElevationOnInstall e UpdatePromptSettings) estão em 0 ou ausentes — sistemas com essas chaves em valor diferente de zero permanecem vulneráveis 'by design' mesmo com o patch instalado, segundo a própria Microsoft. Após o patch, a chave RestrictDriverInstallationToAdministrators (documentada em KB5005010) passa a ser verificada para restringir instalação de drivers a administradores.

Quando a atualização não pode ser aplicada imediatamente, os paliativos reais documentados pela Microsoft e replicados pelo CERT/CC são: parar e desabilitar o serviço Spooler (Stop-Service -Name Spooler -Force; Set-Service -Name Spooler -StartupType Disabled), o que elimina impressão local e remota; ou desabilitar a política 'Allow Print Spooler to accept client connections' via GPO, que bloqueia o vetor remoto mas mantém impressão local em dispositivo diretamente conectado (exige reinício do serviço Spooler). Bloquear as portas 135/tcp (RPC Endpoint Mapper) e 139/445/tcp (SMB) em firewall baseado em host reduziu a exploração remota em testes, mas pode quebrar funcionalidades legítimas de servidor.

Não funciona como mitigação: instalar apenas a atualização de CVE-2021-1675 (o patch de junho de 2021) — essa CVE é distinta e trata de outro vetor na mesma função; sistemas só com esse patch permanecem expostos ao PrintNightmare.

Como detectar

Sinais de exploração incluem: criação de novos arquivos .dll em C:\Windows\System32\spool\drivers\x64\3\ (ou subpastas equivalentes) fora de processo legítimo de instalação de driver, seguida de carregamento por spoolsv.exe; entradas de log de eventos do Windows Print Service (Microsoft-Windows-PrintService/Operational e /Admin) registrando adição de drivers com nomes suspeitos ou origem em caminho de rede (UNC); e processos filhos anômalos gerados por spoolsv.exe com token SYSTEM. Chamadas RPC para as interfaces RpcAddPrinterDriverEx/RpcAsyncAddPrinterDriver capturadas em tráfego SMB (portas 139/445) ou RPC (porta 135) partindo de hosts que não deveriam administrar impressão são um indicador de rede. Não há assinatura única confiável para todas as variantes do exploit publicadas — múltiplas PoCs (incluindo módulo Metasploit) usam caminhos de execução levemente diferentes, então ausência de alerta em uma ferramenta específica não garante que o host não foi alvo de tentativa.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
<p>A remote code execution vulnerability exists when the Windows Print Spooler service improperly performs privileged file operations. An attacker who successfully exploited this vulnerability could run arbitrary code with SYSTEM privileges. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights.</p> <p>UPDATE July 7, 2021: The security update for Windows Server 2012, Windows Server 2016 and Windows 10, Version 1607 have been released. Please see the Security Updates table for the applicable update for your system. We recommend that you install these updates immediately. If you are unable to install these updates, see the FAQ and Workaround sections in this CVE for information on how to help protect your system from this vulnerability.</p> <p>In addition to installing the updates, in order to secure your system, you must confirm that the following registry settings are set to 0 (zero) or are not defined (<strong>Note</strong>: These registry keys do not exist by default, and therefore are already at the secure setting.), also that your Group Policy setting are correct (see FAQ):</p> <ul> <li>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint</li> <li>NoWarningNoElevationOnInstall = 0 (DWORD) or not defined (default setting)</li> <li>UpdatePromptSettings = 0 (DWORD) or not defined (default setting)</li> </ul> <p><strong>Having NoWarningNoElevationOnInstall set to 1 makes your system vulnerable by design.</strong></p> <p>UPDATE July 6, 2021: Microsoft has completed the investigation and has released security updates to address this vulnerability. Please see the Security Updates table for the applicable update for your system. We recommend that you install these updates immediately. If you are unable to install these updates, see the FAQ and Workaround sections in this CVE for information on how to help protect your system from this vulnerability. See also <a href="https://support.microsoft.com/topic/31b91c02-05bc-4ada-a7ea-183b129578a7">KB5005010: Restricting installation of new printer drivers after applying the July 6, 2021 updates</a>.</p> <p>Note that the security updates released on and after July 6, 2021 contain protections for CVE-2021-1675 and the additional remote code execution exploit in the Windows Print Spooler service known as “PrintNightmare”, documented in CVE-2021-34527.</p>
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:F/RL:O/RC:C
PoCs públicas encontradas37
githubgithub.com/byt3bl33d3r/ItWasAllADream801githubgithub.com/JohnHammond/CVE-2021-34527318githubgithub.com/nemo-wq/PrintNightmare-CVE-2021-34527173githubgithub.com/m8sec/CVE-2021-34527118githubgithub.com/hackerhouse-opensource/cve-2021-3452723githubgithub.com/dywhoami/CVE-2021-34527-Scanner-Based-On-cube0x0-POC3githubgithub.com/Tomparte/PrintNightmare3githubgithub.com/powershellpr0mpt/PrintNightmare-CVE-2021-345272githubgithub.com/rdboboia/disable-RegisterSpoolerRemoteRpcEndPoint2githubgithub.com/thomas-lauer/PrintNightmare2githubgithub.com/0xirison/PrintNightmare-Patcher2githubgithub.com/cyb3rpeace/CVE-2021-345271githubgithub.com/Amaranese/CVE-2021-345271githubgithub.com/geekbrett/CVE-2021-34527-PrintNightmare-Workaround0githubgithub.com/DenizSe/CVE-2021-345270githubgithub.com/vinaysudheer/Disable-Spooler-Service-PrintNightmare-CVE-2021-345270githubgithub.com/WidespreadPandemic/CVE-2021-34527_ACL_mitigation0githubgithub.com/glorisonlai/printnightmare0githubgithub.com/Eutectico/Printnightmare0githubgithub.com/syntaxbearror/PowerShell-PrintNightmare0githubgithub.com/fengjixuchui/CVE-2021-34527-16750githubgithub.com/d0rb/CVE-2021-345270githubgithub.com/TieuLong21Prosper/detect_bruteforce0githubgithub.com/Hirusha-N/CVE-2021-34527-CVE-2023-38831-and-CVE-2023-327840githubgithub.com/AUSK1LL9/CVE-2021-345270githubgithub.com/AlDawli/CVE-2021-34527-0vulncheckvulncheck.com/xdb/aafd327559cbnão verificadovulncheckvulncheck.com/xdb/236b4901d545não verificadovulncheckvulncheck.com/xdb/a9a05728c824não verificadovulncheckvulncheck.com/xdb/f06e206bb116não verificadovulncheckvulncheck.com/xdb/66146f087766não verificadovulncheckvulncheck.com/xdb/f4a2f262c1e1não verificadocve_referencepacketstormsecurity.com/files/167261/Print-Spooler-Remote-DLL-Injection.htmlnão verificadovulncheckvulncheck.com/xdb/94dfa232ad84não verificadovulncheckvulncheck.com/xdb/161c77693a74não verificadovulncheckvulncheck.com/xdb/8b8ea9fe1124não verificadovulncheckvulncheck.com/xdb/0544e277335enão verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.