Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

Cross-Site Scripting vulnerabilities in Multiple WordPress Plugins

Medium

Synopsis

Joshua Martinelle of Tenable Research discovered multiple cross-site scripting (XSS) vulnerabilities across a number of WordPress plugins. This advisory will track each vulnerability as information and fixes become available.


Quick Event Manager : CVE-2023-23491 - Unauthenticated Reflected Cross-Site Scripting
Reference: https://wordpress.org/plugins/quick-event-manager/
Affected Versions: < 9.7.5
CVSSv3 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
CVSSv3 Score: 6.1

There is a reflected XSS vulnerability in the 'category' parameter of the 'qem_ajax_calendar' action, as the parameter is reflected in the response without prior filtering. The vulnerable code is present in the function 'qem_show_calendar()' of the file 'legacy/quick-event-manager.php'.

Proof of Concept:
Any user visiting the following link, where TARGET_HOST is the instance of wordpress with the plugin installed, will trigger the reflected XSS payload:  

http://TARGET_HOST/wp-admin/admin-ajax.php?action=qem_ajax_calendar&category=</script><script>alert(1)</script>

Login with Phone Number : CVE-2023-23492 - Unauthenticated Reflected Cross-Site Scripting
Reference: https://wordpress.org/plugins/quick-event-manager/
Affected Versions: < 1.4.2
CVSSv3 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
CVSSv3 Score: 6.1

The 'ID' parameter of the 'lwp_forgot_password' action is used in the response without any filtering leading to an reflected XSS. Although the response is encoded in JSON, the Content-Type of the response is text/html which allows the exploitation of the vulnerability. This vulnerability is present in the './login-with-phonenumber.php' file in the 'lwp_forgot_password()' function.

Proof of Concept:
Any user visiting the following link, where TARGET_HOST is the instance of wordpress with the plugin installed, will trigger the reflected XSS payload:  

http://TARGET_HOST/wp-admin/admin-ajax.php?action=lwp_forgot_password&ID=<svg%20onload=alert(1)>

WP Helper Lite : CVE-2023-0448 - Unauthenticated Reflected Cross-Site Scripting
Reference: https://wordpress.org/plugins/wp-helper-lite/
Affected Versions: < 4.3
CVSSv3 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
CVSSv3 Score: 6.1

The plugin displays all of the user's GET parameters in the response to the surveySubmit action without any filtering. The vulnerable code is present in the function 'surveySubmit_func()' of the file 'includes/class-mbwp-helper.php'

Proof of Concept:
Any user visiting the following link, where TARGET_HOST is the instance of wordpress with the plugin installed, will trigger the reflected XSS payload:  

http://TARGET_HOST/wp-admin/admin-ajax.php?action=surveySubmit&aaa=xxx"><svg%20onload=alert(1)>

Meta Data and Taxonomies Filter : CVE-2023-28664 - Authenticated Reflected Cross-Site Scripting
Reference: https://wordpress.org/plugins/wp-meta-data-filter-and-taxonomy-filter/
Affected Versions: < 1.3.1
CVSSv3 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
CVSSv3 Score: 5.4

The plugin appears to have an incorrect usage of the core function 'esc_html__' which can lead to a reflected XSS via the 'tax_name' parameter.

Proof of Concept:
An authenticated user visiting the following link, where TARGET_HOST is the instance of WordPress with the plugin installed, will trigger the reflected XSS payload:

http://TARGET_HOST/wp-admin/admin-ajax.php?action=mdf_get_tax_options_in_widget&tax_name=<svg/onload=alert(1)>

Woo Bulk Price Update : CVE-2023-28665 - Authenticated Reflected Cross-Site Scripting
Reference: https://wordpress.org/plugins/woo-bulk-price-update/
Affected Versions: < 2.2.2
CVSSv3 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
CVSSv3 Score: 5.4

The 'page' parameter to the techno_get_products action is used in the response without any filtering leading to a reflected XSS.

Proof of Concept:
An authenticated user visiting the following link, where TARGET_HOST is the instance of WordPress with the plugin installed, will trigger the reflected XSS payload:

http://TARGET_HOST/wp-admin/admin-ajax.php?action=techno_get_products&page=<svg%20onload=alert(1)>

InPost Gallery : CVE-2023-28666 - Authenticated Reflected Cross-Site Scripting
Reference: https://wordpress.org/plugins/inpost-gallery/
Affected Versions: <= 2.1.4.1
CVSSv3 Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
CVSSv3 Score: 5.4

The 'imgurl' parameter to the add_inpost_gallery_slide_item action is used in the response without any filtering leading to an reflected XSS which could be triggered against authenticated users.

Proof of Concept:
An authenticated user visiting the following link, where TARGET_HOST is the instance of WordPress with the plugin installed, will trigger the reflected XSS payload:

http://TARGET_HOST/wp-admin/admin-ajax.php?action=add_inpost_gallery_slide_item&imgurl="><svg%20onload=alert(1)>

Solution

Fixed

Quick Event Manager: Fixed in 9.7.5

Login with Phone Number: Fixed in 1.4.2

WP Helper Lite: Fixed in 4.3

MDTF - Meta Data and Taxonomies Filter: Fixed in 1.3.1

Woo Bulk Price Update: Fixed in 2.2.2

Unfixed

InPost Gallery: Unfixed (Plugin closed as of December 19, 2022)

Disclosure Timeline

19 December 2022 - Reported issues to WordPress
20 December 2022 - WordPress acknowledges the reports
20 December 2022 - Login with Phone Number fix released in 1.4.2
24 December 2022 - WP Helper Lite fix released in 4.3
11 January 2023 - Quick Event Manager fix released in 9.7.5
20 March 2023 - 90 day disclosure date

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]

Risk Information

Tenable Advisory ID: TRA-2023-3
Credit:
Joshua Martinelle
CVSSv3 Base / Temporal Score:
6.1
5.4
CVSSv3 Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Affected Products:
Quick Event Manager WordPress Plugin
Login with Phone Number WordPress Plugin
WP Helper Lite WordPress Plugin
MDTF - Meta Data and Taxonomies Filter WordPress Plugin
Woo Bulk Price Update WordPress Plugin
InPost Gallery WordPress Plugin
Risk Factor:
Medium

Advisory Timeline

12 January 2023 - Advisory Published
16 January 2023 - Correction in the Login With Phone Number details
23 January 2023 - Advisory updated with WP Helper Lite
20 March 2023 - Advisory updated with multiple CVEs