CVE-2019-18935
📋 TL;DR
CVE-2019-18935 is a .NET deserialization vulnerability in Progress Telerik UI for ASP.NET AJAX's RadAsyncUpload function that allows remote code execution when encryption keys are known. This affects organizations using vulnerable versions of Telerik UI for ASP.NET AJAX with the RadAsyncUpload component enabled. Attackers can exploit this to execute arbitrary code on affected servers.
💻 Affected Systems
- Progress Telerik UI for ASP.NET AJAX
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Full system compromise with attacker gaining complete control over the server, data exfiltration, lateral movement, and persistent backdoor installation.
Likely Case
Remote code execution leading to web shell deployment, credential theft, and data manipulation.
If Mitigated
No impact if proper patching and configuration hardening are implemented.
🎯 Exploit Status
Multiple public exploit tools and scripts available. Exploitation requires knowledge of encryption keys, which can be obtained through other vulnerabilities like CVE-2017-11317 or CVE-2017-11357, or brute-forced.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 2020.1.114 and later
Vendor Advisory: https://www.telerik.com/support/whats-new/aspnet-ajax/release-history/ui-for-asp-net-ajax-r3-2020-(version-2020-3-915)
Restart Required: Yes
Instructions:
1. Upgrade to Telerik UI for ASP.NET AJAX version 2020.1.114 or later. 2. Apply the update to all affected servers. 3. Restart IIS/application pools. 4. Verify the patch is applied correctly.
🔧 Temporary Workarounds
Disable RadAsyncUpload
allRemove or disable the RadAsyncUpload component if not required
Remove RadAsyncUpload controls from web applications
Disable in web.config if configured
Apply non-default secure setting (2019.3.1023 only)
windowsEnable the non-default setting that prevents exploitation in version 2019.3.1023
Set Telerik.Web.UI.AsyncUploadConfiguration.EncryptionKey to a strong random value
Configure AsyncUploadSettings.MaxFileSize to restrict uploads
🧯 If You Can't Patch
- Implement strict network segmentation and firewall rules to limit access to affected systems
- Deploy web application firewall (WAF) with rules to block deserialization attacks and suspicious upload patterns
🔍 How to Verify
Check if Vulnerable:
Check Telerik UI version in web.config or assembly files. Look for RadAsyncUpload usage in web applications.
Check Version:
Check web.config for Telerik version or examine Telerik.Web.UI.dll file properties
Verify Fix Applied:
Verify version is 2020.1.114 or later. Test RadAsyncUpload functionality with security scanning tools.
📡 Detection & Monitoring
Log Indicators:
- Unusual file upload patterns to RadAsyncUpload handlers
- Errors in Telerik deserialization logs
- Suspicious POST requests to Telerik handlers
Network Indicators:
- HTTP POST requests to /Telerik.Web.UI.WebResource.axd with serialized data
- Unusual outbound connections from web servers post-upload
SIEM Query:
source="web_server" AND (uri="*WebResource.axd*" OR uri="*RadAsyncUpload*" OR user_agent="*Telerik*") AND (method="POST" AND size>100000)
🔗 References
- http://packetstormsecurity.com/files/155720/Telerik-UI-Remote-Code-Execution.html
- http://packetstormsecurity.com/files/159653/Telerik-UI-ASP.NET-AJAX-RadAsyncUpload-Deserialization.html
- https://codewhitesec.blogspot.com/2019/02/telerik-revisited.html
- https://github.com/bao7uo/RAU_crypto
- https://github.com/noperator/CVE-2019-18935
- https://know.bishopfox.com/research/cve-2019-18935-remote-code-execution-in-telerik-ui
- https://www.bleepingcomputer.com/news/security/us-federal-agency-hacked-using-old-telerik-bug-to-steal-data/
- https://www.telerik.com/support/kb/aspnet-ajax/details/allows-javascriptserializer-deserialization
- https://www.telerik.com/support/whats-new/aspnet-ajax/release-history/ui-for-asp-net-ajax-r1-2020-%28version-2020-1-114%29
- https://www.telerik.com/support/whats-new/release-history
- http://packetstormsecurity.com/files/155720/Telerik-UI-Remote-Code-Execution.html
- http://packetstormsecurity.com/files/159653/Telerik-UI-ASP.NET-AJAX-RadAsyncUpload-Deserialization.html
- https://codewhitesec.blogspot.com/2019/02/telerik-revisited.html
- https://github.com/bao7uo/RAU_crypto
- https://github.com/noperator/CVE-2019-18935
- https://know.bishopfox.com/research/cve-2019-18935-remote-code-execution-in-telerik-ui
- https://www.bleepingcomputer.com/news/security/us-federal-agency-hacked-using-old-telerik-bug-to-steal-data/
- https://www.telerik.com/support/kb/aspnet-ajax/details/allows-javascriptserializer-deserialization
- https://www.telerik.com/support/whats-new/aspnet-ajax/release-history/ui-for-asp-net-ajax-r1-2020-%28version-2020-1-114%29
- https://www.telerik.com/support/whats-new/release-history
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2019-18935