CVE-2025-26847
Executive Summary
CVE-2025-26847 is a security advisory affecting the Znuny open-source help desk and ticket system (a fork of OTRS). The vulnerability allows for the exposure of sensitive credential information during the generation of a support bundle. When a support bundle is created for diagnostic purposes, not all passwords are properly masked or redacted. This could allow an attacker with access to the generated support bundle file to retrieve plaintext or weakly obfuscated credentials for internal systems, databases, or email servers.
The vulnerability has a CVSS score of 0.0 in the NVD data, but this is likely a placeholder or uncalculated score. The actual risk is moderate to high, depending on the exposure of the support bundle. The EPSS score is 0.0%, indicating no active exploitation in the wild at the time of analysis. No public proof-of-concept (PoC) or exploit code is available.
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
Supply Chain & Package Security
Znuny is a Perl-based application distributed via tarballs and package managers. The vulnerability is in the core application code, not in a specific package manager (NPM, PyPI, Go, Ruby). Therefore, supply chain risks are limited to the integrity of the Znuny distribution itself. Users should verify checksums and signatures when downloading updates.
CVSS Breakdown & Threat Level
The NVD CVSS score is listed as 0.0, which is likely an error or placeholder. Based on the vulnerability description, a more realistic assessment is:
- Attack Vector (AV): Local (AV:L) – The attacker needs access to the generated support bundle file.
- Attack Complexity (AC): Low (AC:L) – No special conditions are required to read the file.
- Privileges Required (PR): Low (PR:L) – The attacker needs some level of access to the file system or the support bundle.
- User Interaction (UI): None (UI:N) – No user action is required beyond the generation of the bundle.
- Scope (S): Unchanged (S:U) – The vulnerability does not affect other components.
- Confidentiality (C): High (C:H) – Credentials are exposed.
- Integrity (I): None (I:N) – No data integrity impact.
- Availability (A): None (A:N) – No availability impact.
Estimated CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N Estimated Score: 5.5 (Medium)
Threat Level: Medium. The vulnerability requires local access to the support bundle, but the impact is high due to credential exposure.
Deep Dive & Mechanics
The Znuny support bundle is a diagnostic tool that collects system information, configuration files, logs, and database dumps to help administrators troubleshoot issues. The vulnerability lies in the code responsible for generating this bundle. Specifically, the masking function that is supposed to redact passwords from configuration files (e.g., database passwords, email server passwords) is incomplete.
The affected code likely iterates over configuration parameters and attempts to replace password values with asterisks or a placeholder. However, due to a logic flaw, certain password fields are not matched or are skipped. This could be due to:
- Incorrect regular expressions that fail to match all password field names.
- Hardcoded lists of fields to mask that are incomplete.
- New configuration parameters added in later versions that were not included in the masking logic.
The result is that the generated support bundle contains plaintext passwords for systems such as:
- Database connections (MySQL, PostgreSQL)
- Email servers (SMTP, IMAP)
- LDAP directories
- External API integrations
An attacker who gains access to this file (e.g., via a compromised admin account, a file upload vulnerability, or a misconfigured web server) can extract these credentials and use them to pivot to other systems.
Vulnerable vs. Patched Code
The exact code change is not publicly available, but the fix is in Znuny 7.1.5. The vulnerable code likely resides in a Perl module responsible for generating the support bundle, such as Kernel/System/Support.pm or similar.
Vulnerable Code (Conceptual):
# In the support bundle generation routine
my %config = GetConfig();
foreach my $key (keys %config) {
if ($key =~ /password/i) {
$config{$key} = '***MASKED***';
}
# Missing: handling of nested configs, array values, or non-standard keys
}
Patched Code (Conceptual):
# In the support bundle generation routine
my %config = GetConfig();
foreach my $key (keys %config) {
# Recursively mask all password fields, including nested structures
if (ref($config{$key}) eq 'HASH') {
MaskPasswords($config{$key});
} elsif (ref($config{$key}) eq 'ARRAY') {
foreach my $item (@{$config{$key}}) {
MaskPasswords($item) if ref($item) eq 'HASH';
}
} elsif ($key =~ /password|passwd|pwd|secret/i) {
$config{$key} = '***MASKED***';
}
}
The patch ensures that all password-like fields are masked, including those in nested hashes and arrays.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a Znuny instance (version < 7.1.5) with admin privileges.
- Ability to trigger the support bundle generation (usually via Admin -> System Administration -> Support Bundle).
Steps:
- Log in to the Znuny admin interface.
- Navigate to the support bundle generation page.
- Click "Generate Support Bundle" and download the resulting
.tar.gzfile. - Extract the archive:
tar -xzf support_bundle_*.tar.gz - Search for plaintext passwords in the extracted files:
grep -r -i "password" . grep -r -i "passwd" . grep -r -i "secret" . - Look for lines containing
=>or=followed by a value that is not masked (e.g.,'password' => 'MySecret123'). - Use the extracted credentials to access the database, email server, or other integrated systems.
Automation Script (Conceptual):
#!/bin/bash
# Extract and search for passwords in a Znuny support bundle
BUNDLE=$1
if [ -z "$BUNDLE" ]; then
echo "Usage: $0 <support_bundle.tar.gz>"
exit 1
fi
TMPDIR=$(mktemp -d)
tar -xzf "$BUNDLE" -C "$TMPDIR"
grep -r -E "(password|passwd|pwd|secret)\s*=>\s*'[^*]" "$TMPDIR" --include="*.pm" --include="*.pl" --include="*.yml" --include="*.conf"
rm -rf "$TMPDIR"
Blue Team
Detection:
- Monitor for the generation of support bundles. This is an administrative action, but unauthorized generation should be alerted.
- Look for unusual access to the support bundle download endpoint.
- Monitor for file reads of the support bundle archive in the file system.
Prevention:
- Upgrade to Znuny 7.1.5 or later.
- Restrict access to the support bundle generation feature to only trusted administrators.
- Implement file integrity monitoring on the support bundle output directory.
- Use a secrets scanner (e.g., TruffleHog, Gitleaks) to scan generated support bundles for exposed credentials.
Response:
- If a support bundle is suspected to have been exposed, immediately rotate all credentials that were included in the bundle.
- Review access logs to identify who generated and downloaded the bundle.
- Revoke any compromised API keys or tokens.
Indicators of Compromise (IOCs)
- File:
support_bundle_*.tar.gz(generated by Znuny) - File Content: Plaintext passwords in configuration files within the bundle (e.g.,
'Password' => 'cleartext') - Log Entry: Successful generation of a support bundle by an unexpected user or at an unusual time.
- Network: Outbound connections from the Znuny server to external systems using credentials found in the bundle (post-exploitation).
Detection Engineering
YARA Rule
rule Znuny_Support_Bundle_Password_Exposure {
meta:
description = "Detects plaintext passwords in Znuny support bundle files"
author = "Valters IT"
date = "2025-04-01"
reference = "CVE-2025-26847"
strings:
$password_field = /['"](?:password|passwd|pwd|secret)['"]\s*=>\s*['"][^*]/
$password_field2 = /['"](?:password|passwd|pwd|secret)['"]\s*=\s*['"][^*]/
condition:
any of them
}
Sigma Rule
title: Znuny Support Bundle Password Exposure
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects the generation of a Znuny support bundle which may contain plaintext passwords
author: Valters IT
date: 2025-04-01
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-26847
logsource:
product: znuny
service: application
detection:
selection:
EventID: 'SupportBundleGenerated'
condition: selection
falsepositives:
- Legitimate administrative actions
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Znuny Support Bundle Download - Possible Credential Exposure"; flow:to_server,established; content:"/otrs/index.pl"; http_uri; content:"Action=AdminSupportBundle"; http_uri; content:"Subaction=Download"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate:
- Upgrade Znuny to version 7.1.5 or later.
- If upgrade is not possible, manually patch the support bundle generation code to ensure all password fields are masked.
- Review any previously generated support bundles and rotate any exposed credentials.
Long-term:
- Implement a secrets management solution (e.g., HashiCorp Vault) to avoid storing plaintext passwords in configuration files.
- Regularly audit support bundle generation logs.
- Train administrators on the risks of sharing support bundles.
Workaround:
- Disable the support bundle generation feature if not needed, or restrict it to a specific admin group.
- Manually redact sensitive information from support bundles before sharing them with third parties.
Valters IT
Securing your digital infrastructure, one CVE at a time.