CVE-2026-35605File 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路径。这利用了前缀匹配的特性,使得攻击者能够通过构造特定的目录名称(以受控目录名为前缀)来绕过访问控制机制,访问原本受限的目录或被错误地拒绝访问。