RDG Gets Fooled by UDP

Security researchers have found that the implementation in Remote Desktop Gateway of string segmentation lays it open to memory corruption vulnerabilities.

Larry Loeb, Blogger, Informationweek

January 28, 2020

2 Min Read

Remote Desktop Gateway (RDG) (which has also been called Terminal Services Gateway) is a Windows Server component that provides address routing for Remote Desktop (RDP). Users connect and authenticate to the gateway instead of directly to an RDP server. RDG will forward remote RDP traffic to an address that is specified by the user. The idea here is that the exposed-to-the-Internet RDG provides much less of an attack surface than the RDP server itself.

But security researchers have found that the implementation in RDG of string segmentation lays it open to memory corruption vulnerabilities. This means that a remote, unauthenticated attacker can execute arbitrary code by sending specially crafted requests that will invoke segmentation in a particular way.

The vulnerabilities affect Windows Server 2012, 2016 and 2019. MSFT has since patched them, but -- as always -- the patches may not end up universally applied.

Marcus Hutchins took a look at the evolving situation from a technical standpoint in the Kryptos Logic blog.

While RDG supports three different protocols (HTTP, HTTPS, and UDP), he saw that only one protocol had been changed by the MSFT patches. It was UDP, and CVE-2020-0609 was involved.

The RDG UDP protocol is there to allow for large messages to be split across multiple separate UDP packets. They have to be reassembled when they arrive at the target, since they may arrive out of order. It's in the re-assembler that RDG can get fooled and where the vulnerability lives.

Hutchins says: "This vulnerability is much more flexible than a typical linear heap overflow. It allows us to not only control the size of the data written, but the offset to where it's written. With the extra control, it's easier to do more precise writes, avoiding unnecessarily data corruption."

A rifle, not a cannon then.

Combined with the handling of arrays in the packet handler (CVE-2020-0610), an attacker will find fertile ground for exploits in the unpatched server.

Hutchins decided to help the vulnerable by developing and publishing the source code for an RDG scanner. This open-sourced scanner will look for vulnerable RDG gateways on a network and report back.

Mitigating the threat of an unpatched server can be simpler and more direct than might be apparent. Since only UDP is involved in both of the vulnerabilities, stopping the UDP traffic by disabling it should stop the vulnerability's effect as well.

Alternatively, firewalling the UDP port (usually port 3391) may serve the same mitigation function.

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Read more about:

Security Now

About the Author(s)

Larry Loeb

Blogger, Informationweek

Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek. He has written a book on the Secure Electronic Transaction Internet protocol. His latest book has the commercially obligatory title of Hack Proofing XML. He's been online since uucp "bang" addressing (where the world existed relative to !decvax), serving as editor of the Macintosh Exchange on BIX and the VARBusiness Exchange. His first Mac had 128 KB of memory, which was a big step up from his first 1130, which had 4 KB, as did his first 1401. You can e-mail him at [email protected].

Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.

You May Also Like


More Insights