CVE-2026-40102Plane是一个开源项目管理工具,其1.3.0及以下版本存在严重的安全缺陷。SavedAnalyticEndpoint接口未对用户控制的segment查询参数进行验证,直接将其传递给Django F()表达式,导致ORM字段引用注入漏洞。经过认证的工作区成员可利用此漏洞,通过构造特殊的请求遍历数据库外键关系,进而窃取敏感数据,如bcrypt密码哈希、API令牌及其他用户邮箱信息。
该漏洞的核心在于SavedAnalyticEndpoint缺乏与AnalyticsEndpoint相同的白名单验证机制。攻击者只需拥有工作区成员权限,即可向`/api/workspaces/<slug>/saved-analytic-view/<analytic_id>/`发送GET请求。通过在segment参数中使用Django ORM的双下划线语法(例如`workspace__owner__password`),攻击者能控制数据库查询逻辑。恶意参数被传入`build_graph_plot()`函数,并利用`.values()`方法将查询结果直接投射到JSON响应中,从而绕过常规排序注入的限制,直接读取任意关联字段的敏感值。