search menu icon-carat-right cmu-wordmark

CERT Coordination Center

Microsoft Remote Desktop Protocol (RDP) insecurely deallocates memory

Vulnerability Note VU#624051

Original Release Date: 2012-03-16 | Last Revised: 2015-09-17


The Microsoft Remote Desktop Protocol (RDP) service contains a double-free vulnerability that could allow a remote, unauthenticated attacker to execute arbitrary code on a vulnerable system.


The Microsoft Remote Desktop Protocol (RDP) provides a remote graphical interface to Microsoft Windows systems. Microsoft Security Bulletin MS12-020 describes a remote code execution vulnerability in the RDP service. TippingPoint Zero Day Initiative advisory ZDI-12-044 indicates the vulnerability is caused by a double-free condition that occurs when RDP handles an error and aborts a connection.

MS12-020 also describes a denial-of-service vulnerability (CVE-2012-0152).


A remote, unauthenticated attacker could execute arbitrary code with the privileges of the RDP driver, effectively taking complete control of a vulnerable system.


Apply an update

Apply the appropriate updates as described in MS12-020.

Enable Network Level Authentication (NLA)

NLA requires authentication before a remote desktop session is created. This means an attacker would have to successfully authenticate before exploiting the double-free vulnerability. Note that Windows Server 2003 does not support NLA cannot connect to a Remote Desktop service that requires NLA. For more information, see Configure Network Level Authentication for Remote Desktop Services Connections.

Authenticate RDP connections using independent protocols

Use other secure network protocols to authenticate users before allowing RDP connections. Microsoft provides KB articles that describe how to use IPsec to secure RDP connections on Windows 2000 and Windows Server 2003. Many types of VPN can be used to authenticate users, and RDP traffic can be tunneled over SSH if an SSH daemon is installed on the RDP server.

Change RDP listening port

Changing the listening port used by RDP (3389/tcp) will not protect against attacks, but may hide RDP servers from scanning that targets the default port. See How to change the listening port for Remote Desktop.

Restrict access

Restrict RDP server access to trusted hosts and networks.

Vendor Information


Microsoft Corporation Affected

Updated:  March 15, 2012



Vendor Statement

We have not received a statement from the vendor.

Vendor Information

Please see Microsoft Security Bulletin MS12-020.

Vendor References

CVSS Metrics

Group Score Vector
Base 10 AV:N/AC:L/Au:N/C:C/I:C/A:C
Temporal 7.8 E:POC/RL:OF/RC:C
Environmental 5.9 CDP:ND/TD:M/CR:ND/IR:ND/AR:ND



Microsoft credits Luigi Auriemma, via TippingPoint's Zero Day Initiative.

This document was written by Art Manion based on information from MS12-020 and ZDI-12-044.

Other Information

CVE IDs: CVE-2012-0002, CVE-2012-0152
Severity Metric: 12.29
Date Public: 2012-03-13
Date First Published: 2012-03-16
Date Last Updated: 2015-09-17 20:32 UTC
Document Revision: 25

Sponsored by CISA.