Event Tickets Manager for WooCommerce <= 1.5.5 - Missing Authorization
Description
The Event Tickets Manager for WooCommerce plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on a function in versions up to, and including, 1.5.5. This makes it possible for unauthenticated attackers to perform an unauthorized action.
CVSS Vector Breakdown
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NTechnical Details
<=1.5.5What Changed in the Fix
Changes introduced in v1.5.6
Source Code
WordPress.org SVN# Exploitation Research Plan - CVE-2026-57400 ## 1. Vulnerability Summary The **Event Tickets Manager for WooCommerce** plugin (versions <= 1.5.5) is vulnerable to **Missing Authorization** and **Cross-Site Request Forgery (CSRF)**. The vulnerability exists in the ticket layout settings processing …
Show full research plan
Exploitation Research Plan - CVE-2026-57400
1. Vulnerability Summary
The Event Tickets Manager for WooCommerce plugin (versions <= 1.5.5) is vulnerable to Missing Authorization and Cross-Site Request Forgery (CSRF). The vulnerability exists in the ticket layout settings processing logic. Specifically, the code responsible for saving "Design" settings fails to verify user capabilities or check for a security nonce. This allows unauthenticated attackers to modify critical plugin configuration options by sending a crafted POST request.
2. Attack Vector Analysis
- Endpoint:
/wp-admin/admin-post.php(or any endpoint that triggersadmin_init). - Target File:
admin/partials/event-tickets-manager-for-woocommerce-ticket-layout-setting.php - Vulnerable Parameter:
wps_etmfw_new_layout_setting_save_2 - Authentication: Unauthenticated (
PR:Nper CVSS). - Preconditions: The plugin must be active. The vulnerability assumes the plugin includes the partial file during an early admin hook (like
admin_init) without restricting it to the settings page or checking permissions.
3. Code Flow
- An attacker sends an unauthenticated POST request to
admin-post.php. - WordPress initializes and triggers the
admin_inithook. - The plugin (likely in its main admin class) includes
admin/partials/event-tickets-manager-for-woocommerce-ticket-layout-setting.phpto handle or display settings. - The code in the partial executes top-down:
- It checks
isset( $_POST['wps_etmfw_new_layout_setting_save'] )(Line 19) — this block is protected by a nonce. - It then checks
isset( $_POST['wps_etmfw_new_layout_setting_save_2'] )(Line 70).
- It checks
- If
wps_etmfw_new_layout_setting_save_2is present, the plugin proceeds to extract values from$_POSTand callsupdate_option()(Lines 74-84) for various settings without any further checks.
4. Nonce Acquisition Strategy
According to the source code analysis of admin/partials/event-tickets-manager-for-woocommerce-ticket-layout-setting.php:
- The first block (saving templates) uses a nonce:
wp_verify_nonce( $wps_verify_nonce_form, 'wps_layout_nonce_verify' ). - The second block (saving design settings) starting at Line 70 has no nonce check and no capability check.
Strategy: No nonce is required to exploit the wps_etmfw_new_layout_setting_save_2 code path. The exploit can be performed directly via an unauthenticated POST request.
5. Exploitation Strategy
The goal is to modify the plugin's PDF background color and text color options to prove unauthorized settings modification.
HTTP Request (via http_request tool)
- Method: POST
- URL:
http://localhost:8080/wp-admin/admin-post.php - Headers:
Content-Type: application/x-www-form-urlencoded - Body:
(Note: Theaction=null&wps_etmfw_new_layout_setting_save_2=1&wps_etmfw_pdf_background_color=%23ff0000&wps_etmfw_pdf_text_color=%2300ff00&wps_etmfw_logo_size=999actionparameter is included to satisfy admin-post.php, even if the plugin doesn't explicitly handle that specific action string, as long as it triggers the inclusion of the partial file during admin_init.)
6. Test Data Setup
- Install and activate WooCommerce.
- Install and activate Event Tickets Manager for WooCommerce v1.5.5.
- No specific tickets or events are needed, as this targets global plugin options.
7. Expected Results
- The server should return a
200 OKor302 Redirect(depending on how the plugin finishes the include). - The WordPress database options
wps_etmfw_pdf_background_colorwill be updated to#ff0000. - The option
wps_etmfw_pdf_text_colorwill be updated to#00ff00. - The option
wps_etmfw_logo_sizewill be updated to999.
8. Verification Steps
After performing the HTTP request, verify the changes using WP-CLI:
wp option get wps_etmfw_pdf_background_color
wp option get wps_etmfw_pdf_text_color
wp option get wps_etmfw_logo_size
If the values match the payload (#ff0000, #00ff00, 999), the unauthorized modification is confirmed.
9. Alternative Approaches
If /wp-admin/admin-post.php does not trigger the code, attempt the same payload against:
/wp-admin/admin-ajax.php?action=any_string/wp-admin/index.php(if the plugin loads the partial globally in the admin dashboard).
If the "unauthenticated" claim in the CVE description relies on a specific state (e.g., a specific plugin tab being active in the session), try accessing the endpoint as a low-privileged user (Subscriber) to verify that manage_options capability is not enforced. However, based on the missing check in the source, a direct unauthenticated POST remains the primary vector.
Check if your site is affected.
Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.