← Back to Feed CACHED · 2026-07-01 11:52:02 · CACHE_KEY CVE-2026-11568
CVE-2026-11568 · CWE-862 · Disclosed 2026-07-01

The Product Configurator for WooCommerce WordPress plugin before 1

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A store clerk who hands out the unreleased catalog to anyone who asks nicely

The Product Configurator for WooCommerce plugin exposes an AJAX/REST endpoint (pc_get_data) that returns product data without checking either the caller's capability *or* the target post's status. All versions prior to 1.7.3 are affected. That means an unauthenticated visitor can enumerate product IDs and pull back data on posts that WordPress considers draft, pending, private, or future — content that the storefront would never render to a logged-out visitor.

There is no vendor CVSS on record, so this is a first-pass assessment. WPScan tags it at 7.5 High, but that anchoring is generous for a pure information-disclosure bug with no path to code execution, no session takeover, and no PII exposure by default. The leak matters — competitors and pre-launch leak sites will love it — but on the standard confidentiality/integrity/availability axis it is C-only, and the affected data is business-sensitive rather than personal or credential-bearing. MEDIUM is the honest bucket.

"Unauth draft/private product leak in a niche WooCommerce plugin. Real bug, narrow blast radius, no auth bypass or RCE. MEDIUM."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Locate a vulnerable storefront

Attacker fingerprints WooCommerce sites running the Product Configurator plugin via the /wp-content/plugins/product-configurator-for-woocommerce/ asset path, plugin readme, or the presence of the pc_get_data action. Standard mass-scanning with httpx + nuclei templates picks these up in bulk.
Conditions required:
  • Public-facing WordPress storefront
  • Plugin active with version < 1.7.3
Where this breaks in practice:
  • Niche plugin — WordPress.org active install count is small (low thousands range)
  • Some deployments hide plugin paths behind Cloudflare/WAF
Detection/coverage: Nuclei + Wordfence signatures typically publish detection within days of a WPScan advisory.
STEP 02

Invoke pc_get_data unauthenticated

Attacker POSTs (or GETs) to admin-ajax.php?action=pc_get_data (or the plugin's REST route) supplying a product ID. The handler skips both current_user_can() and any get_post_status() gate, returning the serialized product data regardless of publication state.
Conditions required:
  • Reachable /wp-admin/admin-ajax.php
  • Knowledge or enumeration of product IDs (sequential integers)
Where this breaks in practice:
  • Rate-limiting WAFs will throttle enumeration
  • Some hosts block direct admin-ajax from external IPs
Detection/coverage: curl-style enumeration bursts are visible in access logs; ModSecurity/Wordfence anomaly rules flag high-rate admin-ajax hits.
STEP 03

Enumerate the draft/private catalog

Attacker iterates product IDs and filters for responses where post_status != publish. This yields unreleased SKUs, pricing tiers, hidden variants, embargoed launches, and any custom fields the configurator stores (BOM data, cost inputs, supplier notes).
Conditions required:
  • Endpoint returns data for non-published posts
  • Custom fields populated on draft records
Where this breaks in practice:
  • Sites that use the plugin only for public catalogs have nothing juicy in draft state
Detection/coverage: Bulk sequential ID access is a classic IDOR signature — well within scope of Wordfence Premium and Sucuri behavioral rules.
STEP 04

Monetize the leak

Depending on the merchant, leaked data feeds competitive intelligence (pricing/roadmap scraping), grey-market pre-orders, or targeted phishing against merchants ahead of a launch. There is no direct pivot to code execution, admin takeover, or customer PII from the bug alone.
Conditions required:
  • Draft records contain business-sensitive fields
Where this breaks in practice:
  • Impact is business-competitive, not security-catastrophic — most sites store nothing worse than SKU + price in drafts
Detection/coverage: N/A — impact is off-platform.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed as of assessment date. Not on CISA KEV.
Public PoCNo dedicated PoC repo published; the bug is trivial (single unauth request to pc_get_data) and effectively self-documenting from the WPScan advisory.
EPSSNot yet scored (CVE published 2026-07-01). Expect a low-single-digit percentile — niche plugin, disclosure-only impact.
KEV statusNot listed.
CVSS vectorNo official vector. WPScan working score 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N). Reassessed here as 5.3 (C:L — data leaked is business-sensitive, not credential/PII).
Affected versionsProduct Configurator for WooCommerce < 1.7.3
Fixed version1.7.3 (adds capability + post_status gate on pc_get_data)
Installed baseLow — WordPress.org active install count in the low thousands. Not a top-100 WooCommerce plugin. Shodan/Publicwww fingerprints return correspondingly small populations.
Disclosure date2026-07-01
ReporterCredited via WPScan disclosure program (see advisory).
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to MEDIUM (5.3/10)

The single decisive factor is impact ceiling: this is a pure confidentiality leak of draft/private product records — no RCE, no auth bypass, no customer PII, no path to admin. Combined with a small install base (low-thousands range on WordPress.org), the realistic worst case is competitive-intel exposure, not fleet or identity compromise, which places the verdict squarely in MEDIUM.

HIGH Technical nature of the flaw (missing authz + post_status check)
HIGH Fix version (1.7.3)
MEDIUM Installed-base sizing — inferred from WordPress.org signals
LOW Exploitation-in-the-wild — CVE is one day old at assessment

Why this verdict

  • Unauthenticated + network-reachable: exploitation friction is essentially zero — a single HTTP request against admin-ajax.php. That keeps this out of LOW territory.
  • Confidentiality-only impact: the endpoint returns product metadata. No writes, no privilege escalation, no session material. That is the primary reason this does not sit at HIGH.
  • Role multiplier — public storefront: the affected component runs on a merchant web tier. Even when the chain lands, blast radius stops at business-sensitive product data. No identity, PKI, hypervisor, backup, CI/CD, or edge-appliance role is in scope, so no CRITICAL/HIGH floor is triggered.
  • Installed base is small: niche configurator plugin, not a Woo core module. Population of exposed sites is measured in thousands, not millions — mass-exploitation ROI is modest.
  • No KEV, no public PoC repo, EPSS unscored: no evidence of active weaponization at assessment time.

Why not higher?

HIGH would require either a path to code execution / admin compromise, or leakage of credential/PII-class data at scale. This bug delivers neither — it hands out draft product records on a low-install-count plugin. The role multiplier check produces no high-value-role outcome, so the HIGH floor never engages.

Why not lower?

LOW would require either auth prerequisites, a narrow version window, or negligible data value. This is unauthenticated, applies to every version prior to 1.7.3, and the data class (unreleased SKUs, pricing, custom fields) is genuinely useful to competitors and scrapers. That is real business risk, not backlog noise.

05 · Compensating Control

What to do — in priority order.

  1. Block unauthenticated action=pc_get_data at the WAF — Add a Wordfence / Cloudflare / ModSecurity rule that returns 403 for any request to /wp-admin/admin-ajax.php with action=pc_get_data when no valid wp_logged_in cookie is present. Deploy within the MEDIUM window — no formal noisgate mitigation SLA applies, but if the plugin is on a high-traffic storefront, treat as a 7-day task.
  2. Deactivate the plugin on sites that do not actively use it — Many merchants installed Product Configurator for a single campaign and never removed it. If it is not driving live SKUs, deactivate and uninstall today — zero business impact, permanent risk retirement.
  3. Purge/clean draft product records — Audit wp_posts for post_type=product AND post_status IN ('draft','pending','private','future') and remove or sanitize any records containing embargoed pricing, roadmap notes, or supplier data. Reduces the value of a successful exploit even before patching.
  4. Enable enumeration rate-limiting on admin-ajax.php — Cap unauthenticated admin-ajax requests to something like 30/min/IP at the edge. Turns bulk ID sweeps into a detectable, noisy event and slows scraper economics.
What doesn't work
  • Two-factor authentication for wp-admin — the endpoint is unauthenticated; 2FA on the login page never enters the request path.
  • Hiding wp-login.php / renaming admin pathsadmin-ajax.php is still directly reachable and is what the exploit targets.
  • HTTPS / TLS hardening — this is an authorization bug, not a transport bug. Encryption does not change who can invoke the endpoint.
  • Setting products to private instead of draft — the vulnerability *ignores* post status entirely; private items are equally exposed.
06 · Verification

Crowdsourced verification payload.

Run from an auditor workstation (no privileges required — the whole point is that the endpoint is unauthenticated). Invoke as ./check-cve-2026-11568.sh https://store.example.com. Exits 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verifier — CVE-2026-11568
# Product Configurator for WooCommerce < 1.7.3 :: unauth draft/private product disclosure
set -u

TARGET="${1:-}"
if [[ -z "$TARGET" ]]; then
  echo "usage: $0 https://store.example.com" >&2
  exit 2
fi

# 1. Fingerprint plugin version from readme.txt
README_URL="${TARGET%/}/wp-content/plugins/product-configurator-for-woocommerce/readme.txt"
VER=$(curl -fsSL --max-time 10 "$README_URL" 2>/dev/null | awk -F': *' '/^Stable tag/ {print $2; exit}')

if [[ -z "$VER" ]]; then
  echo "UNKNOWN — could not read plugin readme at $README_URL"
  exit 2
fi

echo "detected Product Configurator version: $VER"

# 2. Semver compare against 1.7.3
vercmp() {
  # returns 0 if $1 < $2
  [[ "$1" == "$2" ]] && return 1
  local L=$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -1)
  [[ "$L" == "$1" ]]
}

if vercmp "$VER" "1.7.3"; then
  # 3. Confirm behavior — probe pc_get_data unauthenticated
  AJAX_URL="${TARGET%/}/wp-admin/admin-ajax.php"
  RESP=$(curl -fsS --max-time 10 -X POST \
         --data "action=pc_get_data&product_id=1" "$AJAX_URL" 2>/dev/null)
  if [[ -n "$RESP" && "$RESP" != "0" && "$RESP" != "-1" ]]; then
    echo "VULNERABLE — version $VER < 1.7.3 and pc_get_data responded to unauth request"
    exit 1
  fi
  echo "VULNERABLE — version $VER < 1.7.3 (endpoint probe inconclusive; assume exposed)"
  exit 1
fi

echo "PATCHED — version $VER >= 1.7.3"
exit 0
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: run the verifier against your WooCommerce estate to enumerate which storefronts have Product Configurator installed and on what version. For any site < 1.7.3, ship a WAF rule blocking unauthenticated action=pc_get_data today, then schedule the plugin update. Under the noisgate mitigation SLA this MEDIUM verdict carries no formal mitigation deadline — go straight to the noisgate remediation SLA window of ≤ 365 days, but be pragmatic: this is a one-click plugin update, so batch it into your next monthly WordPress maintenance cycle rather than letting it drift a year. If you find sensitive roadmap / pricing data in draft product records, treat those as already-leaked and adjust launch comms accordingly.

Sources

  1. WPScan — Product Configurator for WooCommerce vulnerabilities
  2. Patchstack — Product Configurator for WooCommerce
  3. WordPress.org plugin page
  4. CVE record
  5. Wordfence Intelligence — WooCommerce plugin feed
  6. CVE Details — WooCommerce ecosystem
  7. FIRST EPSS
  8. CISA KEV Catalog
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.