Skip to main content

WooCommerce Points Rewards EUVDEUVD-2026-43123

| CVE-2026-10628 MEDIUM
Missing Authorization (CWE-862)
2026-07-11 Wordfence GHSA-rv47-ph67-qh37
4.3
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Load public store page
  2. Delivery
    Extract wps-wpr-verify-nonce from JS globals
  3. Exploit
    POST to admin-ajax.php with nopriv wallet action
  4. Execution
    Convert victim points to wallet balance
  5. Persist
    (Optional) Authenticate as subscriber
  6. Impact
    Overwrite Klaviyo API key and exfiltrate all user emails

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The wps_wpr_generate_custom_wallet action requires no authentication - it is registered on wp_ajax_nopriv_ and the required nonce is embedded in every public-facing page via wp_localize_script(), meaning any unauthenticated site visitor who can load a single page can obtain a valid nonce and call this action. All other affected actions (point-to-wallet conversion for arbitrary users, Klaviyo email exfiltration, Klaviyo API key overwrite, user block/unblock, campaign settings modification) require a valid WordPress session at subscriber level or above - any registered customer account qualifies. Limiting conditions: the plugin must be installed and active, WooCommerce must be present, and for the Klaviyo exfiltration actions the site must have Klaviyo integration configured. The unauthenticated vector is not blocked by standard WordPress login requirements because the wp_ajax_nopriv_ registration explicitly bypasses them.

Impact

The NVD-assigned CVSS score of 4.3 (PR:L, C:N, I:L) materially understates risk in two ways. First, the assigned C:N conflicts directly with the description, which documents exfiltration of all users' email addresses and point balances to an attacker-controlled external account - a clear confidentiality impact at minimum C:L. Second, the PR:L metric does not capture the fully unauthenticated exploitation path for wps_wpr_generate_custom_wallet; any anonymous visitor can drain points without logging in, making PR:N the accurate metric for that action path. Re-assessed with the worst exploitable conditions (unauthenticated wallet drain plus authenticated subscriber email exfiltration), the realistic severity is closer to 5.4-6.5. There is no EPSS score or KEV listing provided, and no public proof-of-concept exploit is identified in the input data - however, the attack requires no special tooling, just an HTTP request with a publicly visible nonce, making it effectively automatable against any vulnerable WooCommerce store. The financial fraud angle (point draining) and the data-redirect angle (Klaviyo API key overwrite) represent distinct harm vectors that defenders should treat separately when assessing business impact.

Exploit ScenarioDerived

An unauthenticated attacker loads any public page of a vulnerable WooCommerce store, extracts the wps-wpr-verify-nonce value from the page's JavaScript globals, and issues a crafted POST request to wp-admin/admin-ajax.php with action=wps_wpr_generate_custom_wallet targeting a victim user's account - converting their accumulated reward points to spendable wallet balance. A subscriber-level attacker (e.g., a customer account) can additionally call the Klaviyo export handler to redirect all registered users' email addresses and point balances to an attacker-controlled Klaviyo list, and overwrite the store's Klaviyo API key to intercept future marketing data. No exploit code beyond a basic HTTP client is required.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 11, 2026

Authorization bypass in Points and Rewards for WooCommerce (all versions through 2.10.0) allows authenticated subscribers to drain any user's reward points into a wallet balance, exfiltrate all user emails and point balances to an attacker-controlled Klaviyo account, and overwrite the site's Klaviyo API key - compounding financial fraud with third-party data exfiltration. Critically, the plugin exposes its authentication nonce (wps-wpr-verify-nonce) on every public-facing page via wp_localize_script(), and the wallet-draining handler is registered on the wp_ajax_nopriv_ hook, meaning the most financially damaging action - converting points to wallet balance - is exploitable by unauthenticated visitors. No public exploit code or CISA KEV listing identified at time of analysis.

RemediationAI

Upstream fix: commit 3602815 in the WordPress plugin Subversion repository (https://plugins.trac.wordpress.org/changeset?reponame=&old=3602815%40points-and-rewards-for-woocommerce&new=3602815%40points-and-rewards-for-woocommerce) contains the patch; however, a specific released patched version number is not confirmed from available data - verify the current release version on WordPress.org and update to the latest available version beyond 2.10.0. If immediate patching is not possible, a targeted workaround is to block unauthenticated AJAX requests to wp-admin/admin-ajax.php with the action=wps_wpr_generate_custom_wallet parameter at the WAF or web server layer, which addresses the highest-severity unauthenticated path; note this does not close the authenticated subscriber abuse paths. Additionally, rotate the Klaviyo public API key in site settings and audit the configured Klaviyo account for unauthorized list membership or API key changes to assess whether exploitation has already occurred. Restricting site access to authenticated users only (if business requirements permit) would eliminate the nopriv exploitation path entirely.

Affected VersionsENISA

Points and Rewards for WooCommerce 0 ≤2.10.1

Affected Packages

euvd points_and_rewards_for_woocommerce no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected product is the WP Swings 'Points and Rewards for WooCommerce' WordPress plugin (CPE: cpe:2.3:a:wpswings:points_and_rewards_for_woocommerce:*:*:*:*:*:*:*:*), a WooCommerce loyalty system add-on. The root cause is CWE-862 (Missing Authorization): AJAX handlers performing privileged operations - user point manipulation, Klaviyo API key overwrite, user blocking, and campaign settings modification - do not verify whether the requesting user holds the capability required to perform those operations. WordPress nonces are intended as CSRF tokens, not access-control mechanisms; the plugin misuses the nonce wps-wpr-verify-nonce as a substitute for capability checks. Because wp_localize_script() embeds this nonce into every rendered page, any site visitor can extract it from the HTML source. Additionally, the wps_wpr_generate_custom_wallet handler is registered under the wp_ajax_nopriv_ hook (public/class-points-rewards-for-woocommerce-public.php#L3493), which WordPress routes without requiring login, eliminating even the subscriber authentication barrier for that specific action. The admin-side handlers (admin/class-points-rewards-for-woocommerce-admin.php lines 2568, 1814, 2657) similarly lack capability verification.

Know when Points And Rewards For Woocommerce gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 5.4 MEDIUM

PR:L reflects the subscriber-level path covering data exfiltration; C:L corrects the erroneous C:N given documented email and balance exfiltration; unauthenticated wallet drain is a separate, more severe sub-vector.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

DescriptionCVE.org

The Points and Rewards for WooCommerce plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 2.10.0. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with subscriber-level access and above, to convert and drain any user's reward points into wallet balance, exfiltrate all users' emails and point balances to an attacker-controlled Klaviyo account, overwrite the site's Klaviyo public API key, block or unblock arbitrary users from the points system, and modify campaign banner and heading settings. The nonce used for authentication of these requests (wps-wpr-verify-nonce) is injected into every public-facing page via wp_localize_script(), and the wps_wpr_generate_custom_wallet handler is additionally registered on the wp_ajax_nopriv_ hook, meaning unauthenticated visitors can also obtain a valid nonce and exploit that specific action.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular WooCommerce loyalty points plugin, niche within large WooCommerce ecosystem
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

References

Advisories & patches
ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-10628 ADVISORY https://vuldb.com/vuln/377732 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.10.0/admin/class-points-rewards-for-woocommerce-admin.php#L1814 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.10.0/admin/class-points-rewards-for-woocommerce-admin.php#L2568 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.10.0/admin/class-points-rewards-for-woocommerce-admin.php#L2657 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.10.0/public/class-points-rewards-for-woocommerce-public.php#L191 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.10.0/public/class-points-rewards-for-woocommerce-public.php#L3493 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.9.7/admin/class-points-rewards-for-woocommerce-admin.php#L1814 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.9.7/admin/class-points-rewards-for-woocommerce-admin.php#L2568 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.9.7/admin/class-points-rewards-for-woocommerce-admin.php#L2657 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.9.7/public/class-points-rewards-for-woocommerce-public.php#L191 REF https://plugins.trac.wordpress.org/browser/points-and-rewards-for-woocommerce/tags/2.9.7/public/class-points-rewards-for-woocommerce-public.php#L3493 REF https://plugins.trac.wordpress.org/changeset?reponame=&old=3602815%40points-and-rewards-for-woocommerce&new=3602815%40points-and-rewards-for-woocommerce REF https://www.wordfence.com/threat-intel/vulnerabilities/id/582e15cb-b924-4c24-818e-dfc2900f82c3?source=cve

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy