Vulnerabilidad sobre el servicio “Print Spooler” de Microsoft Windows

Detalles técnicos
Productos afectados:
- Microsoft Windows 10
- Microsoft Windows Server 2008 SP2 / 2008 R2 SP1
- Microsoft Windows Server 2012 / 2012 R2
- Microsoft Windows Server 2016
- Microsoft Windows Server 2019
Las vulnerabilidades afectan la función “RpcAddPrinterDriverEx()” en el servicio Windows Print Spooler, servicio que se encuentra activado por defecto en las versiones de Windows antes mencionadas.
La vulnerabilidad CVE-2021-1675 puede permitir alojar un controlador manipulado en el directorio local del equipo afectado vía SMB (Server Message Block). La función RpcAddPrinterDriver realiza la carga del controlador con privilegios de SYSTEM, lo que permite la ejecución del código arbitrario ensamblado el archivo DLL del controlador con estos permisos. El código ensamblado en el DLL es ejecutado por cualquieraque se autentique en el servicio de Print Spooler.
La otra vulnerabilidad identificada, a la que se le asignó el identificador CVE-2021-34527, presenta una variante en el vector de ataque. Ambas vulnerabilidades son asociadas al nombre “PrintNightmare”, con el que la comunidad técnica las referencia.
Para las dos vulnerabilidades, existen múltiples explotaciones y pruebas de concepto publicadas en Internet.
Remediación
Para la vulnerabilidad CVE-2021-1675 Microsoft liberó un parche de seguridad junto con los de junio. Recomendamos aplicarlos cuanto antes.
Respecto a la vulnerabilidad CVE-2021-34527, hasta el momento Microsoft no ha publicado una actualización de seguridad, por lo que se recomienda seguir las mitigaciones sugeridas por el fabricante en aquellos controladores de dominio y sistemas que no requieren realizar impresiones.
Microsoft cuenta con una guía de mejores prácticas respecto al servicio de Print Spooler para los controladores de dominio, donde recomienda que este servicio sea deshabilitado mediante Políticas de Grupo (GPO).
Mitigación
Microsoft publicó algunos workarounds para mitigar temporalmente los riegos asociados:
- Deshabilitar el servicio de Print Spooler.
Esto previene que el equipo sobre el cual se aplique la medida pierda la posibilidad de imprimir, tanto localmente como de forma remota.
- Deshabilitar las impresiones remotas entrantes con una Política de Grupo.
El equipo dejará de funcionar como estación de impresión remota, aunque si se podrá enviar a imprimir de manera local a una impresora conectada directamente al mismo.
Acorde con los pasos definidos por Microsoft, esto puede realizarse con los siguientes comandos de PowerShell:
- Stop-Service -Name Spooler -Force
- Set-Service -Name Spooler -StartupType Disabled
Recomendaciones
Microsoft liberó parches que contemplan la vulnerabilidad CVE-2021-1675, sin embargo, existen reportes de explotación del servicio luego de haberlos aplicado. Aun así, recomendamos aplicarlos lo antes posible.
Acceder a los parches de seguridad de Junio
Como aún no hay parches para la vulnerabilidad CVE-2021-34527, recomendamos seguir las mitigaciones temporales provistas por Microsoft, mediante las cuales es posible atenuar ambas vulnerabilidades.
Detección
Si hubo intentos de explotación, es posible detectarlos ejecutando el siguiente código en PowerShell:
Get-WinEvent -LogName 'Microsoft-Windows-PrintService/Admin' | Select-String -InputObject {$_.message} -Pattern 'The print spooler failed to load a plug-in module'
Referencias
Windows Print Spooler Remote Code Execution Vulnerability CVE-2021-1675
Windows Print Spooler Remote Code Execution Vulnerability – CVE-2021-34527