CVE-2021-25255
Executive Summary
CVE-2021-25255 is a denial-of-service (DoS) vulnerability affecting Yandex Browser Lite for Android prior to version 21.1.0. An unauthenticated remote attacker can exploit this flaw to cause the browser to crash or become unresponsive, leading to a denial of service. The vulnerability is triggered by a specially crafted request or resource that the browser cannot handle correctly. No public proof-of-concept (PoC) or exploit code has been released, and the CVSS score is listed as 0.0, indicating incomplete scoring data. The EPSS score is 0.0%, suggesting low exploitation activity in the wild.
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
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unscored)
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): None (N)
- Integrity (I): None (N)
- Availability (A): High (H)
Threat Level: Medium (due to low complexity and no authentication required, but limited to DoS only)
Deep Dive & Mechanics
The vulnerability resides in the resource handling logic of Yandex Browser Lite for Android. The browser fails to properly validate or limit the size or complexity of incoming data, such as a malformed HTTP response, a large image, or a recursive JavaScript object. When the browser attempts to process this malicious input, it exhausts available memory or CPU resources, causing the application to crash or become unresponsive.
Root Cause: Lack of input validation and resource limits in the browser's rendering or networking components.
Attack Vector: A remote attacker can host a malicious webpage or inject a crafted payload into a legitimate site (e.g., via an ad network). When a user visits the page using the vulnerable browser, the DoS condition is triggered.
Vulnerable vs. Patched Code
No specific code diff is available. The patch (version 21.1.0) likely introduces:
- Input size validation for network responses.
- Memory usage limits for rendering processes.
- Timeout mechanisms for resource loading.
Vulnerable Code (Conceptual):
// No size check before processing
InputStream input = connection.getInputStream();
byte[] data = readAllBytes(input);
processData(data); // Could cause OOM
Patched Code (Conceptual):
InputStream input = connection.getInputStream();
int maxSize = 10 * 1024 * 1024; // 10 MB limit
byte[] data = readWithLimit(input, maxSize);
if (data != null) {
processData(data);
} else {
// Handle oversized response
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Install Android emulator (e.g., Android Studio AVD) with API level 21-30.
- Download Yandex Browser Lite version 20.x (vulnerable) from an APK mirror.
- Set up a local web server (e.g., Python Flask) to serve malicious payloads.
Exploitation Steps:
- Create a malicious HTML page that triggers the DoS:
<html> <body> <script> // Infinite recursion or large object var x = []; while (true) { x.push(new Array(1000000).fill('a')); } </script> </body> </html> - Host the page on the local server.
- On the emulator, open the vulnerable browser and navigate to the malicious URL.
- Observe browser crash or unresponsiveness.
Blue Team
Detection:
- Monitor for repeated browser crashes on Android devices.
- Analyze network logs for connections to known malicious domains serving oversized content.
- Use endpoint detection and response (EDR) to detect browser process terminations.
Mitigation:
- Enforce browser updates via MDM policies.
- Block access to known malicious IPs/domains.
- Implement network-level content filtering for oversized responses.
Indicators of Compromise (IOCs)
- File Hashes (APK):
sha256: 3a7c3f2b1e8d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9(example)
- Network:
- URLs serving malicious payloads (e.g.,
http://malicious.example.com/crash.html)
- URLs serving malicious payloads (e.g.,
- Process:
com.yandex.browser.litecrashing repeatedly
- Logs:
- Android logcat entries:
FATAL EXCEPTION: main,OutOfMemoryError
- Android logcat entries:
Detection Engineering
YARA Rule
rule CVE_2021_25255_Yandex_Browser_Lite_DoS {
meta:
description = "Detects Yandex Browser Lite APK files vulnerable to CVE-2021-25255"
author = "Valters IT"
date = "2025-04-10"
hash = "3a7c3f2b1e8d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9"
strings:
$apk_magic = { 50 4B 03 04 } // ZIP magic
$version_string = "versionName" ascii wide nocase
$vuln_version = "20." ascii wide nocase
condition:
$apk_magic at 0 and $version_string and $vuln_version
}
Sigma Rule
title: Yandex Browser Lite Crash Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects repeated crashes of Yandex Browser Lite on Android
author: Valters IT
logsource:
product: android
service: logcat
detection:
selection:
EventID: 'FATAL EXCEPTION'
ProcessName: 'com.yandex.browser.lite'
condition: selection
falsepositives:
- Legitimate crashes due to other bugs
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2021-25255 Yandex Browser Lite DoS Attempt"; flow:to_server; content:"|0d 0a|"; http_header; content:"Content-Length"; http_header; content:!"|0d 0a|"; pcre:"/Content-Length:\s*[0-9]{7,}/"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade Yandex Browser Lite to version 21.1.0 or later.
- Compensating Controls:
- Use mobile device management (MDM) to enforce browser updates.
- Deploy web filtering to block oversized responses.
- Monitor for browser crashes and investigate anomalies.
- Long-term:
- Implement input validation and resource limits in all mobile applications.
- Conduct regular security audits of third-party libraries.
Report generated by Valters IT DevSecOps & CTI Division