CVE-2026-33345Solidtime是一款开源时间追踪应用。在0.11.6版本之前,其项目详情接口存在严重的越权访问漏洞。由于`show()`端点未正确应用`visibleByEmployee()`权限校验,任何经过身份验证的员工都可以通过构造特定的UUID请求,直接访问组织内任意私有项目,即使他们并非项目成员,从而导致敏感项目信息泄露。
该漏洞属于典型的不安全的直接对象引用(IDOR)。在Solidtime的Laravel后端代码中,`index()`方法正确使用了Eloquent Scope `visibleByEmployee()`来过滤当前用户可见的项目列表。然而,负责获取单条项目详情的`show()`方法在实现时存在逻辑缺陷,它直接通过传入的UUID查询数据库,却遗漏了`visibleByEmployee()`这一关键的权限校验步骤。攻击者只需拥有一个有效的普通员工账号,无需管理员特权,即可通过遍历或猜测项目的UUID,构造并发送GET请求至`/api/v1/organizations/{org}/projects/{project}`。服务器会无条件返回对应项目的详细信息,完全绕过了基于角色的访问控制(RBAC),造成了严重的水平越权,导致敏感项目数据面临泄露风险。