CVE-2025-32899
Executive Summary
CVE-2025-32899 is a denial-of-service vulnerability in the KDE Connect Android application, affecting versions prior to 1.33.0. The flaw allows an unauthenticated attacker on the same local network to send a specially crafted invalid discovery packet over broadcast UDP, causing two paired devices to unpair. This disrupts the device pairing mechanism, leading to a loss of connectivity between paired devices. The vulnerability has a CVSS score of 4.3 (Medium) and a low EPSS score of 0.0%, indicating limited exploitation in the wild. No public proof-of-concept or exploit code is currently 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 related to a package manager (NPM, PyPI, Go, Ruby). It affects the KDE Connect Android application, which is distributed via the Google Play Store and F-Droid. The supply chain risk is low, as the fix is available in version 1.33.0.
CVSS Breakdown & Threat Level
- CVSS Score: 4.3 (Medium)
- Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Attack Vector (AV): Adjacent Network (AV:A) – The attacker must be on the same local network as the target devices.
- Attack Complexity (AC): Low (AC:L) – No special conditions are required.
- Privileges Required (PR): None (PR:N) – No authentication needed.
- User Interaction (UI): None (UI:N) – The victim does not need to perform any action.
- Scope (S): Unchanged (S:U) – The vulnerability does not affect other components.
- Confidentiality (C): None (C:N) – No data exposure.
- Integrity (I): None (I:N) – No data modification.
- Availability (A): Low (A:L) – The attack causes a temporary denial of service by unpairing devices.
Threat Level: Medium. The attack requires local network access, but the impact is limited to disrupting device pairing. No data theft or remote code execution is possible.
Deep Dive & Mechanics
KDE Connect enables communication between Android devices and desktop computers over the local network. It uses a discovery protocol over UDP broadcast to find and pair devices. The vulnerability lies in the handling of discovery packets.
Root Cause: The Android application does not properly validate the source or content of incoming discovery packets. An attacker can craft a malicious discovery packet that, when broadcast over UDP, causes the receiving device to interpret it as a valid unpairing request. This results in the removal of the paired device from the trusted list.
Attack Flow:
- The attacker is on the same local network as two paired KDE Connect devices (e.g., an Android phone and a Linux desktop).
- The attacker sends a specially crafted UDP broadcast packet to port 1714 (default KDE Connect discovery port).
- The packet contains an invalid or malformed discovery payload that triggers the unpairing logic.
- Both devices process the packet and remove each other from their paired device lists.
- The legitimate pairing is broken, requiring manual re-pairing to restore functionality.
Technical Details: The discovery packet likely includes a device ID or pairing token. By sending a packet with a manipulated or null token, the application incorrectly processes it as a valid unpairing command. The exact byte-level manipulation is not publicly documented, but the fix in version 1.33.0 addresses this by adding validation checks.
Vulnerable vs. Patched Code
Vulnerable Code (pre-1.33.0): The vulnerable code likely resides in the discovery packet handler. A simplified pseudocode example:
// Vulnerable: No validation of discovery packet source
void onDiscoveryPacketReceived(Packet packet) {
String deviceId = packet.getDeviceId();
if (deviceId != null) {
// Directly unpair based on packet content
unpairDevice(deviceId);
}
}
Patched Code (1.33.0+): The patched version adds validation to ensure the packet is from a trusted source or contains proper authentication.
// Patched: Validate packet source and content
void onDiscoveryPacketReceived(Packet packet, InetAddress sourceAddress) {
// Only process packets from already paired devices
if (!isPairedDevice(sourceAddress)) {
return; // Ignore unpaired sources
}
String deviceId = packet.getDeviceId();
if (deviceId != null && packet.isAuthenticated()) {
// Only unpair if packet is authenticated
unpairDevice(deviceId);
}
}
The patch ensures that only authenticated packets from already paired devices can trigger unpairing, preventing external attackers from exploiting the broadcast mechanism.
Exploitation & Lab Setup
Red Team
Lab Setup:
- Two Android devices (or one Android and one desktop) with KDE Connect installed (version < 1.33.0).
- A Linux machine with
nmapandscapyfor crafting packets. - All devices on the same local network (e.g., 192.168.1.0/24).
Exploitation Steps:
- Identify the target devices using
nmap:nmap -sU -p 1714 192.168.1.0/24 - Craft a malicious UDP packet using
scapy:from scapy.all import * # Craft a malformed discovery packet (example payload) payload = b'\x00\x01\x00\x00\x00\x00\x00\x00' # Invalid discovery data packet = IP(dst="255.255.255.255")/UDP(sport=1714, dport=1714)/Raw(load=payload) send(packet, loop=1, inter=0.1) # Send multiple times - Observe that the paired devices become unpaired and lose connectivity.
Note: This is a conceptual example. The exact payload structure is not publicly known, but the attack relies on sending an invalid discovery packet.
Blue Team
Detection:
- Monitor UDP traffic on port 1714 for unusual broadcast packets.
- Look for packets with unexpected payload lengths or patterns.
- Use network intrusion detection systems (NIDS) to alert on malformed discovery packets.
Mitigation:
- Update KDE Connect to version 1.33.0 or later.
- Restrict UDP broadcast traffic on port 1714 using firewall rules (e.g., only allow traffic from trusted IPs).
- Implement network segmentation to limit exposure.
Indicators of Compromise (IOCs)
Network IOCs:
- UDP packets to port 1714 with broadcast destination (255.255.255.255 or subnet broadcast).
- Packets with unusual payload sizes (e.g., less than 20 bytes or malformed headers).
- Repeated unpairing events in KDE Connect logs.
Host IOCs:
- KDE Connect logs showing unexpected unpairing events without user action.
- Android device logs (logcat) containing errors related to discovery packet processing.
File IOCs:
- No specific file-based IOCs, as the attack is network-based.
Detection Engineering
YARA Rule
rule CVE_2025_32899_KDE_Connect_Unpair {
meta:
description = "Detects malformed KDE Connect discovery packets causing unpair"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2025-32899"
strings:
$udp_port = { 06 B2 } // Port 1714 in network byte order (0x06B2)
$malformed_payload = { 00 01 00 00 00 00 00 00 } // Example invalid payload
condition:
$udp_port and $malformed_payload
}
Sigma Rule
title: CVE-2025-32899 KDE Connect Unpairing via Malformed Discovery Packet
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects UDP broadcast packets targeting port 1714 with malformed payloads that may trigger unpairing in KDE Connect.
author: Valters IT
date: 2025-04-10
logsource:
category: network
product: suricata
detection:
selection:
dest_port: 1714
ip_protocol: udp
dest_ip: "255.255.255.255"
condition: selection
falsepositives:
- Legitimate KDE Connect discovery traffic
level: medium
Suricata Rule
alert udp any any -> any 1714 (msg:"CVE-2025-32899 KDE Connect Malformed Discovery Packet"; content:"|00 01 00 00 00 00 00 00|"; depth:8; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update KDE Connect on Android to version 1.33.0 or later from the Google Play Store or F-Droid.
- If updating is not possible, disable the KDE Connect service on the Android device temporarily.
- Restrict UDP broadcast traffic on port 1714 using firewall rules (e.g.,
iptables -A INPUT -p udp --dport 1714 -j DROP).
Long-Term Measures:
- Implement network segmentation to isolate IoT and mobile devices from critical systems.
- Monitor for unusual network traffic patterns on port 1714.
- Regularly update all KDE Connect components (Android, desktop, and plugins).
Patch Details:
- Upgrade to KDE Connect 1.33.0 or later. The fix is included in the official release and can be obtained from the KDE Connect website or app stores.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.