header-logo
Suggest Exploit
vendor:
Digital Publications
by:
Erik David Martin
7.5
CVSS
HIGH
Path Traversal and DoS
22
CWE
Product Name: Digital Publications
Affected Version From: 1.6.2009
Affected Version To: 1.6.2009
Patch Exists: YES
Related CWE:
CPE: a:wordpress:wordpress:5.4.2
Metasploit:
Other Scripts:
Platforms Tested: Ubuntu 16.04.6 LTS / WordPress 5.4.2
2020

WordPress Plugin Supsystic Digital Publications 1.6.9 – Multiple Vulnerabilities

The "Folder" tab under "Publications" is vulnerable to path traversal and exposes information not stored on the web server. The user can gain information regarding images stored in, for example, home directories. The vulnerable code is in the utils.php file, which uses readdir(). Enter the payload into the "Folder" input field: ../../../../../../../../home/erik However, if the web server attempts to open a folder without read access, the function will run in an infinite loop. For example: ../../../../../../../../root The web server will execute the code in an infinite loop and store massive amounts of data in the error.log file until the hard drive is full. The import Folder feature does not work anymore after trying to open directories without read permission when using path traversal techniques. Apache error.log file output: [Fri Jul 24 20:45:43.739704 2020] [:error] [pid 3516] [client 192.168.0.51:47892] PHP Warning: readdir() expects parameter 1 to be resource, boolean given in /var/www/wordpress/wp-content/plugins/digital-publications-by-supsystic/classes/utils.php on line 137, referer: http://192.168.0.49/wp-admin/term.php?taxonomy=dp

Mitigation:

Update to the latest version of the plugin.
Source

Exploit-DB raw data:

# Exploit Title: WordPress Plugin Supsystic Digital Publications 1.6.9 - Multiple Vulnerabilities
# Date: 24/07/2020
# Exploit Author: Erik David Martin
# Vendor Homepage: https://supsystic.com/
# Software Link: https://downloads.wordpress.org/plugin/digital-publications-by-supsystic.1.6.9.zip
# Version: 1.6.9
# Tested on: Ubuntu 16.04.6 LTS / WordPress 5.4.2

# 25/07 2020: Vendor notified
# 27/07 2020: Vendor requested detailed information
# 27/07 2020: Information provided
# 07/08 2020: Nudged vendor. No reply
# 22/08 2020: Nudged vendor. No reply
# 04/10 2020: Nudged vendor. No reply
# 29/11 2020: WordPress Plugin Security team contacted
# 20/12 2020: Vulnerability fixed


##################################
	  Path Traversal and DoS
##################################


# 1. Description

The "Folder" tab under "Publications" is vulnerable to path traversal and exposes information not stored on the web server. The user can gain information regarding images stored in, for example, home directories. The vulnerable code is in the utils.php file, which uses readdir().


# 2. Proof of Concept (PoC)

Enter the payload into the "Folder" input field:
../../../../../../../../../home/erik

However, if the web server attempts to open a folder without read access, the function will run in an infinite loop. For example:
../../../../../../../../../root

The web server will execute the code in an infinite loop and store massive amounts of data in the error.log file until the hard drive is full. The import Folder feature does not work anymore after trying to open directories without read permission when using path traversal techniques. Apache error.log file output:

[Fri Jul 24 20:45:43.739704 2020] [:error] [pid 3516] [client 192.168.0.51:47892] PHP Warning:  readdir() expects parameter 1 to be resource, boolean given in /var/www/wordpress/wp-content/plugins/digital-publications-by-supsystic/classes/utils.php on line 137, referer: http://192.168.0.49/wp-admin/term.php?taxonomy=dps_book&tag_ID=16&post_type=post&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Ddps_book



##################################
			Stored XSS
##################################


# 1. Description

When adding a new publication under the section "Publications", all values such as Area Width, Publication Width and so on are vulnerable to stored XSS. It is possible to store code in all input fields as the code does not sanitize any user input.


# 2. Proof of Concept (PoC)

Enter the following payload into any input field: "><script>alert(1)</script><!--'
The payload is stored in the publication details and will be executed whenever the user views the "Publications" page or edits a publication.