CVE-2024-38077: Exécution de code à distance dans le service de licence Bureau à distance Windows ("MadLicense")
I. Présentation de la vulnérabilité
Identifiant CVE: CVE-2024-38077
Alias: MadLicense
Score CVSS: 9.8 (Critique)
Type: Dépassement de tampon basé sur le tas (CWE-122)
Découvert par: Ver, Lewis Lee, Zhiniang Peng
Description: Une vulnérabilité d'exécution de code à distance sans authentification préalable et sans interaction utilisateur dans le service de licence Bureau à distance Windows (RDL). Un attaquant non authentifié peut envoyer un paquet RPC spécialement conçu au point de terminaison RPC over TCP exposé par mstlsap.dll / tlslicense.dll, déclenchant un dépassement de tampon basé sur le tas qui conduit à une exécution de code arbitraire dans le contexte de SYSTEM.
II. Détails techniques
Le service de licence Bureau à distance écoute sur des points de terminaison RPC dynamiques (généralement les ports 49664–49681) accessibles via le port TCP 135 (mappeur de points de terminaison RPC). La vulnérabilité réside dans le gestionnaire d'interface RPC LicensingSendResponse ou un gestionnaire associé, au sein de la gestion de la mémoire du tas du service de licence. En envoyant une requête de protocole de licence spécialement conçue avec une structure LicensingBinary surdimensionnée ou malformée, le service effectue un memcpy non sécurisé dans un tampon de tas de taille insuffisante, corrompant les métadonnées adjacentes du tas et permettant l'exécution de code.
Points clés :
Pré-authentification: aucune information d'identification valide ni session RDP requise.
0-clic: aucune interaction de l'utilisateur sur la cible.
Vecteur réseau: exploitée à distance via le réseau.
Impact: compromission totale au niveau SYSTEM du serveur Windows cible.
III. Versions affectées
Produit
Impact
Windows Server 2008 R2 (toutes les éditions)
RCE
Windows Server 2012 / 2012 R2
RCE
Windows Server 2016
RCE
Windows Server 2019
RCE
Windows Server 2022
RCE
Windows Server 2025
RCE
Les versions antérieures (Windows 2000 Server, Server 2003, Server 2008) peuvent également être concernées si le service RDL est activé.
IV. Configuration de l'environnement
Installez une version prise en charge de Windows Server (2008–2025) dans une machine virtuelle.
Assurez-vous que le rôle Services de licence Bureau à distance est installé via le Gestionnaire de serveur :
Ajouter des rôles et fonctionnalités → Services Bureau à distance → Services de licence Bureau à distance
Démarrez/vérifiez le service :
net start "Remote Desktop Licensing"
Confirmez que le service écoute :
netstat -an | findstr LISTENING
Le service RDL enregistre des points de terminaison RPC dynamiques. Interrogez le port 135 avec un outil de mappage de points de terminaison RPC.
Isolez la VM cible des réseaux de production — le PoC déclenchera un crash par défaut.
V. Étapes de reproduction
Exécutez le script PoC contre un serveur Windows cible avec le service RDL exposé :
root@kitploit:~
python exploit.py --target <TARGET_IP>
Sur la cible, surveillez un crash du service tlslicense.dll ou un crash système (BSOD selon la gravité de la corruption du tas).
Pour vérifier le dépassement, attachez un débogueur (WinDbg) au processus svchost.exe hébergeant le service RDL avant de déclencher l'exploit et observez la violation d'accès.
VI. Code PoC
Le script exploit.py accompagnant ce répertoire contient une reproduction de l'attaque MadLicense. Il se connecte au service RDL cible via RPC sur TCP, construit une requête de licence malformée avec un blob binaire surdimensionné et déclenche le dépassement de tampon basé sur le tas.
VII. Atténuation
Correctif: installez la mise à jour de sécurité officielle du Patch Tuesday de juillet 2024 de Microsoft (KB5040426 / KB5040430 / KB5040434 / KB5040437 selon la version de Windows).
Contournement:
Désactivez le service de licence Bureau à distance s'il n'est pas requis :