/

CVE-2016-20103

Severity:

HIGH RISK

(7.5)

Path Traversal (CWE-22) in Cherry WordPress Plugin

CVE-2016-20103

Deferred

Vulnerability type

Category:

Path Traversal

CWE:

CWE-22

Impact:

Arbitrary File Disclosure and Sensitive Data Exposure

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Cherry Plugin for WordPress contains a path traversal vulnerability in an unauthenticated file-download endpoint. An attacker may use crafted path input to access arbitrary files readable by the web server, potentially exposing database credentials and other sensitive configuration data.

Cherry Plugin for WordPress contains a path traversal vulnerability in an unauthenticated file-download endpoint. An attacker may use crafted path input to access arbitrary files readable by the web server, potentially exposing database credentials and other sensitive configuration data.

Affected context

The vulnerability occurs in deployments using Cherry Plugin versions with the affected import/export download functionality. Risk exists when the endpoint accepts attacker-controlled file paths and passes them to file-reading operations without reliably restricting access to an intended directory.

The vulnerability occurs in deployments using Cherry Plugin versions with the affected import/export download functionality. Risk exists when the endpoint accepts attacker-controlled file paths and passes them to file-reading operations without reliably restricting access to an intended directory.

Exploit preconditions

  • Attack surface: Publicly reachable WordPress HTTP endpoint
  • Required access: No authentication is generally required
  • Trigger point: A request to the plugin's content-download functionality with attacker-controlled file input
  • Why exploitation is possible: The supplied path is used in a file-reading operation without sufficient canonicalization and directory-boundary enforcement
  • Attack surface: Publicly reachable WordPress HTTP endpoint
  • Required access: No authentication is generally required
  • Trigger point: A request to the plugin's content-download functionality with attacker-controlled file input
  • Why exploitation is possible: The supplied path is used in a file-reading operation without sufficient canonicalization and directory-boundary enforcement

Why this happens

The underlying bug is improper limitation of a pathname to a restricted directory, which maps to CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

The application treats externally supplied path data as trusted and passes it directly to a file access operation. Without canonicalizing the path and verifying that the resolved location remains within an approved base directory, traversal elements can cause access to files outside the intended content area.

The underlying bug is improper limitation of a pathname to a restricted directory, which maps to CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

The application treats externally supplied path data as trusted and passes it directly to a file access operation. Without canonicalizing the path and verifying that the resolved location remains within an approved base directory, traversal elements can cause access to files outside the intended content area.

Potential impact

  • An unauthenticated attacker may read sensitive application files
  • Database credentials and WordPress configuration secrets could be exposed
  • Session tokens, API keys, or private content could be disclosed
  • Exposed credentials could enable follow-on compromise of the website or connected services
  • The incident could support data theft, defacement, or lateral movement
  • An unauthenticated attacker may read sensitive application files
  • Database credentials and WordPress configuration secrets could be exposed
  • Session tokens, API keys, or private content could be disclosed
  • Exposed credentials could enable follow-on compromise of the website or connected services
  • The incident could support data theft, defacement, or lateral movement

General mitigation guidance

Mitigation typically focuses on eliminating direct trust in user-supplied filesystem paths.

Common defensive patterns include:

  • Map user-controlled identifiers to server-side file references instead of accepting raw paths
  • Canonicalize paths before authorization checks
  • Enforce that resolved paths remain within a fixed, approved directory
  • Reject traversal sequences and unexpected path formats as an additional layer, not as the sole control
  • Use allowlists for downloadable files and avoid exposing configuration or secret-bearing files
  • Run the web application with the minimum filesystem permissions required
  • Apply network and access controls around administrative or import/export functionality

Mitigation typically focuses on eliminating direct trust in user-supplied filesystem paths.

Common defensive patterns include:

  • Map user-controlled identifiers to server-side file references instead of accepting raw paths
  • Canonicalize paths before authorization checks
  • Enforce that resolved paths remain within a fixed, approved directory
  • Reject traversal sequences and unexpected path formats as an additional layer, not as the sole control
  • Use allowlists for downloadable files and avoid exposing configuration or secret-bearing files
  • Run the web application with the minimum filesystem permissions required
  • Apply network and access controls around administrative or import/export functionality

How teams detect issues like this

Organizations commonly detect path traversal risks through:

  • Static analysis for externally controlled values reaching file APIs such as readfile, open, or equivalent operations
  • Code review checks for missing canonicalization and directory-boundary validation
  • Dynamic testing with normalized, encoded, and platform-specific traversal variants
  • Web application firewall or gateway policies that identify suspicious path components
  • File-access monitoring for unexpected reads of configuration, credential, or system files
  • Dependency and plugin inventory checks that identify vulnerable components

Automated security testing and code-review tools can help identify unsafe file path handling during development.

Organizations commonly detect path traversal risks through:

  • Static analysis for externally controlled values reaching file APIs such as readfile, open, or equivalent operations
  • Code review checks for missing canonicalization and directory-boundary validation
  • Dynamic testing with normalized, encoded, and platform-specific traversal variants
  • Web application firewall or gateway policies that identify suspicious path components
  • File-access monitoring for unexpected reads of configuration, credential, or system files
  • Dependency and plugin inventory checks that identify vulnerable components

Automated security testing and code-review tools can help identify unsafe file path handling during development.

Sources

SourceLink
github.comgithub.com/CherryFramework/cherry-plugin/commit/69a3f7b
github.comgithub.com/projectdiscovery/nuclei-templates/blob/main/http/vulnerabilities/wordpress/cherry-file-download.yaml
wpscan.comwpscan.com/vulnerability/90034817-dee7-40c9-80a2-1f1cd1d033ee
vulncheck.comvulncheck.com/advisories/cherry-plugin-for-wordpress-1.2.7-path-traversal-via-download-content-php
wpscan.comwpscan.com/vulnerability/90034817-dee7-40c9-80a2-1f1cd1d033ee/

Frequently asked

questions

Yes. The affected functionality is exposed through a web endpoint, and exploitation generally requires only network access to the WordPress site; authentication is not expected to be necessary.

An attacker needs the ability to send requests to the vulnerable endpoint. They do not generally need a WordPress account or other authenticated role.

Replace raw path handling with server-side file identifiers, canonicalize any remaining paths, and verify that the resolved file remains within an explicitly permitted directory.

Use allowlists for downloadable resources, apply least-privilege filesystem permissions, test file-handling code with traversal cases, and monitor for abnormal access to sensitive files.

Yes. The affected functionality is exposed through a web endpoint, and exploitation generally requires only network access to the WordPress site; authentication is not expected to be necessary.

An attacker needs the ability to send requests to the vulnerable endpoint. They do not generally need a WordPress account or other authenticated role.

Replace raw path handling with server-side file identifiers, canonicalize any remaining paths, and verify that the resolved file remains within an explicitly permitted directory.

Use allowlists for downloadable resources, apply least-privilege filesystem permissions, test file-handling code with traversal cases, and monitor for abnormal access to sensitive files.

Find out what's already
exploitable in your codebase.