CVE-2026-2878
Executive Summary
CVE-2026-2878 is an insufficient entropy vulnerability in Progress Telerik UI for AJAX, specifically within the RadAsyncUpload component. The vulnerability allows an attacker to predict temporary file identifiers, which are generated using a weak algorithm based on timestamps and filenames. This predictability can lead to file collisions and content tampering, potentially allowing an attacker to overwrite or manipulate uploaded files. The CVSS score is 5.3 (Medium), and the attack vector is network-based with low complexity and no privileges required. No public proof-of-concept (PoC) or exploit code has been identified at this time.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects a commercial ASP.NET AJAX UI component suite (Telerik UI for AJAX). It is not distributed via open-source package managers like NPM, PyPI, Go, or Ruby. The risk is primarily to organizations using this component in their web applications. The vendor, Progress, has released a patched version (2026.1.225). Organizations should verify their software supply chain to ensure they are using the patched version.
CVSS Breakdown & Threat Level
- CVSS Score: 5.3 (Medium)
- Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely over a network.
- Attack Complexity (AC): Low (L) – No special conditions are required for exploitation.
- Privileges Required (PR): None (N) – No authentication is needed.
- User Interaction (UI): None (N) – No user action is required.
- Scope (S): Unchanged (U) – The impact is confined to the vulnerable component.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): Low (L) – File content can be tampered with.
- Availability (A): None (N) – No denial of service.
Threat Level: Medium. While the CVSS score is moderate, the potential for file tampering in a file upload component can lead to further attacks, such as uploading malicious files or overwriting critical data.
Deep Dive & Mechanics
The vulnerability resides in the RadAsyncUpload control, which is part of the Telerik UI for AJAX suite. This control is used to handle asynchronous file uploads in ASP.NET web applications.
Root Cause: The temporary file identifier (temporary ID) assigned to each uploaded file is generated using a predictable algorithm. The algorithm relies on:
- Timestamp: The current system time (likely with millisecond precision).
- Filename: The original name of the uploaded file.
This combination results in a low-entropy identifier that can be brute-forced or predicted by an attacker. By predicting the temporary ID, an attacker can:
- Cause File Collisions: Upload a file with the same temporary ID as another user's file, potentially overwriting it.
- Tamper with File Content: Overwrite an existing temporary file with malicious content before it is processed by the application.
Attack Scenario:
- An attacker observes the pattern of temporary IDs generated by the application (e.g., by uploading a test file and inspecting the response).
- The attacker calculates the timestamp and filename components to predict future IDs.
- The attacker sends a crafted upload request with a predicted temporary ID, overwriting a legitimate user's file.
Vulnerable vs. Patched Code
The vulnerable code is in the RadAsyncUpload handler. The temporary ID generation logic is flawed.
Vulnerable Code (Conceptual):
// Vulnerable: Low entropy ID based on timestamp and filename
string tempId = DateTime.Now.Ticks.ToString() + "_" + Path.GetFileNameWithoutExtension(fileName);
Patched Code (Conceptual):
// Patched: High entropy ID using a cryptographically secure random number generator
string tempId = Convert.ToBase64String(System.Security.Cryptography.RandomNumberGenerator.GetBytes(32));
The patched version (2026.1.225) replaces the predictable timestamp+filename approach with a cryptographically secure random identifier, making prediction infeasible.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A target application using Telerik UI for AJAX version prior to 2026.1.225.
- Network access to the application's upload endpoint.
Steps:
- Identify the Upload Endpoint: Locate the
RadAsyncUploadhandler (typicallyTelerik.Web.UI.WebResource.axdor a custom handler). - Analyze Temporary ID Pattern: Upload a benign file and capture the response to observe the temporary ID format.
- Predict Future IDs: Based on the observed pattern, calculate the timestamp and filename components to predict IDs for other files.
- Craft Malicious Upload: Send a POST request with a predicted temporary ID and malicious content to overwrite a target file.
Example Request (Conceptual):
POST /Telerik.Web.UI.WebResource.axd?type=rau HTTP/1.1
Host: target.com
Content-Type: multipart/form-data
--boundary
Content-Disposition: form-data; name="file"; filename="malicious.txt"
Content-Type: text/plain
[malicious content]
--boundary
Content-Disposition: form-data; name="temporaryId"
PREDICTED_ID_HERE
--boundary--
Blue Team (Defensive)
Detection:
- Monitor for multiple upload requests with similar or sequential temporary IDs.
- Alert on uploads that overwrite existing temporary files.
- Use Web Application Firewall (WAF) rules to block requests with suspicious temporary ID patterns.
Mitigation:
- Immediately upgrade to Telerik UI for AJAX version 2026.1.225 or later.
- If immediate patching is not possible, implement a custom validation layer that generates high-entropy IDs for uploaded files.
- Restrict file upload functionality to authenticated users only, if feasible.
Indicators of Compromise (IOCs)
- Network:
- Repeated POST requests to
Telerik.Web.UI.WebResource.axdwithtype=rauparameter. - Upload requests containing a
temporaryIdparameter with predictable patterns (e.g., sequential timestamps).
- Repeated POST requests to
- File System:
- Unexpected file collisions in the upload temporary directory.
- Files with names matching the pattern
[timestamp]_[filename]that are overwritten.
- Logs:
- Application logs showing multiple uploads with the same temporary ID.
- Error logs indicating file overwrite or access conflicts.
Detection Engineering
YARA Rule
rule CVE_2026_2878_Telerik_RadAsyncUpload
{
meta:
description = "Detects predictable temporary ID patterns in Telerik RadAsyncUpload"
author = "Valters IT"
date = "2026-02-20"
cve = "CVE-2026-2878"
strings:
$temp_id_pattern = /[0-9]{10,}_[a-zA-Z0-9_\-]+/ // Matches timestamp_filename pattern
$rau_handler = "Telerik.Web.UI.WebResource.axd"
condition:
$rau_handler and $temp_id_pattern
}
Sigma Rule
title: CVE-2026-2878 - Telerik RadAsyncUpload Predictable Temporary ID
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit predictable temporary IDs in Telerik RadAsyncUpload
author: Valters IT
date: 2026/02/20
logsource:
category: webserver
product: iis
detection:
selection:
cs-uri-query|contains: "Telerik.Web.UI.WebResource.axd?type=rau"
cs-uri-query|re: "temporaryId=[0-9]{10,}_[a-zA-Z0-9_\-]+"
condition: selection
falsepositives:
- Legitimate uploads with timestamp-based IDs (pre-patch)
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2026-2878 - Telerik RadAsyncUpload Predictable Temporary ID"; flow:to_server; content:"Telerik.Web.UI.WebResource.axd"; http_uri; content:"type=rau"; http_uri; pcre:"/temporaryId=[0-9]{10,}_[a-zA-Z0-9_\-]+/Ui"; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Patch: Upgrade to Telerik UI for AJAX version 2026.1.225 or later. This is the only complete fix.
- Workaround: If patching is delayed, implement a custom HTTP module or middleware that intercepts upload requests and replaces the temporary ID with a cryptographically secure random value before processing.
Long-Term Measures:
- Conduct a security review of all third-party components in use.
- Implement file upload security best practices:
- Validate file types and sizes server-side.
- Store uploaded files outside the web root.
- Use random, non-predictable filenames for stored files.
- Enable detailed logging for file upload operations and monitor for anomalies.
Valters IT Signature
This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.