CVE-2026-100392 InvoicePlane 权限提升漏洞
影响次级管理员可降权主管理员,导致合法所有者被锁定
InvoicePlane 1.7.2 的 Users::form() 在处理 user_id=1 时缺少对象级授权校验。拥有次级管理员权限的用户可修改主管理员的 user_type,将其降为只读访客,从而破坏根账户权限并锁定合法所有者。
影响范围
InvoicePlane 1.7.2 受影响;截至披露时暂无公开补丁,其他版本是否受影响暂无公开信息。
漏洞详情
该漏洞属于对象级授权缺失(IDOR/越权)。Users::form() 未校验当前用户是否有权修改 user_id=1 这一主管理员账户,导致次级管理员可直接提交表单改写主管理员的 user_type 字段。将 user_type 改为 2 后,主管理员变为只读访客,失去管理权限。
利用条件与风险
利用前提是攻击者已拥有次级管理员账户(user_type=1 且 user_id≠1),属于内部或已获低权账户后的提权/破坏场景。实战中可造成实例管理权被剥夺、合法所有者被锁定,影响可用性与完整性。
修复建议
官方暂无公开补丁,建议关注 InvoicePlane 官方更新;临时缓解可限制次级管理员账户的创建与使用、对 Users::form() 增加对象级授权校验,并备份主管理员账户配置以便恢复。
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. In version 1.7.2, Users::form() performs no object-level authorization check on user_id = 1. A Secondary Administrator (user_type = 1, user_id != 1) can rewrite the Primary Administrator’s user_type to 2 (Guest / read-only), destroying the root account’s privilege and locking the legitimate owner out of the instance. At time of publication, there are no publicly available patches.