WordPress Plugin Vulnerabilities

iQ Block Country < 1.2.13 - Admin+ Arbitrary File Deletion via Zip Slip

Description

The settings of the plugin can be exported or imported using its backup functionality. An authorized user can import preconfigured settings of the plugin by uploading a zip file. After the uploading process, files in the uploaded zip file are extracted one by one. During the extraction process, existence of a file is checked. If the file exists, it is deleted without any security control by only considering the name of the extracted file. This behavior leads to "Zip Slip" vulnerability.

Zip Slip can cause damage by overwriting configuration files or other sensitive resources. In this finding, An attacker can exploit this vulnerability and the behavior of the extraction process, to delete an arbitrary file in the server. For doing this, it is enough to upload a zip file containing a file that is named as the path of a file which is desired to be deleted.

Proof of Concept

1. Install and activate the iQ Block Country plugin.
2. Create a test file in the vulnerable system: (e.g. `/var/www/html/test.txt`)
3. Create a zip file containing a file named as `../../../../test.txt`. Absolute path at the end of this process will be: `/var/www/html/wp-content/uploads/2022/01/../../../../test.txt`
4. Go back to the Wordpress, visit Settings > iQ Block Country > Import/Export tab.
5. Click the "Browse" button and choose the zip file which is created in the Step 3.
6. Click the "Restore settings" button.
7. "Invalid file" message will be appeared but nevermind the message. Check whether the test.txt file is deleted or not.

Note: https://github.com/cesarsotovalero/zip-slip-exploit-example/blob/master/evilarc.py can be used to generate the malicious zip: evilarc.py -d 4 -o unix test.txt

Affects Plugins

Fixed in 1.2.13

References

Classification

Type
FILE DELETION
CWE

Miscellaneous

Original Researcher
Ceylan Bozogullarindan
Submitter
Ceylan Bozogullarindan
Submitter website
Submitter twitter
Verified
Yes

Timeline

Publicly Published
2022-03-16 (about 2 years ago)
Added
2022-03-16 (about 2 years ago)
Last Updated
2022-04-09 (about 2 years ago)

Other