☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Aqara logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 9.1 🐛 CWE-321
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-50091

CVE-2026-50091 Vulnerability in Aqara
📅 PUBLISHED: 2026-06-12 16:16 UTC 🔄 UPDATED: 2026-10-09 05:42 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: v0 — source: runZero. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.41%
👁️
0.41% probability
10.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: China License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
9.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-50091 is a critical vulnerability in the Aqara Home Android application (com.lumiunited.aqarahome) version 6.0.0 and any white-label clients embedding the same liblumidevsdk.so library. The vulnerability stems from the use of hard-coded cryptographic keys (CWE-321), allowing an unauthenticated, network-adjacent attacker to decrypt sensitive communications, impersonate the application, or forge data. With a CVSS score of 9.1 (Critical), this flaw poses a severe risk to user privacy and device integrity. No public exploit code or patch is currently available, but the static nature of the keys makes reverse engineering and exploitation straightforward.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • Base Score: 9.1 (Critical)
  • Attack Vector (AV): Network – The attacker can exploit the vulnerability remotely over the network.
  • Attack Complexity (AC): Low – No special conditions or race conditions are required.
  • Privileges Required (PR): None – No authentication needed.
  • User Interaction (UI): None – No user action required.
  • Scope (S): Unchanged – The vulnerable component and the impacted component are the same.
  • Confidentiality (C): High – Full decryption of sensitive data (e.g., device keys, user credentials, home automation commands).
  • Integrity (I): High – Ability to forge or modify data (e.g., send fake commands to smart locks, sensors).
  • Availability (A): None – No direct impact on availability.

Threat Level: Critical. The hard-coded keys are static across all installations, meaning a single reverse engineering effort yields universal decryption capabilities. This is especially dangerous for IoT ecosystems where compromised devices can lead to physical security breaches.

Deep Dive & Mechanics

The vulnerability resides in the liblumidevsdk.so shared library, which is bundled with the Aqara Home Android app and its white-label variants. The library implements cryptographic operations (likely AES or RSA) using keys that are compiled directly into the binary. These keys are identical across all versions of the library, making them a single point of failure.

Technical Details:

  • The hard-coded keys are stored as constant byte arrays within the .rodata or .data sections of the shared object.
  • An attacker can extract the keys using standard reverse engineering tools (e.g., strings, objdump, Ghidra, or Frida).
  • With the keys, the attacker can:
    • Decrypt network traffic between the app and Aqara cloud servers (if encrypted with these keys).
    • Decrypt local storage or inter-process communication (IPC) data.
    • Impersonate the app to the cloud backend, potentially gaining access to user accounts or device control.
  • The vulnerability is classified as CWE-321 (Use of Hard-coded Cryptographic Key) and is trivially exploitable once the binary is obtained.

Attack Scenario:

  1. An attacker downloads the Aqara Home APK from the Google Play Store or a third-party mirror.
  2. Using a tool like apktool or jadx, the attacker extracts lib/armeabi-v7a/liblumidevsdk.so.
  3. The attacker runs strings liblumidevsdk.so | grep -E '^[A-Za-z0-9+/=]{16,}$' to find potential base64-encoded keys, or uses a hex editor to locate known key patterns.
  4. Once the keys are recovered, the attacker can decrypt any captured traffic or forge commands to Aqara devices (e.g., unlock doors, disable alarms).

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the entire liblumidevsdk.so library as shipped in version 6.0.0. A patched version would need to:

  • Remove hard-coded keys from the binary.
  • Implement a secure key exchange mechanism (e.g., using a remote key server or per-device key derivation).
  • Use Android Keystore or similar hardware-backed storage for runtime keys.

Vulnerable Code (Conceptual):

// liblumidevsdk.so - vulnerable implementation
static const uint8_t aes_key[32] = {
    0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF,
    0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
    0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
    0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
};

void encrypt_data(const uint8_t *plaintext, uint8_t *ciphertext, size_t len) {
    // Uses hard-coded aes_key directly
    AES_encrypt(plaintext, ciphertext, aes_key);
}

Patched Code (Conceptual):

// Patched version - uses Android Keystore
#include <android/keystore.h>

void encrypt_data(const uint8_t *plaintext, uint8_t *ciphertext, size_t len) {
    // Retrieve key from Android Keystore, generated per device
    uint8_t *key = get_key_from_keystore("aqara_device_key");
    if (key == NULL) {
        // Generate new key and store securely
        key = generate_random_key();
        store_key_in_keystore("aqara_device_key", key);
    }
    AES_encrypt(plaintext, ciphertext, key);
    free(key);
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Aqara Home Android app version 6.0.0 (APK).
  • Android device or emulator (rooted for easier binary extraction).
  • Tools: apktool, jadx, strings, Ghidra, Python with pycryptodome.

Step-by-Step Exploitation:

  1. Extract the APK:

    apktool d com.lumiunited.aqarahome_6.0.0.apk -o aqara_extracted
    
  2. Locate the vulnerable library:

    find aqara_extracted -name "liblumidevsdk.so"
    
  3. Extract hard-coded keys:

    strings aqara_extracted/lib/armeabi-v7a/liblumidevsdk.so | grep -E '^[A-Za-z0-9+/=]{16,}$'
    

    Look for base64 strings or hex patterns. Use objdump to find constant data sections.

  4. Decrypt network traffic (example using Python):

    from Crypto.Cipher import AES
    import base64
    
    # Example extracted key (replace with actual)
    key = bytes.fromhex("0123456789ABCDEFFEDCBA9876543210")
    cipher = AES.new(key, AES.MODE_CBC, iv=b'\x00'*16)
    
    # Decrypt captured data (base64 encoded)
    encrypted_data = base64.b64decode("...")
    plaintext = cipher.decrypt(encrypted_data)
    print(plaintext)
    
  5. Forge commands:

    • Reverse engineer the protocol (likely MQTT or custom TCP) from the library.
    • Use the hard-coded key to encrypt malicious commands (e.g., "unlock_door").

Blue Team (Defense & Detection)

Detection:

  • Monitor for unusual network traffic from Aqara devices, especially if decrypted traffic shows unexpected commands.
  • Use network segmentation to isolate IoT devices from critical systems.
  • Deploy an IDS/IPS with custom rules (see Detection Engineering).

Mitigation:

  • Immediate: Disable or uninstall the Aqara Home app until a patch is released.
  • Workaround: Use a VPN or firewall to restrict outbound traffic from the app to only known Aqara cloud IPs.
  • Long-term: Demand that Aqara implements secure key management (e.g., per-device keys, Android Keystore).

Indicators of Compromise (IOCs)

  • File Hashes (SHA-256):

    • liblumidevsdk.so (from version 6.0.0): e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (placeholder – replace with actual hash)
    • APK: a1b2c3d4e5f6... (placeholder)
  • Network Indicators:

    • Destination IPs: Aqara cloud servers (e.g., 203.0.113.0/24 – placeholder).
    • Protocol: Custom TCP on port 8883 (MQTT over TLS) or similar.
  • Behavioral:

    • Unusual decryption attempts on captured traffic.
    • Repeated failed authentication attempts to Aqara cloud.

Detection Engineering

YARA Rule

rule CVE_2026_50091_Aqara_Hardcoded_Key {
    meta:
        description = "Detects hard-coded cryptographic keys in liblumidevsdk.so"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2026-50091"
    strings:
        $key1 = { 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 }
        $key2 = "AqaraSecretKey" nocase
        $key3 = /[A-Za-z0-9+/]{32,}/
    condition:
        any of ($key1, $key2, $key3) and filesize < 10MB
}

Sigma Rule

title: CVE-2026-50091 - Aqara Home Hardcoded Key Exploitation
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detects network traffic potentially exploiting hard-coded keys in Aqara Home app
author: Valters IT
date: 2025-04-10
logsource:
    category: network_connection
    product: windows
detection:
    selection:
        DestinationIp:
            - '203.0.113.0/24'  # Placeholder Aqara cloud IPs
        Initiated: 'true'
    condition: selection
falsepositives:
    - Legitimate Aqara app traffic
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET 8883 (msg:"CVE-2026-50091 - Aqara Home Hardcoded Key Exploitation"; flow:to_server; content:"|01 23 45 67 89 AB CD EF|"; depth:8; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Uninstall the Aqara Home app version 6.0.0 and any white-label clients using the same SDK.
  2. Monitor network logs for anomalous traffic to Aqara cloud IPs.
  3. Contact Aqara support for an official patch or update.

Long-term Fixes:

  • Aqara must release a patched version that:
    • Removes hard-coded keys from the binary.
    • Uses Android Keystore or a secure enclave for key storage.
    • Implements per-device key derivation (e.g., using device ID + server seed).
  • Users should enable two-factor authentication (2FA) on their Aqara accounts.
  • IoT devices should be placed on a separate VLAN with strict firewall rules.

Valters IT Signature:
This report was generated by Valters IT – DevSecOps & Cyber Threat Intelligence Division.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-50091/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.