IPBUF安全漏洞报告
English
CVE-2026-35605 CVSS 7.5 高危

CVE-2026-35605 File Browser访问控制绕过漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35605
漏洞类型
访问控制绕过
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
File Browser

相关标签

File Browser访问控制绕过路径遍历CVE-2026-35605

漏洞概述

File Browser是一个基于Web的文件管理工具,用于在指定目录内进行文件操作。在2.63.1版本之前,该软件在rules/rules.go文件的Matches()函数中存在逻辑缺陷。系统使用strings.HasPrefix()函数来匹配访问规则路径,但未在规则路径后添加尾部目录分隔符。这导致针对/uploads的规则会错误地匹配/uploads_backup/等路径,从而未经授权地授予或拒绝访问非预期的目录。

技术细节

该漏洞的核心在于路径匹配算法的不严谨。在Go语言实现中,代码直接使用strings.HasPrefix(requestPath, rulePath)来判断权限。例如,若管理员定义了禁止访问/private的规则,或允许访问/public的规则。当请求路径为/private_backup时,由于它以/private开头,且代码未检查/private后的字符是否为分隔符(如/),系统会错误地将其判定为/private路径。这利用了前缀匹配的特性,使得攻击者能够通过构造特定的目录名称(以受控目录名为前缀)来绕过访问控制机制,访问原本受限的目录或被错误地拒绝访问。

攻击链分析

STEP 1
侦察
攻击者发现目标站点使用的是存在漏洞的File Browser版本(< 2.63.1),并探测到存在如/uploads的目录规则。
STEP 2
路径构造
攻击者构造一个以受规则控制的目录名为前缀的目录路径,例如/uploads_backup。
STEP 3
发送请求
攻击者向服务器发送针对构造路径(/uploads_backup/)的文件访问或操作请求。
STEP 4
规则绕过
服务器端的Matches()函数使用HasPrefix进行匹配,误判/uploads_backup符合/uploads的规则,从而错误地授权或拒绝请求。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
package main import ( "fmt" "strings" ) // Vulnerable logic simulation func vulnerableMatch(rule, path string) bool { // The bug: using HasPrefix without checking for trailing separator return strings.HasPrefix(path, rule) } func main() { rule := "/uploads" targetPath := "/uploads_backup/secret.txt" if vulnerableMatch(rule, targetPath) { fmt.Printf("[VULNERABLE] Access granted to '%s' based on rule '%s'\n", targetPath, rule) } else { fmt.Println("Access denied") } }

影响范围

File Browser < 2.63.1

防御指南

临时缓解措施
建议立即检查File Browser的配置规则,避免使用互相包含的目录名。若无法立即升级,应限制Web服务器的网络访问,仅允许可信IP访问File Browser管理界面,或通过反向代理层对非预期的目录路径进行拦截。

参考链接

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