{"vuid":"VU#889462","idnumber":"889462","name":"Casdoor authentication server is vulnerable to authorization bypass","keywords":null,"overview":"### Overview\r\nCasdoor is an open-source Access Management (IAM) platform used to manage web applications. An authorization bypass vulnerability affects Casdoor versions 3.115.0 and earlier. The vulnerability allows a non-global organization administrator to perform unauthorized administrative actions against arbitrary organizations by exploiting inconsistent object resolution between the authorization layer and downstream controllers. In multi-tenant deployments, an attacker with administrative privileges within a single organization can bypass tenant isolation and perform administrative operations against other organizations.\r\n\r\n### Description\r\n\r\n\r\n**CVE-2026-15630.**\r\nThe vulnerability stems from a desynchronization between authorization and action in multiple `POST /api/{add,delete}- endpoints (e.g., /api/add-user, /api/delete-user, /api/add-permission)`. While the global authorization filter (`routers/authzfilter.go`) correctly uses the `?id=` URL query parameter as the authoritative target for authorization decisions, the affected controllers (`controllers/user.go`, `controllers/permission.go`, etc.) ignore `?id=` and operate solely on the owner and name fields in the JSON request body. As a result, authorization is evaluated against one object while the requested operation is executed against another, allowing an authenticated organization administrator (`IsAdmin=true`) to perform unauthorized administrative actions across tenant boundaries.\r\n\r\n### Impact\r\nAn attacker with administrative privileges in a single organization can compromise the isolation guarantees of a multi-tenant Casdoor deployment. Depending on the exposed endpoints and deployment configuration, successful exploitation can allow for administrative operations including user management, privilege management and disruption of single sign-on (SSO) or Security Assertion Markup Language (SAML) identity. The overall impact can escalate to a  complete compromise of tenant isolation and, in some deployment scenarios, potential compromise of the entire Casdoor instance.\r\n\r\n\r\n### Solution\r\nUnfortunately, we were unable to reach Casdoor to coordinate this vulnerability. Therefore, at the time of this publication, no vendor patch is known to be available. If upgrading to a fixed release is not yet possible, organizations can consider the following mitigations:\r\n\r\n* Enforce least privilege by minimizing the number of accounts with `IsAdmin=true`, disabling any workflows that automatically grant admin privilege\r\n* Require multi-factor authentication (MFA) for all administrative accounts and/or administrative actions\r\n* Alert on cross-organization administrative activity, including:\r\n    *   Creation of administrator accounts\r\n    *   Deletion of users belonging to other organizations\r\n    *   Modification of permissions across organizational boundaries using wildcard `resources=[\"\"]` or `actions=[\"\"]` permissive Casbin rules.\r\n* Investigate unexplained reductions in user counts or administrative objects within any organization.\r\n\r\n### Acknowledgements\r\nThank you to Louis Sanchez of Voke Cyber for reporting this vulnerability. This document was written by Alexander Curtis.","clean_desc":null,"impact":null,"resolution":null,"workarounds":null,"sysaffected":null,"thanks":null,"author":null,"public":["https://vokecyber.com/research/cve-2026-15630-casdoor-cross-tenant-authz"],"cveids":["CVE-2026-15630"],"certadvisory":null,"uscerttechnicalalert":null,"datecreated":"2026-09-03T17:03:30.117302Z","publicdate":"2026-09-03T17:03:29.928095Z","datefirstpublished":"2026-09-03T17:03:30.139953Z","dateupdated":"2026-09-03T17:03:29.928091Z","revision":1,"vrda_d1_directreport":null,"vrda_d1_population":null,"vrda_d1_impact":null,"cam_widelyknown":null,"cam_exploitation":null,"cam_internetinfrastructure":null,"cam_population":null,"cam_impact":null,"cam_easeofexploitation":null,"cam_attackeraccessrequired":null,"cam_scorecurrent":null,"cam_scorecurrentwidelyknown":null,"cam_scorecurrentwidelyknownexploited":null,"ipprotocol":null,"cvss_accessvector":null,"cvss_accesscomplexity":null,"cvss_authentication":null,"cvss_confidentialityimpact":null,"cvss_integrityimpact":null,"cvss_availabilityimpact":null,"cvss_exploitablity":null,"cvss_remediationlevel":null,"cvss_reportconfidence":null,"cvss_collateraldamagepotential":null,"cvss_targetdistribution":null,"cvss_securityrequirementscr":null,"cvss_securityrequirementsir":null,"cvss_securityrequirementsar":null,"cvss_basescore":null,"cvss_basevector":null,"cvss_temporalscore":null,"cvss_environmentalscore":null,"cvss_environmentalvector":null,"metric":null,"vulnote":240}