Like leaving your unreleased menu prices on the restaurant's public bulletin board
CVE-2026-11568 affects the Product Configurator for WooCommerce WordPress plugin in all versions prior to 1.7.3 (fixed June 8, 2026). The vulnerability resides in the pc_get_data AJAX action, which is registered on wp_ajax_nopriv_ (i.e., available to unauthenticated visitors). When an attacker supplies an arbitrary post ID, the endpoint returns configurator data — title, price, weight, stock status, and option-level pricing or SKUs — even for products in *private* or *draft* status. This bypasses WordPress's built-in post-visibility controls. The fix in 1.7.3 restricts the AJAX response to published products and requires edit_post capability plus a valid nonce for anything else.
The vendor CVSS of 7.5 HIGH is a mechanical output of the AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N vector, but it materially overstates real-world risk. The C:H rating implies disclosure of credentials, PII, or security-critical secrets — here, the exposed data is *product catalog metadata* (prices, SKUs, stock levels for unreleased items). That is commercially sensitive at most, not security-critical. There is zero integrity or availability impact, no path to code execution, no credential exposure, and no customer data at stake. The plugin has only ~3,000 active installations globally — a vanishingly small footprint. Combined with no known exploitation in the wild, no public PoC, and an EPSS of 0.46%, the real-world severity is LOW.
3 steps from start to impact.
Identify a target running the plugin
pc_get_data AJAX action, which can be fingerprinted by sending a POST to /wp-admin/admin-ajax.php?action=pc_get_data and observing a structured JSON response rather than a 0 or -1 error. Alternatively, the attacker can look for front-end script enqueues referencing /product-configurator-for-woocommerce/.- Target site runs WordPress + WooCommerce
- Product Configurator for WooCommerce plugin is installed and active at version < 1.7.3
- Only ~3,000 active installations worldwide — finding a target is extremely difficult at scale
- No Shodan/Censys/FOFA dork readily identifies this plugin's AJAX endpoint
Enumerate product IDs
admin-ajax.php?action=pc_get_data with product_id=<N>. Most IDs will return empty or error responses; valid product IDs with configurator data return JSON payloads. The attacker is essentially brute-forcing the post ID space, which is noisy but trivially scriptable with curl in a loop.- Network access to the target's WordPress AJAX endpoint
- High request volume is easily rate-limited by WAF, Cloudflare, or WordPress security plugins like Wordfence
- Most WordPress sites sit behind a CDN or reverse proxy that can throttle enumeration
admin-ajax.php with sequential product_id values.Retrieve private/draft product data
- At least one product on the target site is in private or draft status AND has configurator data attached
- Many small WooCommerce stores have few or zero draft/private products with configurator data
- The leaked data (prices, SKUs, stock) is commercially sensitive but has no security value — no credentials, no PII, no tokens
- The attacker cannot modify, delete, or escalate from this disclosure
pc_get_data AJAX action to published products and requires edit_post capability plus a valid nonce for non-published items. As a LOW-severity finding, there is no noisgate mitigation SLA — treat this as backlog hygiene and roll the update into your next scheduled WordPress maintenance cycle./wp-admin/admin-ajax.php where the action parameter equals pc_get_data and the request lacks a valid WordPress authentication cookie. This eliminates the unauthenticated attack vector entirely.- IP-based rate limiting alone — While rate limiting slows enumeration, a determined attacker can spread requests across multiple IPs or use slow enumeration to stay under thresholds. It raises the bar but does not fix the authorization flaw.
- Setting products to 'published' status — This removes them from the 'private/draft leak' scenario but defeats the business purpose of having draft products. It is a workaround that creates a different problem.
The supporting signals.
| In-the-Wild Exploitation | None observed. Not listed in CISA KEV. No GreyNoise or Shadowserver tags. No campaign reporting from any threat intel vendor as of 2026-10-02. |
|---|---|
| Proof-of-Concept Availability | No public PoC found. Checked pocindex.io (no entry), GitHub (no repos named CVE-2026-11568), ExploitDB (no entry), and Nuclei templates (none). Exploitation is trivial (a single curl POST) but no packaged exploit exists. |
| EPSS Score | 0.00461 (0.46%) — bottom quartile. FIRST/EPSS model rates exploitation probability as very low over the next 30 days. |
| CISA KEV Status | Not listed. No federal agency mandate to patch. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N — Network-accessible, no auth, no interaction, but confidentiality-only impact. The C:H rating is mechanically correct under CVSS rules but overstates real-world sensitivity (product metadata ≠ credentials or PII). |
| Affected Versions | Product Configurator for WooCommerce < 1.7.3 (all prior versions). Current release is 1.7.5 (August 11, 2026). |
| Fixed Version | 1.7.3 (released June 8, 2026). Changelog: *SECURITY: Restrict configurator data AJAX access to published products; non-published products require edit capability and a valid nonce.* |
| Installed Base | ~3,000 active installations per wordpress.org. Extremely niche plugin in the WooCommerce ecosystem. |
| Scanning / Exposure Data | No Shodan, Censys, or FOFA dorks specific to this plugin's AJAX endpoint. The plugin's front-end assets can theoretically be fingerprinted via Wappalyzer or WPScan, but no mass-scanning campaigns have been observed. |
| Reporter / Disclosure | Disclosed via WPScan vulnerability database (wpscan.com/vulnerability/e208fee5-dad5-4aeb-b9b5-fbd72a5633e4). Original researcher not publicly attributed. Published 2026-07-01. |
Sources.
Why this verdict
- C:H is overstated for the data type: The CVSS Confidentiality:High rating assumes exposure of credentials, PII, or security-critical secrets. The actual data leaked is *product catalog metadata* — prices, titles, SKUs, stock status for unpublished items. This is commercially annoying, not a security breach. A more accurate assessment is C:L, which alone drops the base score to 5.3.
- Microscopic installed base: With ~3,000 active installations globally, this plugin represents a vanishingly small fraction of the WordPress ecosystem (~800M+ sites). Even among WooCommerce sites (~6.5M), this is <0.05%. The population of vulnerable targets is negligible for any scaled attack campaign.
- No exploitation chain or pivotability: The vulnerability is a dead-end information disclosure. There is no path from leaked product data to code execution, privilege escalation, credential theft, or lateral movement. The attacker gets unreleased product prices and goes home.
- Zero threat intelligence signal: No KEV listing, no PoC, no in-the-wild exploitation, EPSS in the bottom quartile. The security community has not deemed this worth weaponizing — because it isn't.
- Role multiplier: This plugin runs exclusively on WordPress/WooCommerce e-commerce storefronts. It does not appear in any high-value deployment role (not on domain controllers, hypervisors, CI/CD, backup systems, identity providers, network edge, SCADA, or any supply-chain-critical infrastructure). The worst-case blast radius is disclosure of a single store's unreleased product catalog on a single WordPress host. No floor elevation applies.
Why not higher?
A MEDIUM rating would imply operational urgency or a plausible path to material harm. The data exposed is product metadata with no security value — it cannot be used to compromise the host, steal customer data, or pivot laterally. The installed base of ~3,000 sites makes mass exploitation economically irrational. No threat actor has shown interest.
Why not lower?
An IGNORE rating would imply zero action is warranted. While the real-world impact is minimal, the vulnerability *does* represent a genuine access-control failure, it *is* unauthenticated and remotely exploitable, and some merchants may consider unreleased product pricing to be legitimately sensitive competitive intelligence. It belongs in the backlog, not in the trash.
Crowdsourced verification payload.
Run this script on the WordPress host itself (or any machine with wp-cli access to the target site) as a user with read access to the WordPress installation directory. Usage: bash check_cve_2026_11568.sh /var/www/html (pass the WordPress root path as the first argument). No elevated privileges required — it only reads plugin files.
#!/usr/bin/env bash
# check_cve_2026_11568.sh — Detect CVE-2026-11568 in Product Configurator for WooCommerce
# Usage: bash check_cve_2026_11568.sh /path/to/wordpress
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN
set -euo pipefail
WP_ROOT="${1:-/var/www/html}"
PLUGIN_DIR="$WP_ROOT/wp-content/plugins/product-configurator-for-woocommerce"
MAIN_FILE="$PLUGIN_DIR/product-configurator-for-woocommerce.php"
if [ ! -d "$PLUGIN_DIR" ]; then
echo "UNKNOWN — Plugin directory not found at $PLUGIN_DIR"
exit 2
fi
if [ ! -f "$MAIN_FILE" ]; then
# Try alternate main file names
MAIN_FILE=$(find "$PLUGIN_DIR" -maxdepth 1 -name '*.php' -exec grep -l 'Plugin Name:' {} \; | head -1)
if [ -z "$MAIN_FILE" ]; then
echo "UNKNOWN — Cannot locate plugin main file in $PLUGIN_DIR"
exit 2
fi
fi
# Extract version from plugin header
VERSION=$(grep -i '^[[:space:]]*\*[[:space:]]*Version:' "$MAIN_FILE" | head -1 | sed 's/.*Version:[[:space:]]*//' | tr -d '[:space:]')
if [ -z "$VERSION" ]; then
echo "UNKNOWN — Could not extract plugin version from $MAIN_FILE"
exit 2
fi
echo "Detected Product Configurator for WooCommerce version: $VERSION"
# Compare versions: vulnerable if < 1.7.3
REQUIRED="1.7.3"
if printf '%s\n%s\n' "$REQUIRED" "$VERSION" | sort -V | head -1 | grep -qx "$REQUIRED"; then
# VERSION >= REQUIRED
echo "PATCHED — Version $VERSION >= $REQUIRED (CVE-2026-11568 is fixed)"
exit 0
else
echo "VULNERABLE — Version $VERSION < $REQUIRED (CVE-2026-11568 applies)"
exit 1
fi