Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Network Security

1/28/2020
12:15 PM
Larry Loeb
Larry Loeb
Larry Loeb
50%
50%

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.

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.

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
News
Inside the Ransomware Campaigns Targeting Exchange Servers
Kelly Sheridan, Staff Editor, Dark Reading,  4/2/2021
Commentary
Beyond MITRE ATT&CK: The Case for a New Cyber Kill Chain
Rik Turner, Principal Analyst, Infrastructure Solutions, Omdia,  3/30/2021
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you today!
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2020-24285
PUBLISHED: 2021-04-12
INTELBRAS TELEFONE IP TIP200 version 60.61.75.22 allows an attacker to obtain sensitive information through /cgi-bin/cgiServer.exx.
CVE-2021-29379
PUBLISHED: 2021-04-12
** UNSUPPORTED WHEN ASSIGNED ** An issue was discovered on D-Link DIR-802 A1 devices through 1.00b05. Universal Plug and Play (UPnP) is enabled by default on port 1900. An attacker can perform command injection by injecting a payload into the Search Target (ST) field of the SSDP M-SEARCH discover pa...
CVE-2015-20001
PUBLISHED: 2021-04-11
In the standard library in Rust before 1.2.0, BinaryHeap is not panic-safe. The binary heap is left in an inconsistent state when the comparison of generic elements inside sift_up or sift_down_range panics. This bug leads to a drop of zeroed memory as an arbitrary type, which can result in a memory ...
CVE-2020-36317
PUBLISHED: 2021-04-11
In the standard library in Rust before 1.49.0, String::retain() function has a panic safety problem. It allows creation of a non-UTF-8 Rust string when the provided closure panics. This bug could result in a memory safety violation when other string APIs assume that UTF-8 encoding is used on the sam...
CVE-2020-36318
PUBLISHED: 2021-04-11
In the standard library in Rust before 1.49.0, VecDeque::make_contiguous has a bug that pops the same element more than once under certain condition. This bug could result in a use-after-free or double free.