Overview
This report outlines a critical privilege escalation vulnerability identified as CVE-2025-50892. It affects the eudskacs.sys driver version 20250328 shipped with EaseUs Todo Backup 1.2.0.1. The vulnerability can allow a local, low-privileged attacker to perform arbitrary raw disk reads and writes, potentially leading to data leakage or system compromise.
Vulnerability Summary
CVE ID: CVE-2025-50892
Severity: High, CVSS 7.8
Attack Vector: Local
Privileges Required: Low
User Interaction: None
Impact: The vulnerability can lead to unauthorized information disclosure, denial of service, or local privilege escalation.
Affected Products
Share secrets securely
Ameeba is private infrastructure for communication and sensitive work built on encrypted identity instead of exposed corporate identity systems.
Passwords, credentials, confidential files, screenshots, internal discussions, sensitive AI context, and private coordination should not become exposed across ordinary communication platforms.
- • Encrypted identity
- • Private Spaces for organizations and teams
- • End-to-end encrypted chat, calls, files, and notes
- • Sensitive AI work and protected collaboration
- • Built for information that cannot leak
Our mission is to secure human work alongside AI.
Product | Affected Versions
EaseUs Todo Backup | 1.2.0.1
How the Exploit Works
The vulnerability arises from the eudskacs.sys driver’s failure to properly validate privileges for I/O requests (IRP_MJ_READ/IRP_MJ_WRITE) sent to its device object. An attacker with low-level privileges can send these requests to read or write data arbitrarily on the disk. This could lead to unauthorized access to sensitive data, disruption of system services, or an escalation of the attacker’s privileges on the system.
Conceptual Example Code
Given the nature of this vulnerability, a conceptual exploit would involve a malicious low privileged application making a system call to the vulnerable driver, as demonstrated below:
#include <windows.h>
int main() {
HANDLE hDevice = CreateFile("\\\\.\\EUDSKACS", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hDevice == INVALID_HANDLE_VALUE) {
printf("Failed to open device: %d\n", GetLastError());
return 1;
}
DWORD bytesReturned;
if (!DeviceIoControl(hDevice, IOCTL_CODE, &inputBuffer, sizeof(inputBuffer), &outputBuffer, sizeof(outputBuffer), &bytesReturned, NULL)) {
printf("DeviceIoControl failed: %d\n", GetLastError());
return 1;
}
CloseHandle(hDevice);
return 0;
}
In this conceptual example, IOCTL_CODE would be a control code for an I/O operation that the eudskacs.sys driver does not properly validate. The inputBuffer and outputBuffer would contain arbitrary data to be written to or read from the disk.
