CVE-2026-39957Lychee照片管理工具在7.5.4之前的版本中存在SQL运算符优先级漏洞。由于`SharingController::listAll()`的查询逻辑缺陷,拥有上传权限的非管理员用户可以绕过所有权过滤,获取实例内所有基于用户组的共享权限信息,包括其他用户的私有相册数据。
该漏洞源于Lychee框架在处理`SharingController::listAll()`方法时的SQL查询构建逻辑缺陷。开发人员使用了Laravel的`when()`闭包来尝试根据用户身份添加所有权过滤条件(`where`),但在查询链末尾错误地使用了`orWhereNotNull('user_group_id')`。由于SQL运算符优先级规则,`OR`条件的优先级导致了逻辑逃逸,使得`user_group_id IS NOT NULL`这一条件脱离了原本用于限制用户只能查看自己相册的`when`块的作用域。这导致生成的SQL语句逻辑错误,任何拥有上传权限的认证用户在调用该接口时,不仅会获取自己的相册权限,还会泄露整个实例中所有基于用户组的共享权限信息,造成敏感数据泄露。