← back
CVE-2021-1675highunder attackransomware

Windows Print Spooler Remote Code Execution Vulnerability

100Vexday Risk Score

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

ssvc Actcvss 7.8epss 85%
from disclosure to weapon21 days
Published on NVDJun 8
1st PoC+21d
metasploitJun 8
CISA KEV+148d
exploitation probability
85%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
82 public exploit(s)
Action required by CISAfederal deadline: 2021-11-17

Apply updates per vendor instructions.

Summary

Falha de autorização (CWE-285) no serviço Print Spooler do Windows que permite a um atacante autenticado — remoto via RPC/SMB ou local sem privilégios — executar código arbitrário com privilégios de SYSTEM. É a vulnerabilidade que deu origem ao caso 'PrintNightmare': corrigida oficialmente em junho de 2021, mas pesquisadores publicaram PoC assumindo que ainda não havia patch, e o exploit resultante também atingia uma segunda falha distinta (CVE-2021-34527), corrigida só em julho. Está no catálogo KEV da CISA com exploração confirmada.

Technical detail

A função RPC RpcAddPrinterDriverEx(), exposta pelo Print Spooler (spoolsv.exe), instala drivers de impressora recebendo dois parâmetros relevantes: um objeto DRIVER_CONTAINER (informação sobre o driver a usar) e dwFileCopyFlags (como os arquivos de driver substitutos devem ser copiados). O serviço não restringe adequadamente quem pode chamar essa função nem valida corretamente a origem do arquivo de driver especificado — daí o CWE-285, Improper Authorization.

Qualquer usuário autenticado no domínio ou na máquina pode invocar RpcAddPrinterDriverEx() apontando para um driver hospedado em um servidor remoto controlado pelo atacante. O Spooler carrega e executa esse DLL com privilégios de SYSTEM, sem o prompt de segurança que normalmente acompanha instalação de drivers não assinados/não confiáveis via Point and Print.

Versões atualizadas do exploit trocaram RpcAddPrinterDriverEx() por RpcAsyncAddPrinterDriver() — função que atinge o mesmo efeito por um caminho de chamada assíncrono, contornando a correção aplicada apenas à primeira função. Isso é o que tecnicamente separa CVE-2021-1675 (fechada pela atualização de junho/2021, endereçando RpcAddPrinterDriverEx) de CVE-2021-34527 (a vulnerabilidade 'PrintNightmare' propriamente dita, corrigida em julho/2021), embora ambas compartilhem a mesma superfície funcional (AddPrinterDriverEx) e o mesmo vetor de exploração público.

How it’s exploited

Pré-requisito real: o atacante precisa de credenciais válidas no sistema alvo (usuário autenticado, sem necessidade de privilégios administrativos) — não é uma falha explorável por um atacante anônimo na internet. O vetor remoto passa por SMB (portas 139/445) e pelo Endpoint Mapper de RPC (porta 135); o vetor local não exige rede, apenas execução de código como usuário local não privilegiado na máquina vulnerável.

Na prática, o atacante hospeda um DLL malicioso em um compartilhamento acessível e chama RpcAddPrinterDriverEx() (ou RpcAsyncAddPrinterDriver()) apontando para esse caminho. O Spooler, executando como SYSTEM, carrega e executa o DLL — resultado final é execução de código arbitrário com privilégios de SYSTEM, viabilizando movimento lateral e escalação de privilégio completa em ambientes de domínio Windows.

A exploração é considerada de baixa complexidade técnica — PoC pública (PrintNightmare) e módulo Metasploit disponíveis desde 2021 tornaram o ataque trivial de reproduzir. A CISA confirma exploração ativa (entrada no KEV), com prazo de correção definido para 2021-11-17. É importante notar que boa parte da cobertura pública de 'PrintNightmare' mistura CVE-2021-1675 com CVE-2021-34527; exploits genéricos rotulados como 'PrintNightmare' frequentemente exploram a segunda falha, não esta.

Versions

Affected
Microsoft Windows 10 (versões 1507, 1607, 1809, 1909, 2004, 20H2, 21H1) e Windows 7, conforme listado pela Microsoft para esta CVE. O advisory da Microsoft cobre também outras linhas de Windows Server suportadas no momento, mas versões e KBs específicos de servidor não constam nas fontes consultadas — consulte o MSRC diretamente para a lista completa por SKU.
Fixed in
Corrigida pela atualização de segurança de junho de 2021 (patch específico para RpcAddPrinterDriverEx). Números de KB exatos por versão de Windows não constam nas fontes revisadas — verificar o Update Guide da Microsoft para o KB correspondente à build específica. Nota crítica: esse patch isolado não bloqueia a exploração via RpcAsyncAddPrinterDriver(); é necessário também o patch de julho de 2021 que corrige CVE-2021-34527 para fechar a superfície completa do 'PrintNightmare'.

How to protect

A Microsoft resolveu CVE-2021-1675 especificamente na atualização de segurança de junho de 2021. Instalar essa atualização cumulativa é o remediation primário — mas o CERT/CC alerta explicitamente que essa correção NÃO protege contra os exploits públicos rotulados 'PrintNightmare', que dependem de CVE-2021-34527, corrigida apenas na atualização de julho de 2021. Ou seja: aplicar só o patch de junho dá falsa sensação de segurança; é necessário também o patch de julho para cobrir RpcAsyncAddPrinterDriver().

Quando patch imediato não é viável, os workarounds documentados pela Microsoft (e replicados pelo CERT/CC) são: (1) parar e desabilitar o serviço Spooler via PowerShell (Stop-Service -Name Spooler -Force; Set-Service -Name Spooler -StartupType Disabled) — elimina impressão local e remota, custo alto em ambientes que dependem de impressão; (2) desabilitar a política 'Allow Print Spooler to accept client connections' via GPO, que bloqueia o vetor remoto mas mantém impressão local direta — requer reiniciar o serviço; (3) bloquear as portas RPC Endpoint Mapper (135/tcp) e SMB (139/445 tcp) via firewall de host, com testes limitados de eficácia e risco de quebrar funcionalidades legítimas de servidor.

Mesmo após aplicar o patch de julho (CVE-2021-34527), sistemas com a chave de registro NoWarningNoElevationOnInstall configurada para valor diferente de 0 em HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint\ permanecem vulneráveis por design, segundo a própria Microsoft — é necessário garantir NoWarningNoElevationOnInstall e UpdatePromptSettings em 0, e considerar aplicar RestrictDriverInstallationToAdministrators (documentado em KB5005010) para restringir instalação de driver a administradores.

How to detect

Monitorar chamadas RPC para RpcAddPrinterDriverEx() e RpcAsyncAddPrinterDriver() sobre SMB (portas 139/445) e RPC Endpoint Mapper (porta 135) direcionadas ao Print Spooler, especialmente instalações de driver originadas de compartilhamentos de rede não usuais ou controlados por usuários comuns. No host, procurar spoolsv.exe carregando DLLs de caminhos de rede ou de diretórios temporários, criação de arquivos em %SystemRoot%\System32\spool\drivers\ fora do processo normal de administração, e o Spooler gerando processos filhos inesperados (cmd.exe, powershell.exe) como SYSTEM. Crashes ou reinícios inesperados do serviço Spooler em torno de operações de instalação de driver também são indicativo de tentativa de exploração — não há assinatura de rede única e confiável, dado que o tráfego RPC/SMB de instalação de driver legítima é praticamente idêntico ao malicioso sem inspeção de payload.

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 Print Spooler Remote Code Execution Vulnerability
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
public PoCs found82
githubgithub.com/cube0x0/CVE-2021-16751990githubgithub.com/calebstewart/CVE-2021-16751100githubgithub.com/hlldz/CVE-2021-1675-LPE325githubgithub.com/LaresLLC/CVE-2021-1675214githubgithub.com/ly4k/PrintNightmare209githubgithub.com/mstxq17/CVE-2021-1675_RDL_LPE145githubgithub.com/sailay1996/PrintNightmare-LPE77githubgithub.com/evilashz/CVE-2021-1675-LPE-EXP56githubgithub.com/cybersecurityworks553/CVE-2021-1675_PrintNightMare23githubgithub.com/JumpsecLabs/PrintNightmare19githubgithub.com/eversinc33/NimNightmare18githubgithub.com/k8gege/cve-2021-167515githubgithub.com/Wra7h/SharpPN10githubgithub.com/Leonidus0x10/CVE-2021-1675-SCANNER9githubgithub.com/corelight/CVE-2021-16759githubgithub.com/exploitblizzard/PrintNightmare-CVE-2021-16755githubgithub.com/thomasgeens/CVE-2021-16753githubgithub.com/hahaleyile/my-CVE-2021-16753githubgithub.com/yu2u/CVE-2021-16752githubgithub.com/killtr0/CVE-2021-1675-PrintNightmare2githubgithub.com/ozergoker/PrintNightmare2githubgithub.com/bartimusprimed/CVE-2021-1675-Yara2githubgithub.com/kondah/patch-cve-2021-16752githubgithub.com/DLL00P/CVE-2021-16751githubgithub.com/puckiestyle/CVE-2021-16751githubgithub.com/OppressionBreedsResistance/CVE-2021-1675-PrintNightmare1githubgithub.com/peckre/PNCVE-Win10-20H2-Exploit1githubgithub.com/Winter3un/CVE-2021-16751githubgithub.com/whoami-chmod777/CVE-2021-1675-CVE-2021-345271githubgithub.com/initconf/cve-2021-1675-printnightmare0githubgithub.com/tanarchytan/CVE-2021-16750githubgithub.com/mrezqi/CVE-2021-1675_CarbonBlack_HuntingQuery0githubgithub.com/kougyokugentou/CVE-2021-16750githubgithub.com/ptter23/CVE-2021-16750githubgithub.com/edsonjt81/CVE-2021-16750githubgithub.com/galoget/PrintNightmare-CVE-2021-1675-CVE-2021-345270githubgithub.com/thalpius/microsoft-cve-2021-16750githubgithub.com/zha0/Microsoft-CVE-2021-16750githubgithub.com/r1skkam/PrintNightmare0githubgithub.com/000Tonio/cve-2021-16750githubgithub.com/CameraShutterBug/PrintNightmare0githubgithub.com/ccordeiro/CVE-2021-16750githubgithub.com/whoami-chmod777/CVE-2021-1675---PrintNightmare-LPE-PowerShell-0githubgithub.com/0xSs0rZ/Windows_Exploit0githubgithub.com/Sp4ceDogy/NPE-CS-V-CVE-2021-16750vulncheckvulncheck.com/xdb/35c8e00c7814unverifiedvulncheckvulncheck.com/xdb/3367f5a15c3eunverifiedcve_referencepacketstormsecurity.com/files/163351/PrintNightmare-Windows-Spooler-Service-Remote-Code-Execution.htmlunverifiedvulncheckvulncheck.com/xdb/b93501b21b35unverifiedvulncheckvulncheck.com/xdb/ea76e3b517daunverifiedvulncheckvulncheck.com/xdb/22ddb70101f9unverifiedvulncheckvulncheck.com/xdb/7cc2f4d6f2d5unverifiedvulncheckvulncheck.com/xdb/490a73431a10unverifiedvulncheckvulncheck.com/xdb/29f9009b9be9unverifiedvulncheckvulncheck.com/xdb/d01d428e5b4cunverifiedvulncheckvulncheck.com/xdb/3d814c23dd9dunverifiedvulncheckvulncheck.com/xdb/ded60e94a061unverifiedvulncheckvulncheck.com/xdb/a272e3e91f3aunverifiedvulncheckvulncheck.com/xdb/613d6b9bd25funverifiedvulncheckvulncheck.com/xdb/60402fe4962cunverifiedvulncheckvulncheck.com/xdb/a3f29455981bunverifiedvulncheckvulncheck.com/xdb/ddf90bbea093unverifiedvulncheckvulncheck.com/xdb/dcea18151317unverifiedvulncheckvulncheck.com/xdb/0c06ba53c498unverifiedvulncheckvulncheck.com/xdb/b90c284dc523unverifiedvulncheckvulncheck.com/xdb/462712fb0096unverifiedvulncheckvulncheck.com/xdb/0d51bca37337unverifiedvulncheckvulncheck.com/xdb/a45b8faa5940unverifiedvulncheckvulncheck.com/xdb/0300146c83c2unverifiedvulncheckvulncheck.com/xdb/da0d5a88e5dbunverifiedvulncheckvulncheck.com/xdb/97af0436c96dunverifiedvulncheckvulncheck.com/xdb/132e026d2027unverifiedvulncheckvulncheck.com/xdb/debfb4d8ee62unverifiedvulncheckvulncheck.com/xdb/381c98d00dfcunverifiedvulncheckvulncheck.com/xdb/6365096d731bunverifiedvulncheckvulncheck.com/xdb/a80f7a9e25f2unverifiedvulncheckvulncheck.com/xdb/ffee1c151af9unverifiedcve_referencepacketstormsecurity.com/files/163349/Microsoft-PrintNightmare-Proof-Of-Concept.htmlunverifiedcve_referencepacketstormsecurity.com/files/167261/Print-Spooler-Remote-DLL-Injection.htmlunverifiedvulncheckvulncheck.com/xdb/5761c571065dunverifiedvulncheckvulncheck.com/xdb/fd141cadfdd9unverifiedvulncheckvulncheck.com/xdb/b2ee9973a014unverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.