Loading HuntDB...

Remote Code Execution via Insecure Deserialization in Telerik UI

Critical
U
U.S. Dept Of Defense
Submitted None
Reported by sw33tlie

Vulnerability Details

Technical details and impact analysis

Deserialization of Untrusted Data
Hello, I found an outdated version of Telerik Web UI (v2016.2.607.40) at the following URL: https://███/Telerik.Web.UI.WebResource.axd?type=rau. This means that we can achieve full RCE by chaining two different CVEs: CVE-2017-11317, which allows us to upload arbitrary files on the server, and CVE-2019-18935, which is a deserialization vulnerability. First of all, the only thing that I tried to prove that I had successfully achieved code execution was making the server sleep for 10 seconds. No data was compromised. Steps to reproduce --------------------- The steps that I followed are thoroughly described in this blog post: <https://know.bishopfox.com/research/cve-2019-18935-remote-code-execution-in-telerik-ui>. Here's a quick summary: - Download the files in the attachments - Make sure you have pycryptodome installed (pip3 install pycryptodome) - Run the following command: `python3 CVE-2019-18935.py -u https://█████/Telerik.Web.UI.WebResource.axd?type=rau -v 2016.2.607.40 -f 'C:\Windows\Temp' -p sleep_042020163752,45_amd64.dll` - The `sleep_042020160430,40_amd64.dll` is supposed to Sleep(10). This will make the server hang for roughly ten seconds, and after that you will get a response like this one: `[*] Response time: 12.88 seconds` - The exploit worked. Things to note --------------------- I had to edit the original exploit code provided in the aforementioned blog post (https://github.com/noperator/CVE-2019-18935) because I noticed that when uploading the .dll file the server added a .tmp at the end of the file name. That's why the original code was failing to exploit the deserialization part. I added `+ '.tmp'` at the end of line 95 and after that it worked just fine. A DLL file can only work once. This means that to test the vulnerability again a new DLL has to be compiled. For this reason I provided several DLLs in the attachments so you don't have to compile them (especially because a windows machine with Visual Studio installed is required). I didn't upload a reverse shell because I thought it was not a great idea, but if needed I could do it. How to fix --------------------- Just upgrade Telerik for ASP.NET AJAX to R3 2019 SP1 (v2019.3.1023) or later. ## Impact Full **Remote Code Execution** on the vulnerable server.

Related CVEs

Associated Common Vulnerabilities and Exposures

Progress Telerik UI for ASP.NET AJAX through 2019.3.1023 contains a .NET deserialization vulnerability in the RadAsyncUpload function. This is exploitable when the encryption keys are known due to the presence of CVE-2017-11317 or CVE-2017-11357, or other means. Exploitation can result in remote code execution. (As of 2020.1.114, a default setting …

Telerik.Web.UI in Progress Telerik UI for ASP.NET AJAX before R1 2017 and R2 before R2 2017 SP2 uses weak RadAsyncUpload encryption, which allows remote attackers to perform arbitrary file uploads or execute arbitrary code.

Report Details

Additional information and metadata

State

Closed

Substate

Resolved

Submitted

Weakness

Deserialization of Untrusted Data