CVE-2021-39316
High · 7.5CVSS
7.5
EPSS
65.8%
Published
Aug 31, 2021
CISA due date
—
Cloudanix analysis
A vulnerable WordPress audio plugin can let outsiders download private website files that may contain passwords and other secrets.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Web Framework
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2021-39316 is an unauthenticated path traversal vulnerability in the Zoomsounds WordPress plugin versions 6.45 and earlier. The vulnerable `dzsap_download` action accepts a user-controlled `link` parameter and fails to properly constrain file paths to an intended download directory. An attacker can supply traversal sequences such as `../` to read arbitrary files accessible to the web server process, including WordPress configuration files like `wp-config.php`. The primary impact is high-confidentiality data exposure; the vulnerability does not directly provide code execution, integrity modification, or denial of service by itself.
Why it matters to the business
Successful exploitation can expose sensitive server-side files, including database credentials, authentication keys, salts, and other secrets stored in WordPress configuration files. Those secrets can enable follow-on compromise of the WordPress database, administrator accounts, application data, or adjacent systems that reuse credentials. The exploit is weaponized and has a high EPSS score, so internet-facing WordPress sites running affected Zoomsounds versions should be treated as high-priority even though this CVE is not currently listed in CISA KEV.
How an attack unfolds
An attacker first identifies a WordPress site using the Zoomsounds plugin. They then send a crafted unauthenticated HTTP request to the WordPress AJAX endpoint or plugin download handler using the `dzsap_download` action and a malicious `link` parameter containing directory traversal sequences. Instead of limiting the download to legitimate media content, the plugin resolves the attacker-supplied path and returns the targeted local file if the web server process can read it. Attackers commonly target `wp-config.php` because it contains database connection details and WordPress secret keys. After retrieving secrets, the attacker may attempt database access, password cracking, session forgery depending on exposed keys, credential reuse, or further WordPress compromise through administrative access.
How to fix it
Upgrade the Zoomsounds plugin to a version newer than 6.45 that contains the vendor fix. If no fixed version is available through trusted WordPress plugin distribution channels, disable and remove the plugin until a patched release can be deployed. As compensating controls, block requests containing `action=dzsap_download` with traversal patterns in the `link` parameter, restrict direct access to plugin download handlers, and ensure the web server user has the minimum file permissions required. After remediation, rotate any secrets that may have been exposed, especially WordPress database credentials and authentication salts in `wp-config.php`. Review backups, staging copies, and cloned sites because vulnerable plugins are often present outside production as well.
How to confirm the fix worked
Confirm the installed Zoomsounds plugin version is greater than 6.45 or that the plugin is removed/disabled. From an unauthenticated session, test that requests using `action=dzsap_download` with traversal sequences in the `link` parameter are rejected and do not return local file contents. Review web server and WAF logs for historical requests containing `dzsap_download`, `../`, URL-encoded traversal sequences, and sensitive file names such as `wp-config.php`. Validate that `wp-config.php` and other sensitive files are not downloadable through plugin endpoints. If exposure is confirmed or cannot be ruled out, rotate database credentials and WordPress salts, then verify the application still functions correctly.
Typical attack path
- Scan for WordPress sites and fingerprint the Zoomsounds plugin or its exposed assets.
- Confirm the vulnerable plugin version is 6.45 or earlier, or directly test the vulnerable download action.
- Send an unauthenticated request with `action=dzsap_download` and a traversal payload in the `link` parameter.
- Retrieve sensitive files such as `wp-config.php`, web server configuration files, backups, or application logs.
- Extract credentials, salts, tokens, or internal configuration values from downloaded files.
- Use exposed secrets for follow-on access to the WordPress database, administrator accounts, hosting panel, or related infrastructure.
How to detect it
To determine whether exploitation already occurred, review HTTP access logs from the web server, CDN, WAF, and load balancer for requests to WordPress AJAX or plugin endpoints containing `action=dzsap_download` and a `link` parameter with traversal sequences. Prioritize requests returning HTTP 200, unusually large responses, or downloads of PHP/configuration files. Look for encoded traversal variants such as `%2e%2e%2f`, double-encoded payloads, and target filenames including `wp-config.php`, `.env`, `passwd`, and backup archives. Correlate suspicious download requests with subsequent database login attempts, WordPress administrator logins, password reset activity, new admin users, plugin/theme changes, or connections from the same source IP. If `wp-config.php` may have been exposed, treat contained database credentials and WordPress salts as compromised and investigate downstream access using those secrets.
- action=dzsap_download
- dzsap_download
- link=../
- link=..%2f
- link=%2e%2e%2f
- link=..%252f
- wp-admin/admin-ajax.php?action=dzsap_download
- admin-ajax.php?action=dzsap_download
- wp-config.php
- link=../../wp-config.php
- link=..%2f..%2fwp-config.php
- /etc/passwd
- .env
- %2e%2e%2f%2e%2e%2f
- ../wp-config.php
What your security team should do
- Immediately inventory WordPress installations for the Zoomsounds plugin and identify any versions 6.45 or earlier.
- Upgrade Zoomsounds to a patched version newer than 6.45, or remove/disable the plugin if a trusted fixed version is unavailable.
- Add WAF or reverse-proxy rules blocking `dzsap_download` requests that contain path traversal sequences or sensitive file names.
- Search historical web access, WAF, CDN, and load balancer logs for exploitation attempts and successful 200 responses.
- If exploitation is suspected, rotate WordPress database credentials, authentication salts, API keys, and any secrets stored in readable configuration files.
- Review database access logs and WordPress administrative activity after any suspected file disclosure.
- Harden file permissions so the web server process cannot read unnecessary configuration, backup, archive, or credential files.
- Prioritize remediation because exploit code is weaponized and the EPSS probability is high.
The record
The Zoomsounds plugin <= 6.45 for WordPress allows arbitrary files, including sensitive configuration files such as wp-config.php, to be downloaded via the `dzsap_download` action using directory traversal in the `link` parameter.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-81163 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')… CWE-22
- CVE-2026-112049 Vita3K before build 4187 contains a path traversal (zip slip) vulnerability in… CWE-22
- CVE-2026-112005 WhoDB 0.104.0 before 0.135.0 contains a path traversal vulnerability that allows remote… CWE-22
- CVE-2026-61702 OpenPrinting CUPS is an open source printing system for Linux and other Unix-like… CWE-22
- CVE-2026-104871 The Angular SSR is a server-rise rendering tool for Angular applications. CWE-22
- CVE-2026-102991 Mako is a template library written in Python. CWE-22
- CVE-2026-101894 The decompress package for Node.js extracts archives. CWE-22
- CVE-2026-100689 GitPython before 3.1.62 does not validate the `path` field read from an untrusted… CWE-22