CVE-2024-38077: Execução Remota de Código no Serviço de Licenciamento da Área de Trabalho Remota do Windows ("MadLicense")
I. Visão Geral da Vulnerabilidade
- CVE ID: CVE-2024-38077
- Alias: MadLicense
- Pontuação CVSS: 9.8 (Crítico)
- Tipo: Estouro de Buffer Baseado em Heap (CWE-122)
- Descoberto por: Ver, Lewis Lee, Zhiniang Peng
- Descrição: Uma vulnerabilidade de execução remota de código pré-autenticação e zero-click no serviço de Licenciamento da Área de Trabalho Remota (RDL) do Windows. Um atacante não autenticado pode enviar um pacote RPC especialmente elaborado para o endpoint
RPC over TCP exposto por mstlsap.dll / tlslicense.dll, acionando um estouro de buffer baseado em heap que leva à execução arbitrária de código no contexto de SYSTEM.
II. Detalhes Técnicos
O Serviço de Licenciamento da Área de Trabalho Remota escuta em endpoints RPC dinâmicos (normalmente portas 49664–49681) acessíveis via porta TCP 135 (RPC Endpoint Mapper). A vulnerabilidade reside no LicensingSendResponse ou no manipulador de interface RPC relacionado, dentro do gerenciamento de memória heap do serviço de licenciamento. Ao enviar uma solicitação de protocolo de licenciamento especialmente elaborada com uma estrutura LicensingBinary excessivamente grande ou malformada, o serviço executa um memcpy inseguro para um buffer de heap de tamanho insuficiente, corrompendo os metadados adjacentes do heap e permitindo a execução de código.
Principais aspectos:
- Pré-autenticação: Nenhuma credencial válida ou sessão RDP é necessária.
- 0-click: Nenhuma interação do usuário no alvo.
- Vetor de rede: Explorado remotamente pela rede.
- Impacto: Comprometimento total do Windows Server alvo no nível de SYSTEM.
III. Versões Afetadas
Versões anteriores (Windows 2000 Server, Server 2003, Server 2008) também podem ser afetadas se o serviço RDL estiver habilitado.
IV. Configuração do Ambiente
- Instale uma versão suportada do Windows Server (2008–2025) em uma máquina virtual.
- Garanta que a função de Licenciamento da Área de Trabalho Remota esteja instalada via Gerenciador do Servidor:
- Adicionar Funções e Recursos → Serviços de Área de Trabalho Remota → Licenciamento de Área de Trabalho Remota
- Inicie/verifique o serviço:
net start "Remote Desktop Licensing"
- Confirme se o serviço está escutando:
netstat -an | findstr LISTENING
- O serviço RDL registra endpoints RPC dinâmicos. Consulte a porta 135 com uma ferramenta de mapeamento de endpoints RPC.
- Isole a VM alvo das redes de produção — o PoC acionará uma falha por padrão.
V. Passos de Reprodução
- Execute o script do PoC contra um Windows Server alvo com o serviço RDL exposto:
python exploit.py --target <TARGET_IP>
- No alvo, monitore uma falha do serviço
tlslicense.dll ou um travamento do sistema (BSOD, dependendo da gravidade da corrupção do heap).
- Para verificar o estouro, anexe um depurador (WinDbg) ao
svchost.exe que hospeda o serviço RDL antes de acionar o exploit e observe a violação de acesso.
VI. Código do PoC
O script exploit.py incluído neste diretório contém uma reprodução do ataque MadLicense. Ele se conecta ao serviço RDL alvo via RPC sobre TCP, constrói uma solicitação de licenciamento malformada com um blob binário de tamanho excessivo e aciona o estouro de buffer baseado em heap.
VII. Mitigação
- Patch: Instale a atualização de segurança oficial do Patch Tuesday de julho de 2024 da Microsoft (KB5040426 / KB5040430 / KB5040434 / KB5040437, dependendo da versão do Windows).
- Solução alternativa:
- Desative o serviço de Licenciamento da Área de Trabalho Remota se não for necessário:
sc stop "Remote Desktop Licensing"
sc config "Remote Desktop Licensing" start= disabled
- Bloqueie as portas RPC dinâmicas de entrada (TCP 49152–65535 / 49664–49681) no firewall, permitindo apenas o tráfego RPC necessário.
- Restrinja o acesso à porta TCP/135 e às portas RPC dinâmicas por meio de segmentação de rede.
VIII. Referências