CVE-2026-57400

Event Tickets Manager for WooCommerce <= 1.5.5 - Missing Authorization

mediumMissing Authorization
5.3
CVSS Score
5.3
CVSS Score
medium
Severity
1.5.6
Patched in
7d
Time to patch

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:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
None
Confidentiality
Low
Integrity
None
Availability

Technical Details

Affected versions<=1.5.5
PublishedJuly 8, 2026
Last updatedJuly 14, 2026

What Changed in the Fix

Changes introduced in v1.5.6

Loading patch diff...

Source Code

WordPress.org SVN
Research Plan
Unverified

# 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 triggers admin_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:N per 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

  1. An attacker sends an unauthenticated POST request to admin-post.php.
  2. WordPress initializes and triggers the admin_init hook.
  3. The plugin (likely in its main admin class) includes admin/partials/event-tickets-manager-for-woocommerce-ticket-layout-setting.php to handle or display settings.
  4. 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).
  5. If wps_etmfw_new_layout_setting_save_2 is present, the plugin proceeds to extract values from $_POST and calls update_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:
    action=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=999
    
    (Note: The action parameter 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

  1. Install and activate WooCommerce.
  2. Install and activate Event Tickets Manager for WooCommerce v1.5.5.
  3. No specific tickets or events are needed, as this targets global plugin options.

7. Expected Results

  • The server should return a 200 OK or 302 Redirect (depending on how the plugin finishes the include).
  • The WordPress database options wps_etmfw_pdf_background_color will be updated to #ff0000.
  • The option wps_etmfw_pdf_text_color will be updated to #00ff00.
  • The option wps_etmfw_logo_size will be updated to 999.

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:

  1. /wp-admin/admin-ajax.php?action=any_string
  2. /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.