CVE-2025-64707Frappe Learning是一个学习管理系统,帮助用户结构化内容。该系统存在一个访问控制漏洞,在2.0.0版本到2.41.0之前的版本中,当管理员从用户撤销角色时,由于系统缓存机制的问题,权限撤销不会立即生效。攻击者可能在权限被撤销后仍能继续访问受限制的资源,直到缓存过期。这个漏洞源于系统未能正确处理角色变更时的缓存清除操作,导致权限验证使用了过期的用户权限数据。
该漏洞的根本原因在于Frappe Learning的缓存策略与权限管理模块之间的不同步。当管理员通过后台管理界面撤销用户的特定角色时,系统确实更新了数据库中的角色分配记录,但缓存层仍然保留了用户之前的权限信息。具体来说,系统在用户权限验证时优先从缓存读取数据,而不是每次都查询最新的数据库记录。攻击者可以利用这个时间窗口,在角色被撤销后继续执行原本应该被禁止的操作,直到缓存自动过期或手动清除。