CVE-2024-38077: Esecuzione di codice in remoto nel servizio Windows Remote Desktop Licensing ("MadLicense")
I. Panoramica della vulnerabilità
CVE ID: CVE-2024-38077
Alias: MadLicense
Punteggio CVSS: 9.8 (Critico)
Tipo: Buffer overflow basato su heap (CWE-122)
Scoperto da: Ver, Lewis Lee, Zhiniang Peng
Descrizione: Una vulnerabilità di esecuzione di codice in remoto pre-autenticazione e zero-click nel servizio Windows Remote Desktop Licensing (RDL). Un attaccante non autenticato può inviare un pacchetto RPC appositamente modificato all'endpoint RPC over TCP esposto da mstlsap.dll / tlslicense.dll, attivando un buffer overflow basato su heap che porta all'esecuzione di codice arbitrario nel contesto di SYSTEM.
II. Dettagli tecnici
Il servizio Remote Desktop Licensing è in ascolto su endpoint RPC dinamici (in genere porte 49664–49681) raggiungibili tramite la porta TCP 135 (RPC Endpoint Mapper). La vulnerabilità risiede nel gestore dell'interfaccia RPC LicensingSendResponse o correlato, all'interno della gestione della memoria heap del servizio di licenza. Inviando una richiesta di protocollo di licenza appositamente modificata con una struttura LicensingBinary troppo grande o malformata, il servizio esegue una memcpy non sicura in un buffer heap di dimensioni insufficienti, corrompendo i metadati heap adiacenti e consentendo l'esecuzione di codice.
Aspetti chiave:
Pre-autenticazione: Non sono richieste credenziali valide o sessioni RDP.
Zero-click: Nessuna interazione utente sul target.
Vettore di rete: Sfruttabile da remoto tramite la rete.
Impatto: Compromissione completa del Windows Server target a livello di SYSTEM.
III. Versioni interessate
Prodotto
Impatto
Windows Server 2008 R2 (tutte le edizioni)
RCE
Windows Server 2012 / 2012 R2
RCE
Windows Server 2016
RCE
Windows Server 2019
RCE
Windows Server 2022
RCE
Windows Server 2025
RCE
Le versioni precedenti (Windows 2000 Server, Server 2003, Server 2008) potrebbero essere interessate se il servizio RDL è abilitato.
IV. Configurazione dell'ambiente
Installare una versione supportata di Windows Server (2008–2025) in una macchina virtuale.
Assicurarsi che il ruolo Remote Desktop Licensing sia installato tramite Server Manager:
Il servizio RDL registra endpoint RPC dinamici. Interrogare la porta 135 con uno strumento di RPC endpoint mapper.
Isolare la VM target dalle reti di produzione — il PoC causerà un crash per impostazione predefinita.
V. Passaggi per la riproduzione
Eseguire lo script PoC contro un Windows Server target con il servizio RDL esposto:
root@kitploit:~
python exploit.py --target <TARGET_IP>
Sul target, monitorare un crash del servizio tlslicense.dll o un crash di sistema (BSOD a seconda della gravità della corruzione dell'heap).
Per verificare l'overflow, collegare un debugger (WinDbg) al processo svchost.exe che ospita il servizio RDL prima di attivare l'exploit e osservare l'access violation.
VI. Codice PoC
Lo script exploit.py incluso in questa directory contiene una riproduzione dell'attacco MadLicense. Si connette al servizio RDL target tramite RPC su TCP, costruisce una richiesta di licenza malformata con un blob binario di dimensioni eccessive e attiva il buffer overflow basato su heap.
VII. Mitigazione
Patch: Installare l'aggiornamento di sicurezza ufficiale dal Patch Tuesday di Microsoft di luglio 2024 (KB5040426 / KB5040430 / KB5040434 / KB5040437 a seconda della versione di Windows).
Soluzione alternativa:
Disabilitare il servizio Remote Desktop Licensing se non necessario: