Security Vulnerability Report
中文
CVE-2019-25651 CVSS 8.3 HIGH

CVE-2019-25651

Published: 2026-03-27 22:16:19
Last Modified: 2026-04-29 01:00:02

Description

Ubiquiti UniFi Network Controller prior to 5.10.12 (excluding 5.6.42), UAP FW prior to 4.0.6, UAP-AC, UAP-AC v2, and UAP-AC Outdoor FW prior to 3.8.17, USW FW prior to 4.0.6, USG FW prior to 4.4.34 uses AES-CBC encryption for device-to-controller communication, which contains cryptographic weaknesses that allow attackers to recover encryption keys from captured traffic. Attackers with adjacent network access can capture sufficient encrypted traffic and exploit AES-CBC mode vulnerabilities to derive the encryption keys, enabling unauthorized control and management of network devices.

CVSS Details

CVSS Score
8.3
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

UniFi Network Controller < 5.10.12 (excluding 5.6.42)
UAP FW < 4.0.6
UAP-AC, UAP-AC v2, UAP-AC Outdoor FW < 3.8.17
USW FW < 4.0.6
USG FW < 4.4.34

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # This is a conceptual PoC for CVE-2019-25651 # It simulates the steps an attacker would take to analyze traffic and recover keys. import scapy.all as scapy from Crypto.Cipher import AES from binascii import hexlify def capture_traffic(interface, duration): """ Step 1: Capture packets between UniFi device and Controller """ print(f"[*] Capturing traffic on {interface} for {duration} seconds...") packets = scapy.sniff(iface=interface, timeout=duration) return packets def analyze_encryption(packets): """ Step 2: Identify encrypted payloads and attempt key recovery Note: Actual key recovery requires specific cryptanalysis of the CBC implementation """ print("[*] Analyzing packets for CBC encryption patterns...") # In a real scenario, look for known plaintexts or padding oracle vulnerabilities # This is a placeholder for the cryptanalysis logic recovered_key = b"PLACEHOLDER_RECOVERED_KEY_16" return recovered_key def decrypt_payload(ciphertext, key, iv): """ Step 3: Decrypt traffic using recovered key """ cipher = AES.new(key, AES.MODE_CBC, iv) try: plaintext = cipher.decrypt(ciphertext) return plaintext except Exception as e: return None if __name__ == "__main__": # Configuration target_interface = "eth0" # 1. Sniffing captured_data = capture_traffic(target_interface, 60) # 2. Cryptanalysis (Conceptual) secret_key = analyze_encryption(captured_data) print(f"[+] Key recovered: {hexlify(secret_key).decode()}") # 3. Exploitation # Assuming we have a ciphertext and IV from the captured packets # test_iv = b"\x00" * 16 # decrypted_message = decrypt_payload(captured_data[0].load, secret_key, test_iv) # print(f"[+] Decrypted control message: {decrypted_message}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2019-25651", "sourceIdentifier": "[email protected]", "published": "2026-03-27T22:16:19.107", "lastModified": "2026-04-29T01:00:01.613", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "Ubiquiti UniFi Network Controller prior to 5.10.12 (excluding 5.6.42), UAP FW prior to 4.0.6, UAP-AC, UAP-AC v2, and UAP-AC Outdoor FW prior to 3.8.17, USW FW prior to 4.0.6, USG FW prior to 4.4.34 uses AES-CBC encryption for device-to-controller communication, which contains cryptographic weaknesses that allow attackers to recover encryption keys from captured traffic. Attackers with adjacent network access can capture sufficient encrypted traffic and exploit AES-CBC mode vulnerabilities to derive the encryption keys, enabling unauthorized control and management of network devices."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:A/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 9.0, "baseSeverity": "CRITICAL", "attackVector": "ADJACENT", "attackComplexity": "HIGH", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "HIGH", "subIntegrityImpact": "HIGH", "subAvailabilityImpact": "HIGH", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H", "baseScore": 8.3, "baseSeverity": "HIGH", "attackVector": "ADJACENT_NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.6, "impactScore": 6.0}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-327"}]}], "references": [{"url": "https://community.ui.com/releases/Security-Advisory-Bulletin-004-004/462e561b-9efd-4c23-bfa7-53d59cc64ecb", "source": "[email protected]"}, {"url": "https://www.vulncheck.com/advisories/ubiquiti-unifi-devices-use-of-aes-cbc-allows-key-recovery-and-unauthorized-device-control", "source": "[email protected]"}]}}