********** KNOWLEDGE BASE ARTICLE PREVIEW **********

Customers Only - Do not share publicly before CVEs are published on July 22, 2026

 

Description

[Critical Security Bulletin] [July 2026]   CVE-2026-13181, CVE-2026-13182, CVE-2026-13183, CVE-2026-13184, CVE-2026-13185, CVE-2026-13186, CVE-2026-13190

 

        Progress Telerik UI for AJAX 2026 Q2 (2026.2.519) or earlier.

 

Multiple high security vulnerabilities have been confirmed in Telerik UI for ASP.NET AJAX affecting the RadAsyncUploadRadPersistenceManager, and RadDockLayout components. When chained together, these vulnerabilities can allow an unauthenticated remote attacker to achieve Remote Code Execution (RCE) on the server hosting the application. This article describes the combined attack chain, its impact, and the actions required to remediate or mitigate the risk.

 

What Are the Symptoms?

There are no visible symptoms. These vulnerabilities can be exploited silently without causing application errors visible to the application owner. Successful exploitation leaves no obvious trace in standard ASP.NET error logs.

 

What Are the Impacts?

An unauthenticated remote attacker who successfully exploits this vulnerability chain can execute arbitrary code on the web server with the privileges of the application pool identity. This may result in full server compromise, data exfiltration, or further lateral movement within the hosting environment.

 

Affects

Component 

Affected Version 

Fixed Version 

RadAsyncUpload 

>= 2010.1.309 && <= 2026.2.519 

>= 2026.2.708 (2026 Q2 SP1) 

RadPersistenceManager 

>= 2013.1.220 && <= 2026.2.519 

>= 2026.2.708 (2026 Q2 SP1) 

RadDockLayout 

>= 2013.1.220 && <= 2026.2.519 

>= 2026.2.708 (2026 Q2 SP1) 

 

Our only official recommendation is to upgrade to the patched release following the Upgrade to a Newer Version documentation. If you cannot upgrade immediately, visit the Mitigation section for temporary mitigation options.

If you have any questions or concerns related to this issue, please log in to open a new Technical Support case. If your version is no longer supported as part of the Telerik UI for ASP.NET AJAX Release History, you should upgrade to a supported and fixed version.

 

Issue

 

In Progress Telerik UI for ASP.NET AJAX before version 2026.2.708 (2026 Q2 SP1), multiple vulnerabilities in RadAsyncUploadRadPersistenceManager, and RadDockLayout can be combined by an unauthenticated remote attacker to achieve Remote Code Execution on the server.

 

Solution

We have addressed the vulnerabilities and the Progress Telerik team strongly recommends performing an upgrade to the latest version listed in the table above.

For all customers on a current maintenance agreement, the upgrade can be accessed by logging into the Product Downloads | Your Account. Customers that are not on a current maintenance agreement should contact a Progress account representative.

To confirm your current version of Telerik UI for ASP.NET AJAX, open your project in Visual Studio and check the version of Telerik.Web.UI.dll in the References, or see How to determine which version of Telerik UI for ASP.NET AJAX you are using.

 

Mitigation

If you cannot upgrade immediately, apply all applicable mitigations from the checklist below.

 

# 

Check 

Applies to 

customErrors is RemoteOnly or On in Web.config 

All apps with RadAsyncUpload 

Carefully review any use of  

Telerik.AsyncUpload.ConfigurationEncryptionKey  

Telerik.Upload.ConfigurationHashKey or  

Telerik.Web.UI.DialogParametersEncryptionKey 

All apps with RadAsyncUpload 

RadPersistenceManager does not use CookieStateStorageProvider; RadDockLayout.LayoutPersistenceRepositoryType is not Cookies 

Apps using PersistenceFramework 

StorageProviderKey is not derived from Request data 

Apps using AppDataStorageProvider 

Telerik.AsyncUpload.TemporaryFolder points outside App_Data (defense-in-depth) 

Apps with both RadAsyncUpload and RadPersistenceManager 

 

Important  This is intended as a temporary stopgap until you can update the application to use the new release, do not rely on mitigation as a long-term strategy.

 

Mitigation 1 - Set customErrors to RemoteOnly or On

 

<system.web>

  <customErrors mode="RemoteOnly" />

</system.web>

 

Mitigation 2- Custom Keys in Web.config

 

The  RELEVANT_KEY  references below refers to any of Telerik.AsyncUpload.ConfigurationEncryptionKey, Telerik.Upload.ConfigurationHashKey, or Telerik.Web.UI.DialogParametersEncryptionKey in web.config.

 

Using v2026.2.514 and earlier:

        Vulnerable Scenario 1 - If you are using a RELEVANT_KEYin web.config

1.      Remove RELEVANT_KEY from web.config, to fall back on MachineKey.Unprotect with AES + HMAC

2.      Continue to Instructions - Generating Strong Machine Keys section

        Vulnerable Scenario 2 - If you are not using RELEVANT_KEY

1.      Continue to Instructions - Generating Strong Machine Keys section

 

Using v2026.2.708 and later:

        Option 1 - You can use RELEVANT_KEY again, it provides stronger protection than machineKey, via AES-GCM

        Option 2 - Remove RELEVANT_KEY to use machineKey, while not as strong as GCM, it is useful for webfarm environments, and you can use the "autogenerate keys at runtime" again.

 

Instructions - Generating Strong Machine Keys

 

AES + HMAC support and framework-managed key material via machine key config. even a strong custom key will not prevent padding oracle attacks. Critical - You must manually generate the keys in IIS, using the Autogenerate creates the same HMAC guard collapse as #1

 

1.      Open IIS > select your site > select Machine Key

2.      Validation method: choose HMACSHA256

3.      Automatically generate at runtime checkboxes: uncheck both (very important!) 

4.      In the right pane, click Generate Keys

5.      In the right pane, click Apply

6.      In the left pane, select Application Pools and recycle the relevant App Pool (very important)

 

See Mandatory web.config settings for requirements and key generation guidance.

 

Mitigation 2.5 Disable the upload handler if not in use

 

<appSettings>

  <add key="Telerik.Web.DisableAsyncUploadHandler" value="true" />

</appSettings>

 

Mitigation 3 - Do not use cookie-based persistence storage

 

For RadPersistenceManager - remove any CookieStateStorageProvider configuration. The default AppDataStorageProvider is safe:

 

// Page_Init

PersistenceManager1.StorageProvider =

    new AppDataStorageProvider(Server.MapPath("~/App_Data/PersistenceState/"));

 

For RadDockLayout - ensure LayoutPersistenceRepositoryType is not Cookies:

 

RadDockLayout1.LayoutPersistenceRepositoryType =

    DockLayoutPersistenceRepository.FileSystem;

 

Mitigation 4 - Do not derive StorageProviderKey from user input

 

// UNSAFE - never do this

// PersistenceManager1.StorageProviderKey = Request.QueryString["userId"];

 

// Safe - hardcoded key

PersistenceManager1.StorageProviderKey = "my-app-persistence-state";

The default key (TelerikAspNetRadControlsPersistedState) is safe if you have not overridden it.

 

Mitigation 5 - Move RadAsyncUpload temp folder outside App_Data (defense-in-depth)

 

<appSettings>

  <add key="Telerik.AsyncUpload.TemporaryFolder" value="~/UploadTemp" />

</appSettings>

 

Create the folder manually and grant write permissions to the application pool identity. This is defense-in-depth only - always apply Mitigation 4 first.

 

Notes

        If you have any questions or concerns related to this issue, open a new Technical Support case in Your Account | Support Center. Technical Support is available to customers with an active support plan.

        We would like to thank TantoSec (Marcio Almeida, Justin Steven) and CODE WHITE GmbH (Markus Wulftange) for responsibly disclosing these vulnerabilities and assisting in their resolution.