一、漏洞介绍
(一)漏洞基本信息
- 产品名称:Casdoor
- 产品版本:<=v2.62(v2.63.0及以上已修复此漏洞),最低受影响版本未知。
- 漏洞类型:未授权访问 + 数据破坏(Unauthorized Access & Data Destruction)。
- 漏洞危害等级:中危,漏洞可导致系统核心组织的默认应用配置被非授权修改,进而造成所有用户无法登录,直接影响系统可用性,同时可能引发数据一致性问题。
- 漏洞发现时间:2025年9月18日
- 漏洞编号:CVE-2025-61524、CNNVD-2025-23364426(未披露)。
(二)漏洞详细描述
Casdoor 系统存在权限控制缺陷,同一套系统内任意组织的管理员账号在登录后,可通过直接拼接 URL的形式绕过系统的权限校验,直接访问其它任意组织以及任意应用的编辑界面。尽管访问时可能会弹出 “Unauthorized operation” 提示,但该提示不具备实际拦截作用,仅能防止配置数据被读取显示,非授权用户仍可对其无权操作的应用的配置进行编辑并保存。当非授权用户完成编辑并保存退出后,修改后的内容会直接覆盖数据库内原始的字段信息。由于配置数据的缺失,其它没有修改的设置会被还原默认设置或设置为 “-1” 。
通过利用以上漏洞,攻击者在取得任意具有管理员权限的账号后可对整个系统发起以下攻击:
- 拒绝服务攻击:攻击者可通过拼接URL: https://[Casdoor地址]/applications/[组织名称]/[应用名],将任意应用配置清空,引发前端报错,阻止任意用户登录。
- 权限提升或横向越权攻击:攻击者可通过拼接URL: https://[Casdoor地址]/organizations/[组织名称],修改其它组织的万能密码,实现登录其它组织任意账号(包括管理员账号)的能力,包括built-in组织的admin账号(Casdoor默认的系统管理特权组织及管理员)。
- 信息泄露与劫持攻击:攻击者可通过拼接URL: https://[Casdoor地址]/applications/[组织名称]/[应用名],修改应用的OAuth客户端id、密钥、重定向地址等信息,获得用户令牌并劫持用户至错误的站点并获得用户信息。
(三)影响范围
- 受影响产品:所有部署 Casdoor 版本低于2.62.0系统的实例;
- 受影响用户:Casdoor 系统任意组织下的所有用户(包括管理员、普通用户等)以及应用。
(四)技术细节
Casdoor 系统仅在前端界面层面对各个组织及应用的访问权限进行了控制(隐藏非授权用户的操作入口),但未在后端接口层面进行严格的权限校验,导致攻击者可通过直接构造 URL 绕过前端限制,获取未授权访问权限;同时,后端在处理应用配置保存请求时,未对操作者的组织权限进行二次校验,允许非本组织或系统管理员修改任意应用配置,且保存逻辑存在缺陷,没有验证数据有效性,可能会清空未被修改的登录控制相关字段数据。
(五)其他说明
- 为避免漏洞被恶意利用,本人在发现本漏洞的当日与Casdoor团队取得联系并告知了相应的技术细节,并已于当日完成修复并发布了相关更新(v2.63.0);
- 本漏洞信息仅用于安全测试和漏洞披露,未经允许不得用于任何恶意攻击行为,否则将承担相应法律责任。
二、漏洞复现操作流程
(一)复现环境准备
- 部署 Casdoor 系统,目前已知版本号2.62.0及以前系统存在此问题,最低受影响版本未知,2.63.0后版本已修复此漏洞;
- 准备两个不同组织的账号:
- 账号 A:属于 Casdoor 系统默认的 “built-in” 组织,拥有该组织管理员权限(用于后续验证漏洞影响);
- 账号 B:属于非 “built-in” 组织(例如自定义组织 “test-org” ),仅拥有该自定义非 “built-in” 组织的管理员权限(无 “built-in” 组织相关操作权限)。
- 确保测试环境网络通畅,可正常访问 Casdoor 系统管理界面及相关接口,且数据库可被正常读写(用于观察漏洞导致的数据库数据变更)。
(二)复现注意事项
- 操作前,建议备份数据库数据,以便后续恢复系统正常功能。不要在生产环境中进行该操作!
(三)复现操作流程
1.安装Casdoor(v2.62.0及以下版本),并以默认的管理员账户(admin)登录内建组织(built-in)。

2.确认版本号信息。

3.创建一个新的自定义组织,本演示案例中使用“Org1”作为组织名。

4.完成自定义组织的创建。

5.切换到新的组织“Org1“,创建一个默认应用。(此步骤是因为若组织没有默认应用则无法创建用户,有应用的组织可跳过此步。)

6.为自定义组织”Org1“创建新用户作为组织管理员,本演示案例中使用“Org1Admin”作为用户名。

7.为“Org1Admin”用户赋予组织管理员权限,根据Casdoor的定义,只有内建组织“built-in”的用户才能管理Casdoor系统的所有资源,因此此时用户“Org1Admin”将仅作为组织“Org1”的管理员。

8.退出并返回登录界面,选择登录组织为“Org1”。(此处组织选择方法可能因设置而异,具体请参考Casdoor文档中选择组织登录部分。)

9.使用“Org1Admin”的账号登录Casdoor。

10.登录成功后可以发现,组织页面只存在”Org1“的管理选项,此时我们可以通过拼接URL:https://[Casdoor地址]/organizations/[组织名称]访问任意组织的管理界面。

11.此案例中,通过拼接URL:https://[Casdoor地址]/organizations/built-in,我们使用本无权限访问的“Org1Admin”账号成功访问到了Casdoor默认内建管理组织的管理页面。

12.通过在此处设置万能密码,我们可以利用该密码登录该组织中任意用户的账号。如此案例中,通过给“built-in”这一内建特权管理组织设置万能密码“NewPassword”,我们可以实现用该密码访问任何系统管理员账号(如“admin”),实现提权或跨权攻击的目的。

13.保存设置,由于Casdoor未能按照组织对管理员鉴权,任何管理员均可修改其它组织信息并保存。

14.返回登录界面,使用内建特权管理组织“built-in”的“admin”账号配合刚刚设置的万能密码“NewPassword”登录。

15.登录成功,至此顺利完成提权或越权操作。获得Casdoor系统管理权限,且不影响“built-in/admin”用户使用原密码登录,具有一定的隐蔽性。

16.继续使用“Org1/Org1Admin”账号操作,拼接URL:https://[Casdoor地址]/applications/[组织名称]/[应用名],可以进入其它组织应用的编辑页面,虽然会弹框提示”Unauthorized operation“,但仅会阻止展示应用具体信息,并不能阻止对其进行编辑。

17.由于读取应用详情信息被阻止,大部分配置内容在前端并不能显示,但能进行编辑。

18.对于应用的任何配置均能成功保存。

19.通过对应用配置的篡改能实现多种攻击,如篡改客户端ID、客户端密钥和回调地址等能实现窃取用户凭据等目的,错误的修改或直接提交空数据会引发前端报错,阻止任何用户登录(尤其是“built-in/app-built-in”应用被篡改会令全部系统管理员均无法访问Casdoor的系统管理后台)由于其能实现多种攻击方法,此处不再展开演示。
以上就是该漏洞的全部复现流程。


