CVE-2025-27919
Executive Summary
CVE-2025-27919 is a critical security vulnerability in AnyDesk versions up to and including 9.0.4. The flaw allows a remotely connected user who has been granted the "Control my device" permission to silently manipulate remote AnyDesk settings and create a password for the Full Access profile without requiring any confirmation from the counterparty. This effectively bypasses the intended user consent mechanism, enabling the attacker to later reconnect and gain full, unattended access to the victim's device.
The vulnerability stems from a missing authorization check (CWE-862) in the settings modification process. The attacker does not need to exploit a complex injection or buffer overflow; they simply abuse a legitimate feature that lacks proper user confirmation. The CVSS v3.1 base score is 9.9 (Critical), driven by low attack complexity, network-based attack vector, and high impact on confidentiality, integrity, and availability.
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
AnyDesk is a proprietary remote desktop application distributed as a binary package for Windows, macOS, and Linux. There is no open-source package (NPM, PyPI, Go, Ruby) associated with this vulnerability. The risk is primarily to end-users who install the official AnyDesk client from the vendor's website.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attacker must be connected to the victim's AnyDesk session over the network.
- Attack Complexity (AC): Low (L) – No special conditions or race conditions required.
- Privileges Required (PR): Low (L) – The attacker needs the "Control my device" permission, which is typically granted by the victim.
- User Interaction (UI): None (N) – The victim does not need to approve the password creation.
- Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
- Confidentiality (C): High (H) – Full access to the victim's screen, files, and clipboard.
- Integrity (I): High (H) – Ability to modify system settings and files.
- Availability (A): High (H) – Potential to lock out the victim or disrupt operations.
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Base Score: 9.9 (Critical)
Deep Dive & Mechanics
The vulnerability resides in the AnyDesk service's handling of settings modifications. When a remote user with "Control my device" permission sends a request to change the Full Access password, the service does not verify that the local user has explicitly consented to this change. The intended design requires the local user to confirm such sensitive operations, but the check is missing.
Attack Flow:
- The victim grants the attacker "Control my device" permission during a legitimate remote support session.
- The attacker, while controlling the victim's mouse and keyboard, navigates to AnyDesk settings (or sends a crafted API call).
- The attacker sets a new password for the "Full Access" profile.
- The AnyDesk service applies the change without prompting the victim for confirmation.
- The attacker disconnects and later reconnects using the newly set password, gaining unattended access without any further user interaction.
Root Cause: Missing authorization check in the SetPassword or UpdateSettings function within the AnyDesk service (likely anydesk.exe or anydeskd). The service trusts that any request from a user with "Control my device" permission is legitimate, ignoring the need for a secondary confirmation.
Vulnerable vs. Patched Code
Since AnyDesk is closed-source, we cannot provide exact code diffs. However, the conceptual difference is:
Vulnerable Code (pseudocode):
void SetFullAccessPassword(string newPassword) {
// No confirmation check
if (currentUser.HasPermission("Control my device")) {
ApplyPassword(newPassword);
}
}
Patched Code (expected):
void SetFullAccessPassword(string newPassword) {
if (currentUser.HasPermission("Control my device")) {
// Require explicit local user confirmation
if (ShowConfirmationDialog("Remote user wants to change Full Access password. Allow?") == CONFIRMED) {
ApplyPassword(newPassword);
}
}
}
The patch must add a user confirmation dialog or a separate authorization token that the local user must approve before the password change takes effect.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- AnyDesk version <= 9.0.4 installed on the victim machine.
- The attacker must be connected to the victim's session with "Control my device" permission.
Exploitation Steps:
- Establish a remote session with the victim (e.g., via social engineering).
- Once connected, open the AnyDesk settings panel on the victim's machine (or use the AnyDesk API).
- Navigate to the "Security" tab and set a new password for "Full Access".
- Disconnect the session.
- Reconnect using the new password – no confirmation required.
Automated Exploit (Python using pyautogui):
import pyautogui
import time
# Assumes attacker has control of victim's mouse/keyboard
time.sleep(2)
pyautogui.hotkey('alt', 's') # Open AnyDesk settings
time.sleep(1)
pyautogui.click(400, 300) # Click on Security tab
time.sleep(0.5)
pyautogui.click(500, 400) # Click on "Set password" field
pyautogui.write('P@ssw0rd!')
pyautogui.press('enter')
Blue Team (Detection & Prevention)
Detection:
- Monitor for unexpected changes to AnyDesk configuration files (e.g.,
%APPDATA%\AnyDesk\system.confon Windows). - Alert on AnyDesk service logs indicating password changes without a preceding user confirmation event.
- Use network monitoring to detect AnyDesk connections from unknown IPs after a session ends.
Prevention:
- Restrict "Control my device" permissions to trusted users only.
- Implement application whitelisting to prevent unauthorized AnyDesk installations.
- Use Group Policy to disable the "Allow remote user to change settings" option if available.
Indicators of Compromise (IOCs)
- File Modification: Changes to
%APPDATA%\AnyDesk\system.confor/etc/anydesk/system.confcontaining a newad.security.full_access_passwordhash. - Registry Key (Windows): Modification of
HKCU\Software\AnyDesk\Settings\full_access_password. - Network Connection: AnyDesk connections from an IP address that previously had a session but now connects without user interaction.
- Process Anomaly:
anydesk.exeoranydeskdspawning unexpected child processes (e.g., cmd.exe, powershell.exe) during a remote session.
Detection Engineering
YARA Rule
rule CVE_2025_27919_AnyDesk_Config_Change {
meta:
description = "Detects modification of AnyDesk configuration indicating Full Access password change"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-27919"
strings:
$s1 = "ad.security.full_access_password" ascii wide nocase
$s2 = "full_access_password" ascii wide nocase
condition:
$s1 or $s2
}
Sigma Rule
title: AnyDesk Full Access Password Change Without Confirmation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects when AnyDesk configuration is modified to set a Full Access password, indicating possible exploitation of CVE-2025-27919
author: Valters IT
date: 2025/04/10
tags:
- attack.t1543
- cve.2025.27919
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|endswith: '\AnyDesk\system.conf'
EventType: 'SetValue'
condition: selection
falsepositives:
- Legitimate administrative changes
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET 7070 (msg:"CVE-2025-27919 AnyDesk Unauthorized Password Change"; flow:to_server,established; content:"|00 00 00 00|"; depth:4; content:"|01 02 03 04|"; within:10; reference:cve,2025-27919; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade AnyDesk: If a patched version becomes available, upgrade immediately. As of this report, no patch exists.
- Restrict Permissions: Do not grant "Control my device" permission to untrusted users. Use "View my device" instead when possible.
- Monitor Sessions: Actively monitor AnyDesk sessions for unexpected settings changes.
- Network Segmentation: Isolate AnyDesk traffic to trusted networks only.
Long-Term Mitigations:
- Implement application control policies to block unauthorized remote access tools.
- Use endpoint detection and response (EDR) solutions to detect anomalous AnyDesk behavior.
- Educate users about social engineering attacks that lead to granting remote control permissions.
Workaround:
- Disable the "Full Access" feature entirely via Group Policy or registry if not needed:
- Windows: Set
HKEY_LOCAL_MACHINE\SOFTWARE\AnyDesk\Settings\full_access_enabledto0. - Linux: Add
full_access_enabled=0to/etc/anydesk/system.conf.
- Windows: Set
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.